歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> Linux教程

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

Copyright © Linux教程網 All Rights Reserved