歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Linux下不使用useradd如何創建新用戶

Linux下不使用useradd如何創建新用戶

日期:2017/2/28 13:39:10   编辑:Linux教程

大家都知道,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添加用戶的時候,這些配置文件是聯動的,相互關聯的,如果自己修改的匹配不上,以後使用過程中會報錯。

Copyright © Linux教程網 All Rights Reserved