Linux學習 - 用戶和用戶組管理
一、用戶配置文件
1 用戶信息文件 /etc/passwd
vim /etc/passwd
第一字段:用戶名
第二字段:密碼標誌(x表示有密碼)
第三字段:用戶ID(UID)
0: 超級用戶
1-499: 系統用戶(偽用戶)
500-65536: 普通用戶
第四字段:用戶初始組ID(GID)
初始組:指用戶一登入就立刻擁有這個組的相關權限,每個用戶初始組只有一個,一般以用戶名作為這個 用戶初始組的組名。
附加組:用戶可加入多個附加組,並擁有這些組的權限
第五字段:用戶說明
第六字段:家目錄
超級用戶家目錄:/root/
普通用戶家目錄:/home/用戶名/
第七字段:登入之後的shall
shell是Linux的命令解釋器
/bin/bash 允許登入
/sbin/nologin 不允許登入
2 影子文件 /etc/shadow
vim /etc/shadow
第一字段:用戶名
第二字段:加密密碼
SHA512散列加密算法
如果密碼位是 “ !! ” 或 “ * ”,代表沒有密碼,不能登入
第三字段:密碼最後一次修改日期
使用1970.1.1作為標準時間,每過一天時間戳加1
時間戳換算 | |
日期->時間戳 | echo $(($(date --date="2014/01/06" + %s)/86400 + 1)) |
時間戳->日期 | date -d "1970-01-01 16066 days" |
第四字段:兩次密碼修改間隔
第五字段:密碼有效期
第六字段:密碼有效期到期前的警告天數
第七字段:密碼有效期到期後的寬限天數
0:代表密碼過期後立即失效
-1:代表密碼永遠不會失效
第八字段:賬號失效時間(時間戳表示)
第九字段:保留
3 組信息文件 /etc/group
vim /etc/group
第一字段:組名
第二字段:組密碼標誌
第三字段:組ID(GID)
第四字段:組中附加用戶
4 組密碼文件 /etc/gshadow
vim /etc/gshadow
第一字段:組名
第二字段:組密碼
第三字段:組管理員用戶名
第四字段:組中附加用戶
二、用戶管理相關文件
1 用戶的家目錄
普通用戶:/home/用戶名/
超級用戶:/root/
2 用戶的郵箱文件
/var/spool/mail/用戶名
3 用戶模板目錄
/etc/skel/
用於保存創建新用戶時自動生成的文件,例如在該目錄下新建文件notice.msg則在建立新用戶時會自動建立notice.msg文件
4 添加用戶默認值文件
/etc/default/useradd
GROUP=100 | 用戶默認組 |
HOME=/home | 用戶家目錄 |
INACTIVE=-1 | 密碼過期寬限天數 |
EXPIRE= | 密碼失效時間 |
SHELL=/bin/bash | 默認shell |
SKEL=/etc/skel | 模板目錄 |
CREATE_MAIL_SPOOL=yes | 是否建立郵箱 |
/etc/login.defs
PASS_MAX_DAYS 99999 | 密碼有效期 |
PASS_MIN_DAYS 0 | 密碼修改間隔 |
PASS_MIN_LEN 5 | 密碼最小5位 |
PASS_WARN_AGE 7 | 密碼到期警告時間 |
UID_MIN 500 UID_MAX 6000 |
最小最大UID範圍 |
ENCRYPT_METHOD SHA512 | 加密模式 |
三、用戶管理命令
1 添加用戶
useradd [-udcgGs] 用戶名
-u UID
-d 家目錄
-c 用戶說明
-g 組名(初始組)
-G 組名(附加組)
-s 命令解釋器shell(默認/bin/bash)
例:useradd -u 666 -G root,bin -c "test user" -d /home/zhw -s /bin/bash zhw
2 修改用戶密碼
passwd [選項] [用戶名]
例:
passwd -S user1 查詢user1密碼的密碼狀態(僅root用戶)
passwd -l user1 暫時鎖定用戶(僅root用戶)
passwd -u user1 解鎖用戶(僅root用戶)
echo “123” | passwd --stdin 使用字符串作為用戶的密碼
3 修改用戶信息
usermod [-ucgGdLU] [用戶名]
-u UID
-d 家目錄
-c 用戶說明
-g 組名(初始組)
-G 組名(附加組)
-s 命令解釋器shell(默認/bin/bash)
-L 鎖定用戶
-U 解鎖用戶
4 修改用戶密碼狀態
chage [-ldmMWIE] 用戶名
-l 列出用戶詳細密碼狀態
-d 修改密碼最後一次更改日期(當-d 0 要求用戶一登入就要修改密碼)
-m 兩次密碼修改間隔
-M 密碼有效期
-W 密碼過期前警告天數
-I 密碼過期後寬限天數(i)
-E 賬號失效時間
5 刪除用戶
userdel [-r] 用戶名
-r 刪除用戶的同時刪除用戶家目錄
6 查看用戶id
id 用戶名 可查看用戶的uid、gid和所屬組
7 查看當前是哪個用戶
whoami
8 查看用戶環境變量
env
9 用戶切換
su - 用戶名 將用戶的環境變量一起切換
su - root -c "useradd user2" 使用root的權限添加一個用戶user2
10 查看登入用戶信息
who
顯示:登入用戶名 登入終端 登入時間
tty 表示本地終端
pts 表示遠程終端
11 查看登入用戶詳細信息
w
顯示:當前時間 連續運行時間(uptime) 用戶數 負載均衡指數
登入用戶名—登入終端—登入IP地址—登入時間—空閑時間—累計占用CPU時間—當前CPU時間—工作命令
四、用戶組管理命令
1 添加用戶組
groupadd [-g] 組名
-g 指定組ID
2 修改用戶組
groupmod [-gn] 組名
-g 修改組ID
-n 修改組名
例:groupmod -n g2 g1 將組g1的名字修改為g2
3 刪除組
groupdel 組名
註:不能刪除用戶的初始組,要先刪除用戶然後刪除組,但是用戶的附加組可刪除
4 將用戶添加入組或從組中刪除
gpasswd -a 用戶名 組名 將用戶加入組
gpasswd -d 用戶名 組名 將用戶從組中刪除
Linux學習 - 用戶和用戶組管理