2021-05-12 14:32:11
Linux下不使用useradd如何建立新使用者
大家都知道,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
相關文章