第五章 Linux系統(tǒng)用戶與用戶組管理
5.1?
cat /etc/passwd | head或者cat /etc/shadow | head -n 3可以查看系統(tǒng)存在的用戶有哪些 ??
但下面這行命令更加簡(jiǎn)潔可以查看有哪些用戶
cat /etc/passwd|grep -v nologin|grep -v halt|grep -v shutdown|awk -F":" '{ print $1"|"$3"|"$4 }'|more
直接在命令行輸入w回車可以直接查看目前在Linux活躍的用戶
Last ?查詢當(dāng)前和過(guò)去登錄的用戶信息 ?輸出的有用戶名计贰、登錄終端、登錄ip识补、登陸時(shí)間鲫剿、登出時(shí)間(在線時(shí)間)
lastlog ?查看所有用戶最后一次登錄時(shí)間 ?輸出的有用戶名亩进、登錄終端器罐、登錄ip跟束、最后一次登陸時(shí)間
5.2?
groupadd?增加一個(gè)組,格式為groupadd [-g GID] groupname 萨咕。如果不加-g選項(xiàng)统抬,則按照系統(tǒng)默認(rèn)的gid創(chuàng)建組。跟uid一樣任洞,gid也是從1000開(kāi)始的蓄喇。
groupdel 刪除一個(gè)組发侵,格式為groupdel groupname交掏。如果組中有用戶存在則不能刪除這個(gè)組,必須要?jiǎng)h除這個(gè)用戶才能刪除組
useradd 增加用戶刃鳄,格式為useradd [-u UID] [-g GID] [-d HOME] [-M] [-s]
-u表示自定義UID盅弛。-g表示新增用戶屬于已經(jīng)存在的某個(gè)組,后面可以跟組id叔锐,也可以跟組名挪鹏。-d表示自定義用戶的家目錄。-M表示不建立家目錄愉烙。-s表示自定義shell
userdel 刪除用戶讨盒,格式為userdel [-r] username,-r的作用是當(dāng)刪除用戶時(shí),一并刪除該用戶的家目錄
chfn(change finger)用于改變用戶的finger步责,finger就是在/etc/passwd文件第5個(gè)字段中顯示的信息返顺,格式為chfn username
5.3
passwd 設(shè)置密碼禀苦,格式passwd username ,該命令后面不加用戶名就是為自己設(shè)定密碼遂鹊,當(dāng)?shù)卿浀氖莚oot賬戶時(shí)振乏,該命令后面跟去他賬戶名則可以修改指定賬戶的密碼,只有root用戶可以修改其他用戶的密碼秉扑,普通用戶只能修改自己的密碼慧邮。
mkpasswd 用于生成密碼。默認(rèn)的Linux是沒(méi)有這個(gè)命令的舟陆,可以使用安裝命令來(lái)安裝误澳,
yum install -y except?
mkpasswd -l 12 -s 0 -d 3 ? 這條命令-l 表示生成12個(gè)長(zhǎng)度的密碼,-s指定特殊字符的個(gè)數(shù)秦躯,-d指定數(shù)字的個(gè)數(shù)
5.4
su ?用戶之間的切換命令脓匿,格式為su [-] username ,su 后面可以跟-也可以不跟-宦赠。-意味著初始化當(dāng)前用戶的各種環(huán)境變量陪毡,簡(jiǎn)單來(lái)說(shuō)就是如果加了-,然后再輸入pwd就是切換用戶的家目錄勾扭,不加就是被切換用戶的家目錄毡琉。
su 后面什么都不跟默認(rèn)切換到root用戶,切換到root用戶后如果想退出這個(gè)用戶輸入exit回車即可退出到原來(lái)的賬戶
sudo 為了改進(jìn)經(jīng)常使用root賬戶進(jìn)行操作造成的密碼丟失的情況下妙色,Linux系統(tǒng)工程師設(shè)計(jì)了sudo這個(gè)命令桅滋。使用sudo執(zhí)行一個(gè)只有root才能執(zhí)行的命令是可以辦到的,但是需要輸入密碼身辨。這個(gè)密碼并不是root的密碼丐谋,而是用戶自己的密碼。默認(rèn)情況下煌珊,只有root用戶能使用sudo命令号俐,普通用戶要想使用sudo是需要root預(yù)先設(shè)定的。我們可以使用visudo命令編輯相關(guān)的配置文件/etc/sudoers定庵。如果沒(méi)有visudo這個(gè)命令先使用yum install -y sudo安裝吏饿。
默認(rèn)root支持sudo,是因?yàn)檫@個(gè)文件中有一行 root ?ALL=(ALL) ALL蔬浙。在該行下面加入 test ?ALL=(ALL ) ALL猪落,就可以讓test用戶擁有sudo的特權(quán)。從左到右畴博,第一段test這里為一個(gè)用戶笨忌,指定讓哪個(gè)用戶有sudo特權(quán);第二段ALL=(ALL)比較難理解俱病,左邊的ALL指的是所有的主機(jī)官疲,右邊的ALL指的是獲取哪個(gè)用戶的身份杂曲,第二段幾乎都不用配置;第三段設(shè)定可以使用sudo的命令有哪些袁余。
使用 visudo命令編輯/etc/sudoers配置文件(必須要使用root用戶)擎勘,它的使用方法和前面阿銘介紹
的vi命令一樣,即輸入i進(jìn)人編輯模式颖榜,編輯完成后棚饵,按Esc鍵,再輸入:wq完成保存掩完。具體操作方法如下所示
## Allow root to run any commands anywhere
root ALL=(ALL) ?ALL
test ALL=(ALL)?ALL
此時(shí)可以驗(yàn)證一下test賬戶的權(quán)限了噪漾,方法如下(如下操作是在root賬號(hào)下進(jìn)行的)
su test
$ls ? ? ? ? ? ? ?//當(dāng)前目錄是在root下
ls:無(wú)法打開(kāi)目錄,:權(quán)限不夠
$ sudo Is
We trust you have received the usual lecture from the local system
Administrator. It usually boils down to these three things:
#1)Respect the privacy of others
#2)Think before you type
#3)With great power comes great responsibility
[sudo) password for test:
123 456 anaconda-ks cfg Desktop Documents Downloads initial-setup-kscfg Music Pictures Public
Templates Videos
由于切換到test賬戶后當(dāng)前目錄還是/root且蓬,test賬戶沒(méi)有任何權(quán)限欣硼,所以使用命令ls查看時(shí),提示
權(quán)限不夠恶阴。然而使用命令sudo ?ls輸人test賬戶自身的密碼后诈胜,就有權(quán)限了。初次使用sudo命令時(shí)冯事,會(huì)出現(xiàn)上面一大堆提示焦匈,當(dāng)再次使用sudo就不會(huì)在提示了。
大批量增加用戶使用sudo的權(quán)限的方法昵仅,就是設(shè)置一個(gè)組都可以使用sudo缓熟。方法:把# %wheel ALL=(ALL) ALL前面的#去掉,讓這一行生效摔笤。他的意思就是wheel這個(gè)組的所有用戶都有了sudo權(quán)力够滑,接下來(lái)只要把需要sudo權(quán)限的所有用戶加入到這個(gè)wheel組中就可以了。
配置文件/etc/sudoers 包含了許多配置項(xiàng)吕世,可以使用命令 man sudoers來(lái)獲得幫助信息彰触。下面紹一個(gè)很實(shí)用的案例,我們們的需求是把 Linux服務(wù)器設(shè)置成這個(gè)樣子:只允許使用普通賬戶登錄寞冯,而普通賬戶登錄后渴析,可以不輸入密碼就能用sudo切換到root賬戶。配置方法是吮龄,輸入如下命令:
#visudo
然后在文件的最后加入如下3行:
User _Alias USER_SU =test, test1, aming
Cmnd_Alias SU = /usr/bin/su
USER_SU All=(ALL) ?NOPASSWD:SU
第一行設(shè)定了一個(gè)user別名,其實(shí)這個(gè)USER_SU相當(dāng)于是test咆疗、 testl和 aming三個(gè)賬戶漓帚;第二行設(shè)定了一個(gè)命令別名,SU相當(dāng)于/usr/bin/su午磁;第三行我們剛剛介紹過(guò)尝抖。保存配置文件后毡们,使用test、 testl昧辽、aming這3個(gè)賬戶登錄 Linux衙熔。執(zhí)行命令sudo su-切換到root賬戶,獲取root賬戶的所有權(quán)利搅荞,如下所示
# su ?- ?test
$ sudo su -
# whoami
root
不允許root直接登錄红氯,即設(shè)置一個(gè)復(fù)雜得連自己都記不住的密碼。不過(guò)這樣也會(huì)有一個(gè)問(wèn)題咕痛,就是普通用戶可以使用su命令切換到 Root痢甘,然后他再修改簡(jiǎn)單的密碼就能直接登錄root了。其實(shí)還有一個(gè)更好的辦法茉贡。
不允許root遠(yuǎn)程登錄 Linux
/etc/ssh/sshd_config為sshd服務(wù)的配置文件塞栅,默認(rèn)允許roo賬戶通過(guò)ssh遠(yuǎn)程登錄 Linux。要想不允許root用戶遠(yuǎn)程登錄linux腔丧,具體操作方法為:修改配置文件/ etc/ssh/sshd_ config放椰,在文件中查找 #PermitRoot Login yes并修改為 PermitRootLogin no。保存配置文件后愉粤,需要重啟sshd服務(wù)庄敛,如下所: ?#systemctl restart sshd.service,需要注意的是科汗,這個(gè)方法只適用于通過(guò)ssh遠(yuǎn)程登錄Linux的情況藻烤。