用戶配置文件
用戶信息文件/etc/passwd
第1字段:用戶名稱
第2字段:密碼標志
第3字段:UID(用戶ID)
0:超級用戶
1-499:系統(tǒng)用戶(偽用戶)
500-65535:普通用戶
第4字段:GID(用戶初始組ID)
第5字段:用戶說明
第6字段:家目錄
普通用戶:/home/用戶名/
超級用戶:/root/
第7字段:登錄之后的Shell
Shell是Linux的命令解釋器
在/etc/passwd當中株婴,除了標準Shell是/bin/bash之外踪蹬,還可以寫如/sbin/nologin(也就是暫時禁止該用戶的登陸)
影子文件/etc/shadow
第1字段:用戶名
第2字段:加密密碼
加密算法升級為SHA512散列加密算法
如果密碼位是"!!"或"*"代表沒有密碼多艇,不能登錄
第3字段:密碼最后一次修改日期
使用1970年1月1日作為標準時間敌买,每過一天時間戳加1
第4字段:兩次密碼的修改間隔時間(和第3字段相比)
第5字段:密碼有效期(和第3字段相比)
第6字段:密碼修改到期前的警告天數(shù)(和第5字段相比)
第7字段:密碼過期后的寬限天數(shù)(和第5字段相比)
0: 代表密碼過期后立即失效
-1:則代表密碼永遠不會失效
第8字段:賬號失效時間
要用時間戳表示
第9字段:保留
時間戳換算
把時間戳換算為日期
date -d "1970-01-01 16066 days"
把日期換算為時間戳
echo (date --date="2014/01/06" +%s)/86400+1))
組信息文件/etc/group和組密碼文件/etc/gshadow
group
第1字段:組名
第2字段:組密碼標志
第3字段:GID
第4字段:組中附加用戶
gshadow
第1字段:組名
第2字段:組密碼
第3字段:組管理員用戶名
第4字段:組中附加用戶
用戶管理相關文件
用戶的家目錄
普通用戶:/home/用戶名/,所有者和所屬用戶組都是此用戶宽堆,權限是700
超級用戶:/root/,所有者和所屬組都是root用戶期丰,權限是550
如果將普通用戶更改為超級用戶护侮,那么只有權限的變化敌完,家目錄并不會改變
用戶的郵箱
/var/spool/mail/用戶名/
創(chuàng)建用戶后,系統(tǒng)會在該目錄下為用戶創(chuàng)建郵箱
用戶模板目錄
/etc/skel/
系統(tǒng)為用戶創(chuàng)建家目錄概行,家目錄下的文件需要一個拷貝模板蠢挡,系統(tǒng)會將/etc/skel/下的文件拷貝至該用戶的家目錄下,如果需要給新加用戶添加一下信息凳忙,可以在此模板目錄中添加
用戶管理命令
用戶添加命令useradd
useradd [選項] 用戶名
選項:
-u UID:手工指定用戶的UID號
-d 家目錄:手工指定用戶的家目錄
-c 用戶說明: 手工指定用戶的說明
-g 組名:手工指定用戶的初始組
-G 組名:手工指定用戶的附加組
-s shell:手工指定用戶的登錄shell业踏。默認是/bin/bash
useradd -u 550 -G root,bin -d /home/lamp1 -c "test user" -s /bin/bash sc
添加一個 UID為550,附加組為root和bin涧卵,家目錄為/home/lamp1勤家,用戶說明為“test user”,/bin/bash為shell柳恐,用戶名為sc的用戶伐脖。
用戶默認值文件
/etc/default/useradd
GROUP=100 #用戶默認組
HOME=/home #用戶家目錄
INACTIVE=-1 #密碼過期寬限天數(shù)(shadow文件7字段)
EXPIRE= #密碼失效時間(8)
SHELL=/bin/bash #默認shell
SKEL=/etc/skel #模板目錄
CREATE_MAIL_SPOOL=yes #是否建立郵箱
/etc/login.defs
PASS_MAX_DAYS 99999 #密碼有效期(5)
PASS_MIN_DAYS 0 #密碼修改間隔(4)
PASS_MIN_LEN 5 #密碼最小5位(PAM)
PASS_WARN_AGE 7 #密碼到期警告(6)
UID_MIN 500 #最小和最大UID范圍
GID_MAX 60000 #最小和最大組ID范圍
ENCRYPT_METHOD SHA512 #加密模式
修改用戶密碼passwd
passwd [選項] 用戶名
選項:
-S: 查詢用戶密碼的密碼狀態(tài)。僅root用戶可用乐设。
-l:暫時鎖定用戶讼庇。僅root用戶可用。
-u:解鎖用戶近尚。僅root用戶可用蠕啄。
--stdin:可以用過管道符輸出的數(shù)據作為用戶的密碼
passwd 不加用戶名即為改自己的密碼。
passswd -S lamp
lamp PS 2013-01-06 0 99999 7 -1
#用戶名密碼設定時間(2013-01-06)密碼修改間隔時間(0)
#密碼有效期(99999)警告時間(7)密碼不失效(-1)
-l 選項執(zhí)行后戈锻,實際上是再shadow文件下將該用戶的密碼前加入了 “!!”
所以歼跟,也可以通過手動刪除 "!!"來實現(xiàn)-u的解鎖效果
echo "123" | passwd --stdin lamp 常用于腳本,保存下來是明文格遭。
修改用戶信息usermod哈街、修改用戶密碼狀態(tài)chage
usermod [選項] 用戶名
選項:
-u UID:修改用戶的UID號
-c 用戶說明: 修改用戶的說明
-g 組名:修改用戶的初始組
-G 組名:修改用戶的附加組
-L:臨時鎖定用戶(Lock)
-U:解鎖用戶鎖定(Unlock)
chage [選項] 用戶名
選項:
-l: 列出用戶的詳細密碼狀態(tài)
-d 日期:修改密碼最后一次更改日期(shadow3字段)
-m 天數(shù):兩次密碼修改間隔(shadow4字段)
-M 天數(shù):密碼有效期(5字段)
-W 天數(shù):密碼過期前警告天數(shù)(6字段)、
-l 天數(shù):密碼過后寬限天數(shù)(7字段)
-E 日期:賬號失效時間(8字段)
以上命令都可以直接修改shadow文件來實現(xiàn)相同功能拒迅。
但是比較重要骚秦、且常用的是
chage -d 0 lamp
#這個命令其實是把密碼修改日期歸0了(shadow第3字段),也就是該用戶從未修改過密碼
#這樣用戶一登陸就要修改密碼坪它,保證了系統(tǒng)安全性
刪除用戶userdel
userdel [-r] 用戶名
選項:
-r:刪除用戶的同時刪除用戶家目錄
手動刪除用戶
vi /etc/passwd
vi /etc/shadow
vi /etc/group
vi /etc/gshadow
rm -rf /var/spool/mail/lamp
rm -rf /home/lamp/
查看用戶id
id 用戶名
用戶身份切換su
su [選項] 用戶名
-:選項只使用 "-" 代表連帶用戶的環(huán)境變量一起切換(一定要加骤竹,不然是不完全切換)
env用于查看該用戶的環(huán)境變量
-c 命令:僅執(zhí)行一次命令,而不切換用戶身份
su - root -c "useradd user3"
用戶組管理命令
添加用戶組
groupadd [選項] 組名
選項:
-g GID: 指定組ID
修改用戶組
groupmod [選項] 組名
選項:
-g GID: 修改組ID
-n 新組名: 修改組名
groupmod -n testgrp group1 #把組名group1修改為testgrp
刪除用戶組
groupdel 組名
如果該組中有初始用戶往毡,那么不能刪除該組,如果只有附加用戶靶溜,則可以刪除該組
把用戶添加入組或從組中刪除
gpasswd [選項] 組名
選項:
-a 用戶名 : 把用戶加入組
-d 用戶名:把用戶從組中刪除
添加用戶到sudo list开瞭,有兩種做法可以做到:
- 修改sudoers文件
a. 切換到root用戶下
b. 添加sudo文件的寫權限,命令是:
chmod u+w /etc/sudoers
c. 編輯sudoers文件
vi /etc/sudoers
找到這行 root ALL=(ALL) ALL,在他下面添加xxx ALL=(ALL) ALL (這里的xxx是你的用戶名)
d. ps:這里說下你可以sudoers添加下面四行中任意一條
youuser ALL=(ALL) ALL
%youuser ALL=(ALL) ALL
youuser ALL=(ALL) NOPASSWD: ALL
%youuser ALL=(ALL) NOPASSWD: ALL
第一行:允許用戶youuser執(zhí)行sudo命令(需要輸入密碼).
第二行:允許用戶組youuser里面的用戶執(zhí)行sudo命令(需要輸入密碼).
第三行:允許用戶youuser執(zhí)行sudo命令,并且在執(zhí)行的時候不輸入密碼.
第四行:允許用戶組youuser里面的用戶執(zhí)行sudo命令,并且在執(zhí)行的時候不輸入密碼.
Attention: 在有的環(huán)境中懒震,配置為youuser ALL=(ALL) ALL
也可以達到sudo無需輸入密碼的效果,但不能保證所有環(huán)境都有效嗤详,肯定有效的做法是:
youuser ALL=(ALL) NOPASSWD: ALL
- 增加用戶組文件
在etc/sudoers.d目錄下增加以用戶組為名的文件个扰,例如:TestGroup,在其中配置如下內容:
%TestGroup ALL=(ALL) NOPASSWD: ALL
則屬于TestGroup組的用戶都被加入到了sudo list