Linux用戶管理
用戶名文件
/etc/passwd
cat /etc/passwd
顯示結果如下:root:x:0:0:root:/root:/bin/bash
- 用戶名:密碼佔位符:uid:gid:註釋說明:家目錄:用戶shell
密碼文件
/etc/shadow
cat /etc/shadow
顯示結果如下:
user1:$6$fsqEwGKM$e/sqvmDS.2g5NRAnVuAhxjRd6zbjlp1rB3/bUZcqj5CyKLEZvpr0R1nVcjbq7HI3t9fTYEA6LQkWiBuVy9Eel1:17236:0:99999:7:::
- 用戶名
- 加密後的用戶密碼,*表示賬戶被鎖定,!!表示賬戶還沒有密碼
- 上次更改密碼的日期,距離1970年1月1日的天數
- 再過多少天纔可以更改密碼,默認爲0,無限制
- 密碼多少天后過期,默認99999,即永遠不需要更改
- 密碼到期前的警告期限
- 賬號失效期限,到期之後幾天後失效
- 賬號的生命週期
- 保留使用
用戶管理
- 增加用戶
useradd
useradd -u UID -g GID -d HOME -M -s /sbin/nologin
useradd -u 501 -g 501 -M -s /sbin/nologin user1
-M
不創建用戶家目錄,用戶名文件中還會有該字段內容-g
指定不存在的用戶組會報錯useradd user2
此時在創建用戶的同時會創建相同名字的用戶組
- 刪除用戶
userdel
userdel [-r] username
-r
刪除賬號的時候連帶賬戶家目錄一起刪除
- 修改用戶屬性(跟添加用戶選項類似)
-u -g -d -s
- 增加用戶
用戶組管理
- 文件:
/etc/group
和/etc/gshadow
- 增加用戶組
- groupadd [-g GID] groupname
- 刪除用戶組
- groupdel groupname
- 如果該組內還有用戶,則不能刪除
- 文件:
修改用戶密碼
passwd [username]
- 建立用戶後是沒有密碼的,也是不能登錄系統的,只有設置好密碼後才能登錄。
passwd
修改當前用戶密碼passwd username
以root用戶登錄,修改指定用戶密碼
切換用戶
su username
切換到指定用戶su - username
切換到指定用戶,並初始化當前用戶的環境變量- 不加用戶名,則切換到root用戶
su - user1 -c "touch /tmp/1.txt"
以user1的身份去執行命令
sudo
- su輸入的密碼是root用戶密碼,而sudo輸入的是當前用戶的密碼
- 只有當root用戶預先設定之後,用戶才能使用sudo命令
visudo
命令編輯/etc/sudoersroot ALL=(ALL) ALL
- 用戶名,指定哪個用戶將擁有sudo權利
- 用戶名,可以切換到哪個用戶的身份
- 主機名或主機ip
- 可以使用的命令
user1 ALL=(ALL) NOPASSWD:ALL
常用
禁止root使用ssh遠程登錄
修改/etc/ssh/sshd_config
,將#PermitRootLogin yes
修改爲PermitRootLogin no
,修改之後重啓ssh服務。