man 5 passwd 查看配置文件功能
第1字段: 用戶名稱
第2字段: 密碼標志 X代表有密碼 如果用戶沒有密碼,則只允許本地登錄
第3字段: UID(用戶ID)
0 超級用戶
1-499 系統用戶(偽用戶) 絕對不能刪
500-65535 普通用戶 改為0則變為管理員 UID相同被視為同一個用戶
第4字段: GID(用戶初始組ID)
第5字段: 用戶說明
第6字段: 家目錄
普通用戶: /home/用戶名/
超級用戶: /root/
第7字段: 登錄之后的Shell
初始組:用戶一登錄就立刻擁有這個用戶組的相關權限,每個用戶的初始組只能有一個,一般就是和這個用戶
的用戶名相同的組名作為這個用戶的初始組。
附加組:指用戶可以加入多個其他的用戶組,并擁有這些組的權限,附加組可以有多個。
Shell是什么?
Shell就是linux的命令解釋器
在/etc/passwd當中,除了標準Shell是/bin/bash之外,還可以寫如/sbin/nologin
第1字段: 用戶名
第2字段: 加密密碼
>加密算法升級為SHA512散列加密算法
>如果密碼位是“!!”或“*”代表沒有密碼,不能登錄。
第3字段: 密碼最后一次修改日期
>使用1970年1月1日作為標準時間,每過一天時間戳加1
第4字段: 兩次密碼的修改間隔時間(和第3字段相比)
第5字段: 密碼有效期(和第3字段相比)
第6字段: 密碼修改到期前的警告天數(和第5字段相比)
第7字段: 密碼過期后的寬限天數(和第5字段相比)
>0代表密碼過期后立即失效 不寫則默認為0
>-1代表密碼永遠不會失效
第8字段: 帳號失效時間
>用時間戳表示
第9字段: 保留
把時間戳換算為日期 date -d "1970-01-01 16866 days" #16866是時間戳,基準時間是1970-01-01
把日期換算為時間戳 echo $(($(date --date="2014/01/06" + %s)/86400 + 1)) #86400每天的秒
第1字段:組名
第2字段:組密碼標志
第3字段:GID
第4字段:組中附加用戶
用的不多
第1字段:組名
第2字段:組密碼 用的不多,不推薦使用
第3字段:組管理員用戶名
第4字段:組中附加用戶
用戶信息全包含在這四個文件之中,可以通過修改這四個文件來對用戶做增刪查改的操作
1、用戶的家目錄 用戶的初始登錄位置
普通用戶: /home/用戶名/ 所有者和所屬組都是此用戶,權限是700
超級用戶: /root/ 所有者和所屬組都是root用戶,權限是550
2、用戶的郵箱
/var/spool/mail/用戶名/
3、用戶模板目錄
/etc/skel/ 創建新用戶時,自動將此目錄下的文件復制到新用戶的家目錄
useradd -u UID 手工指定用戶的UID號
-d 家目錄 手工指定用戶的家目錄
-c 用戶說明 手工指定用戶的說明
-g 初始組名 手工指定用戶的初始組
-G 附加組名 指定用戶的附加組
-s shell 手工指定用戶的登錄Shell。默認是/bin/bash
useradd sc
passwd sc
grep sc /etc/passwd
grep sc /etc/shadow
grep sc /etc/group
grep sc /etc/gshadow
ll -d /home/sc
ll /var/spool/main/sc
useradd -u 666 -G root,bin -d /home/sc1 -c "test user" -s /bin/bash sc
用戶默認值文件:
/etc/default/useradd
GROUP=100 #用戶默認組
HOME=/home #用戶家目錄
INACTIVE=-1 #密碼過期天數(shadow文件7字段)
EXPIRE= #密碼失效時間(shadow文件8字段)
SHELL=/bin/bash #默認shell
SKEL=/etc/skel #模板目錄
CREATE_MAIL_SPOOL=yes #是否建立郵箱
/etc/login.defs
MAIL_DIR /var/spool/mail
PASS_MAX_DAYS 9999 #密碼有效期(5)
PASS_MIN_DAYS 0 #密碼修改間隔(4)
PASS_MIN_LEN 5 #密碼最小5位(PAM)默認是8位
PASS_WARN_AGE 7 #密碼到期警告(6)
UID_MIN 500 #最大和最小UID范圍
UID_MAX 60000
GID_MIN 500 #最大和最小GID范圍
GID_MAX 60000
CREATE_HOME yes
UMASK 077
USERGROUPS_ENAB yes
ENCRYPT_METHOD SHA512 #加密模式
passwd -選項 用戶名
-S 查詢用戶密碼的狀態。僅root用戶可用。
-l 暫時鎖定用戶。僅root可用 將shadow文件中,密碼項前加了!!
-u 解鎖用戶。僅root可用
--stdin 可以通過管道符輸出的數據作為用戶的密碼
whoami 查看當前用戶名
echo "123" | passwd -stdin sc
將123作為sc用戶的密碼,用于Shell編程中
usermod -選項 用戶名
-u UID 修改用戶的UID號
-c 用戶說明 修改用戶的說明信息
-G 組名 修改用戶的附加組
-L 臨時鎖定用戶(lock) 密碼前加了!,使密碼失效
-U 解鎖用戶鎖定(Unlock)
change user passWord expiry information
change -選項 用戶名
-l 列出用戶的詳細密碼狀態
-d 日期 密碼最后一次更改日期(shadow 3字段)
-m 天數 兩次密碼修改間隔(4字段)
-M 天數 密碼有效期(5字段)
-W 天數 密碼過期前警告天數(6字段)
-I 天數 密碼過期后寬限天數(7字段)
-E 日期 帳號失效時間(8字段)
用vim修改更直觀
用的最多的是
chage -d 0 sc
#這個命令其實是把密碼修改日期歸零了(shadow第3字段)
#這樣用戶一登陸就要修改密碼
userdel -r 刪除用戶的同時刪除用戶家目錄
手工刪除用戶
vi /etc/passwd
vi /etc/shadow
vi /etc/group
vi /etc/gshadow
rm -rf /var/spool/mail/sc
rm -rf /home/sc
id 用戶名
查看用戶id 初始組id附加組id
run a Shell with substitute user and group IDs
env
查看用戶環境變量
su root #只切換了部分環境變量
su 選項 用戶名
- 連帶用戶的環境變量一起切換
-c 僅執行一次命令,而不切換用戶身份
su - root -c "useradd user3"
不切換用戶身份,臨時調用一次root權限命令
exit 退出當前用戶
添加用戶組
groupadd [選項]組名
-g GID 指定組ID
修改用戶組 不建議修改組名
groupmod [選項]組名
-g GID 指定組ID
-n 新組名
groupmod -n testgrp group1
把組名group1修改為testgrp
刪除用戶組
groupdel 組名
如果組中存在初始用戶,不能刪除此組
如果組中都是附加用戶,可以刪除
把附加用戶添加入組或從組中刪除
gpasswd -a 用戶名 組名#把用戶加入組
-d 用戶名 組名 #把用戶從組中刪除
新聞熱點
疑難解答