首頁 > 軟體

Linux下不使用useradd如何建立新使用者

2020-06-16 17:21:09

大家都知道,Linux下使用useradd user1 就可以輕鬆建立一個使用者,但是如果不用這個命令,如何建立使用者呢?useradd 建立一個使用者後,檢視/etc/passwd就會發現最下面多了一個user1的資訊,那麼我們直接把這些資訊寫入檔案就可以建立一個使用者了。這裡因為我之前已經建立了stu3了,所以從stu4開始。

    [root@linuxidc home]# echo stu4:x:504:504::/home/stu4:/bin/bash >>/etc/passwd
    [root@linuxidc home]# tail -1 /etc/passwd
    stu4:x:504:504::/home/stu4:/bin/bash
    [root@linuxidc home]# id stu4        #用id命令檢視使用者是否存在;
    uid=504(stu4) gid=504 groups=504
    [root@linuxidc home]#
   

    但是這裡我們發現,雖然建立了一個使用者,但是這個使用者其實什麼也幹不了,
    [root@linuxidc ~]# passwd stu4
    Changing password for user stu4.
    passwd: Authentication token manipulation error
    [root@linuxidc ~]# su - stu4
    su: warning: cannot change directory to /home/stu4: 沒有那個檔案或目錄
    -bash-3.2$ exit
    logout
    [root@linuxidc ~]#
   
    這是因為我們並沒有為該使用者建立家目錄,那麼這裡要用到一個目錄,/etc/skel 這個目錄是linux在建立使用者時的一個模板目錄,建立一個使用者後,都會將該目錄下的所有內容複製到使用者的家目錄裡,目錄裡的內容都是隱藏檔案(.開頭),那麼我們把這個目錄複製一份到/home下
    cp -a /etc/skel /home/stu4
    此時stu4就可以登入了,但你會發現還是有問題的,因為如果你用ls -l檢視stu4目錄
    drwxr-xr-x 3 root root 4096 10-21 05:27 stu4

    會發現他的所有者和所有組都是root,我們一開始在/etc/passwd裡面輸入的uid為504,gid也是504,那麼我們就要建立一個群組了,
    echo stu4:x:504: >>/etc/group

    進入/etc/group裡面檢視  會出現  stu4:x:504:
    這就是我們新建的組,然後再把/home/stu4的所有者和所有組修改下
    chown -R stu4:stu4 /root/home/stu4  #-R 將目錄下所有檔案都改變

    接下來還有一個檔案需要修改,那就是/etc/shadow ,這個檔案是存放使用者密碼的檔案,我們雖然新建了一個使用者,但這個使用者並沒有密碼,所有是無法登陸的,可以通過su - stu4 命令切換過去,但是無論是root,還是stu4 使用者自己都無法建立密碼,那麼我們在/etc/shadow下,再建立一下:
    echo stu4:!!:16383:0:99999:7::: >>/etc/shadow

    因為這個檔案是唯讀的,所以強制儲存退出,這樣再用root為他新增密碼就可以了。

    這樣我們新建的stu4就可以正常使用了, 雖然沒有直接用命令來的簡單,但這樣我們能了解建立一個使用者的過程。最後還要告訴大家的是,這些組態檔在修改前最後都做好備份,以免出問題,因為我們在使用useradd新增使用者的時候,這些組態檔是聯動的,相互關聯的,如果自己修改的匹配不上,以後使用過程中會報錯。 

本文永久更新連結地址http://www.linuxidc.com/Linux/2017-02/140804.htm


IT145.com E-mail:sddin#qq.com