2021-05-12 14:32:11
Linux下不使用useradd建立使用者
Linux下手動建立使用者的全過程:需要管理員許可權。
1.在/etc/group中新增使用者所屬組的相關資訊。如果使用者還有輔助組則在對應組中加入該使用者作為成員。
2.在/etc/passwd和/etc/shadow中新增使用者相關資訊。此時指定的家目錄還不存在,密碼不存在,所以/etc/shadow的密碼位使用“!!”代替。
3.建立家目錄。cp -r /etc/skel /home/user_name。
4.修改家目錄及子目錄的所有者和屬組。
chown -R user_name:user_name /home/user_name
5.修改家目錄及子目錄的許可權。例如設定組和其他使用者無任何許可權但所有者有:chmod -R go= /home/user_name
到此為止,使用者已經建立完成了,只是沒有密碼,所以只能su,不能登入。
6.生成密碼。使用openssl passwd -1 -salt '12345678'生成使用md5演算法的密碼,此時要求輸入密碼,然後將生成的密碼複製到/etc/shadow對應使用者的密碼位。
其中-1是指md5,-salt '12345678'是使用8位元的字元建立密碼的雜項,8位元字元任意指定。雖然新版本的passwd檔案中的演算法是SHA512(6),但也支援md5(1)。
這裡也可以使用passwd命令直接修改密碼。
7.測試手動建立的使用者是否可以正確登入。
以下為步驟:請千萬記得備份這些相關檔案。
mkdir /tmp/12;cp /etc/group /etc/passwd /etc/shadow /tmp/12/ /*備份這幾個檔案*/
echo "userX:x:666" >> /etc/group
echo "userX:x:666:666::/home/userX:/bin/bash" >> /etc/passwd
echo 'userX:!!:17121:0:99999::::' >> /etc/shadow
cp -r /etc/skel /home/userX
chown -R userX:userX /home/userX
chmod -R go= /home/userX
passwd --stdin userX <<< '123456'
測試使用userX是否可以登入。
如果是使用openssl passwd建立的密碼。那麼使用下面的方法將這部分密碼替換到/etc/shadow中。
field=$(cat /etc/shadow | cut -d":" -f2)
password=$(openssl passwd -1 -salt 'abcdefg' 123456)
sed -i '$s%'$field'%'$password'%' /etc/shadow
本文永久更新連結地址:http://www.linuxidc.com/Linux/2017-02/140792.htm
相關文章