越是對服務器安全性要求高的服務器,越需要建立合理的用戶權限等級制度和服務器操作規(guī)范。在Linux中主要是通過用戶配置文件來查看和修改用戶信息。
1 用戶信息文件(1)用戶信息文件/etc/passwdvim命令顯示該文件的內(nèi)容:
root:x:0:0:root:/root:/bin/bashbin:x:1:1:bin:/bin:/sbin/nologindaemon:x:2:2:daemon:/sbin:/sbin/nologin
可以發(fā)現(xiàn),該文件的每一行共有7個字段。其中:
第1個字段是用戶名稱;
第2個字段是密碼標志;
第3個字段是UID(用戶標志),其中0表示超級用戶(當普通用戶的UID改為0時,服務器將該用戶視為超級用戶)。1~499為系統(tǒng)用戶(偽用戶),不能登陸,也不能刪除,500~65535為普通用戶,因此,新建的第一個用戶的UID即為500。
第4個字段為GID(用戶初始組ID)。
初始組是指用戶一登陸就立即擁有這個用戶組的相關權限,每個用戶的初始組只能有一個,一般就是和這個用戶的用戶名相同的組名作為這個用戶的初始組。
附加組是指用戶可以加入多個其他的用戶組,并擁有這些組的權限,附加組可以有多個。
第5個字段為用戶說明。可以添加,也可以不添加。
第6個字段為家目錄。普通用戶的家目錄一般為/home/用戶名/,超級用戶的家目錄為/root/。
第7個字段表示登陸之后的Shell。Shell是Linux的命令解釋器,除了標準的Shell是/bin/bash之外,如果暫時禁用用戶時,可將其寫為/sbin/nologin。
(2)影子文件/etc/shadow1)/etc/shadow的內(nèi)容:
root:$6$NvfaINezKBg3Cqn7$bB5im5NRggTOa45clyXAXjud4YDhyDlTUgBfqy51UieAx1aUOreJCyPkoaG4MRUkSJGp2Xd9lnqXPIHEfM.4A0:16363:0:99999:7:::bin:*:15980:0:99999:7:::daemon:*:15980:0:99999:7:::
可以發(fā)現(xiàn),影子文件由9個字段組成。其中:
第1個字段表示用戶名。
第2個字段表示加密密碼。CentOS 6.5已經(jīng)加密算法從md5升級為SHA512散列加密方法。如果密碼是"!!"或"*"代表沒有密碼,不能登陸,即為偽用戶。
第3個字段為密碼最后一次修改日期,使用1970年1月1號作為標準時間,每過一天時間戳加1。
第4個字段為兩次密碼修改設定的間隔時間(該時間基于與第3個字段)。
第5個字段表示密碼有效期(和第2字段相比)。
第6個字段表示密碼修改到期前的警告天數(shù)(和第5字段相比)。
第7個字段表示密碼過期后的寬限天數(shù)(和第5字段相比)。
第8個字段表示賬號失效時間(要用時間戳表示)。其中0表示密碼過期后立即失效,-1表示密碼永遠不會失效。
第9個字段保留。
2)時間戳的換算
把時間戳換算為日期,其命令為:
[root@localhost ~]# date -d "1970-01-01 16461 days"Mon Jan 26 00:00:00 CST 2015
將日期換算為時間戳,其命令為:
[root@localhost ~]# echo $(($(date --date="2015/01/26" +%s)/86400+1))16461(3)組信息文件和組密碼文件
1)組信息文件/etc/group
[root@localhost ~]# vim /etc/grouPRoot:x:0:bin:x:1:bin,daemondaemon:x:2:bin,daemonsys:x:3:bin,admadm:x:4:adm,daemon
從組信息文件中可以看出,共有4個字段。
第1個字段為組名;
第2個字段為組密碼標志(組密碼不常用);
第3個字段為GID(組ID);
第4個字段為組中附加用戶。
2)組密碼文件/etc/gshadow
[root@localhost ~]# vim /etc/gshadowroot:::bin:::bin,daemondaemon:::bin,daemonsys:::bin,admadm:::adm,daemon
組密碼文件也具有4個字段:
第1個字段為組名;
第2個字段為組密碼;
第3個字段為組管理員用戶名;
第4個字段為組中附加用戶。
2 用戶管理相關文件1)用戶的家目錄
普通用戶的家目錄一般為/home/用戶名/,所有者和所屬組均為此用戶,權限為700。
超級用戶的家目錄為/root/,所有者和所屬組都是root用戶。如果將普通用戶修改為超級用戶時,普通用戶的家目錄不會改變。
2)用戶的郵箱
新建用戶的郵箱的路徑一般為/var/spool/mail/用戶名。
3)用戶模板目錄
用戶的模板目錄為/etc/skel,每創(chuàng)建一個用戶,用戶的家目錄都會從該目錄下拷貝。
3 用戶管理命令(1)useradd1)格式為:useradd [選項] 用戶名
其中:-u(UID)表示手工指定用戶的UID號,-d(家目錄)表示手工指定用戶的家目錄,-c(用戶說明)表示手工指定用戶的說明,-g(組名)表示手工指定用戶的初始組,-G(組名)表示指定用戶的附加組,-s(Shell)表示手工指定用戶登錄的shell,默認為/bin/bash。
2)添加默認用戶
例:添加默認用戶ws:
[root@localhost ~]# useradd ws
該操作修改了用戶的信息文件,可通過如下命令查看:
[root@localhost ~]# grep ws /etc/passwdws:x:500:500::/home/ws:/bin/bash[root@localhost ~]# grep ws /etc/shadowws:!!:16436:0:99999:7:::[root@localhost ~]# grep ws /etc/groupws:x:500:[root@localhost ~]# grep ws /etc/gshadowws:!::[root@localhost ~]# ll -d /home/ws/drwx------. 2 ws ws 4096 Jan 1 20:26 /home/ws/[root@localhost ~]# ll /var/spool/mail/ws-rw-rw----. 1 ws mail 0 Jan 1 20:26 /var/spool/mail/ws
例:添加指定用戶:
[root@localhost ~]# useradd -u 550 -G root,bin -d /home/ws1 -c "test user" -s /> /bin/bash ws1
其中"/"表示換行。
3)用戶默認文件
① /etc/default/useradd
[root@localhost ~]# vim /etc/default/useradd# useradd defaults fileGROUP=100 #用戶默認組HOME=/home #用戶默認家目錄INACTIVE=-1 #密碼過期寬限天數(shù)(shadow第7個字段)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 #密碼最小位數(shù)PASS_WARN_AGE 7 #密碼到期警告UID_MIN 500 #最小和最大UID范圍UID_MAX 60000ENCRYPT_METHOD SHA512 #加密模式(2)修改用戶密碼
命令格式
passwd [選項] 用戶名
用戶修改自己的密碼時只需輸入passwd即可。其中-S表示查詢用戶密碼狀態(tài)(僅root可用),-l表示暫時鎖定用戶, 實際操作是在/etc/passwd文件的密碼前加上了感嘆號"!!",-u表示解鎖用戶,--stdin表示可通過管道輸出的數(shù)據(jù)作為用戶的密碼(shell編程常用到:echo "123" | passwd --stdin ws)。
(3)修改用戶信息usermod及修改用戶密碼狀態(tài)chage1)usermod命令格式
usermod [選項] 用戶名
其中,-u表示修改用戶UID,-G表示修改用戶的附加組,-c表示修改用戶說明,-L表示臨時鎖定用戶,-U表示解鎖用戶鎖定。
2)chage命令格式
chage [選項] 用戶名
其中,-l選項表示列出用戶的詳細密碼狀態(tài),-d(日期)表示修改密碼最后一次更改日期(shadow第3字段),-m(天數(shù))表示兩次密碼修改間隔(shadow第4字段),-M(天數(shù))表示密碼有效期(5字段),-W(天數(shù))表示密碼過期前的警告天數(shù)(6字段),-I(天數(shù))表示密碼過期后的寬限天數(shù)(7字段),-E(日期)表示賬號失效時間(8字段)。
例:
chage -d 0 ws #該命令其實是將密碼修改日期歸0,這樣用戶一登陸就要修改密碼
(4)刪除用戶userdel和用戶切換命令1)userdel命令格式
userdel [-r] 用戶名
其中,-r選項表示刪除用戶的同時刪除用戶家目錄,也可以手工修改文件刪除用戶名。
2)切換命令格式
su [選項] 用戶名
只使用"-"選項代表連帶用戶的環(huán)境變量一起切換,-c表示僅執(zhí)行一次命令,而不切換用戶身份。
例:不切換root,但執(zhí)行useradd命令添加user1用戶:
su - root -c "useradd user1"
4 用戶組管理1)添加用戶組:groupadd [選項] 組名
其中,-g表示指定GID。
2)修改用戶組:groupmod [選項] 組名
其中,-g表示修改組ID,-n表示修改組名(一般不建議修改)。
例:將組名tg修改為wstest:
[root@localhost ~]# groupadd tg[root@localhost ~]# groupmod -n wstest tg
3)刪除用戶組:groupdel 組名
注意:如果組中有初始用戶,不能刪除該組,如果是附加用戶,則不影響組的刪除。
4)把用戶添加入組或從組中刪除
gpasswd [選項] 組名
其中,-a表示將用戶加入組,-d表示將用戶從組中刪除。
例:新建一個用戶ws1,將其加入wstest組中,然后刪除:
[root@localhost ~]# useradd ws1[root@localhost ~]# echo "ws1" | passwd --stdin ws1Changing passWord for user ws1.passwd: all authentication tokens updated successfully.[root@localhost ~]# gpasswd -a ws1 wstestAdding user ws1 to group wstest[root@localhost ~]# gpasswd -d ws1 wstestRemoving user ws1 from group wstest
新聞熱點
疑難解答
圖片精選