眾所周知耻讽,Linux是一個(gè)多用戶(hù)、多任務(wù)(Multi-Tasks闸拿、Multi-Users)的操作系統(tǒng)。那么Linux是如何區(qū)分和認(rèn)證用戶(hù)的书幕,系統(tǒng)對(duì)每個(gè)用戶(hù)的授權(quán)是如何管理的新荤,出現(xiàn)問(wèn)題如何追溯每個(gè)用戶(hù)在系統(tǒng)內(nèi)的操作記錄,等等按咒,這些就涉及到Linux中用戶(hù)和組的管理。
- AAA介紹
- Linux用戶(hù)類(lèi)別
- Linux用戶(hù)標(biāo)識(shí)(UID)
- Linux組類(lèi)別
- Linux組標(biāo)識(shí)(GID)
- Linux中用戶(hù)和組的相關(guān)數(shù)據(jù)庫(kù)文件
- Linux用戶(hù)和組管理命令
(1) groupadd命令
(2) groupmod命令
(3) groupdel命令
(4) useradd命令
(5) usermod命令
(6) userdel命令
(7) passwd命令
(8) gpasswd命令
(9) newgrp命令
(10) chage命令
(11) id命令
(12) su命令
(13) 其它幾個(gè)用戶(hù)和組管理相關(guān)命令- Linux用戶(hù)和組管理命令的相關(guān)示例
- 通過(guò)更改用戶(hù)和組的配置文件但骨,直接添加或修改用戶(hù)和組
首先介紹以下AAA励七。
1、AAA介紹
AAA指的是Authentication奔缠、Authorization掠抬、Accounting,即認(rèn)證校哎、授權(quán)和審計(jì)两波。
- 認(rèn)證:驗(yàn)證用戶(hù)是否可以獲得權(quán)限,是3A的第一步闷哆,即驗(yàn)證身份腰奋;
- 授權(quán):授權(quán)用戶(hù)可以使用那些服務(wù)或資源,即身份驗(yàn)證成功后抱怔,賦予這個(gè)身份相應(yīng)的權(quán)限劣坊;
- 審計(jì):記錄用戶(hù)的操作情況,在Linux中屈留,日志就是審計(jì)的一種手段局冰。
Linux的用戶(hù)和組管理可以說(shuō)是基于AAA進(jìn)行的,首先用戶(hù)登錄輸入用戶(hù)名密碼灌危,就是認(rèn)證的過(guò)程康二;其次,在用戶(hù)登錄成功后勇蝙,所擁有的權(quán)限各不相同沫勿,這就是授權(quán);最后味混,用戶(hù)的操作歷史會(huì)記錄在日志中藕帜,這是審計(jì)。
接下來(lái)介紹Linux中用戶(hù)和組的類(lèi)別惜傲,以及Linux是如何標(biāo)識(shí)每個(gè)用戶(hù)和組的:
2洽故、Linux用戶(hù)類(lèi)別
Linux中,用戶(hù)分為兩大類(lèi)盗誊、三小類(lèi):
分別為管理員(一般為root)和普通用戶(hù) 时甚。
普通用戶(hù)中隘弊,又劃分為兩類(lèi),分別為系統(tǒng)用戶(hù)和登錄用戶(hù)荒适。
- 管理員
即超級(jí)用戶(hù)梨熙,可以操作系統(tǒng)中任意文件和命令,擁有最高的管理權(quán)限刀诬。
Tips:一般情況下盡量不要使用root登錄系統(tǒng)咽扇,避免誤操作。 - 普通用戶(hù)
又分為登錄用戶(hù)和系統(tǒng)用戶(hù):- 登錄用戶(hù)
一般為管理員手動(dòng)添加的用戶(hù)陕壹,默認(rèn)僅擁有操作自身家目錄中文件及目錄的權(quán)限质欲,以及進(jìn)入與瀏覽相關(guān)目錄文件的權(quán)限(如/etc、/var/log等)糠馆,但沒(méi)有創(chuàng)建嘶伟、修改、刪除等權(quán)限又碌。 - 系統(tǒng)用戶(hù)
一般為系統(tǒng)安裝后默認(rèn)存在的九昧,且默認(rèn)情況下不能登錄系統(tǒng),它們的存在主要是為了滿(mǎn)足系統(tǒng)進(jìn)程對(duì)文件屬主的需求毕匀。
Tips:在部署某些服務(wù)是铸鹰,也可以手動(dòng)添加某些系統(tǒng)用戶(hù)。
- 登錄用戶(hù)
3皂岔、Linux用戶(hù)標(biāo)識(shí)(UID)
Linux系統(tǒng)使用UID(User ID)來(lái)標(biāo)識(shí)不同用戶(hù)掉奄。
UID是16bits的二進(jìn)制數(shù)字,所以換算成十進(jìn)制凤薛,UID的范圍是0~65535姓建,Linux根據(jù)用戶(hù)類(lèi)別,對(duì)UID劃分做了規(guī)定:
- 管理員
UID為0
Tips:當(dāng)用戶(hù)UID為0時(shí)缤苫,該用戶(hù)就是管理員速兔,所以不只root才是管理員,可以手動(dòng)指定活玲,但不建議涣狗。 - 普通用戶(hù)(1~65535)
- 系統(tǒng)用戶(hù)
一般發(fā)行版為1499(CentOS7為1999) - 登錄用戶(hù)
一般發(fā)行版為50065535(CentOS7為100065535)
- 系統(tǒng)用戶(hù)
Tips:Linux是根據(jù)“名稱(chēng)解析庫(kù)”(/etc/passwd)來(lái)進(jìn)行用戶(hù)名和UID的解析的,后面會(huì)詳細(xì)介紹Linux中用戶(hù)和組的相關(guān)信息庫(kù)文件舒憾。
4镀钓、Linux組類(lèi)別
Linux對(duì)組有三種劃分方法:
- 第一種組類(lèi)別,和用戶(hù)劃分類(lèi)似镀迂,兩大類(lèi)三小類(lèi)
- 管理員組
- 普通用戶(hù)組(包括系統(tǒng)用戶(hù)組和登錄用戶(hù)組)
- 第二種組類(lèi)別
- 用戶(hù)的基本組(主組)
用戶(hù)必須有且只能有一個(gè)基本組丁溅。 - 用戶(hù)的附加組 (附屬組)
用戶(hù)可以有0個(gè)、1個(gè)或多個(gè)附加組探遵。
基本組和附加組就比如窟赏,每個(gè)人有一個(gè)用來(lái)安家的房子(基本組)妓柜,還可以有N個(gè)用于投資的房子(附屬組)。
- 用戶(hù)的基本組(主組)
- 第三種組類(lèi)別
- 私有組
每新建一個(gè)用戶(hù)涯穷,如果不指定-g參數(shù)棍掐,都會(huì)自動(dòng)創(chuàng)建一個(gè)和用戶(hù)名同名的組,且組內(nèi)只包含用戶(hù)本身拷况。 - 公共組
組內(nèi)可包含多個(gè)用戶(hù)作煌。
- 私有組
5、Linux組標(biāo)識(shí)(GID)
Linux系統(tǒng)使用GID(Group ID)來(lái)標(biāo)識(shí)不同組赚瘦。
GID的劃分和UID相同粟誓,這里不再贅述。
6蚤告、Linux中用戶(hù)和組的相關(guān)數(shù)據(jù)庫(kù)文件
Linux中努酸,與用戶(hù)和組相關(guān)的信息主要存儲(chǔ)在/etc/passwd服爷、/etc/shadow杜恰、/etc/group三個(gè)文件中(存儲(chǔ)格式中各字段用:分隔):
- /etc/passwd:存儲(chǔ)用戶(hù)賬戶(hù)信息
存儲(chǔ)格式為,name:password:UID:GID:comment:directory:shell- name:用戶(hù)登錄名仍源;
- password:用戶(hù)口令,用占位符x表示;
- UID:用戶(hù)ID倍试,用戶(hù)登錄時(shí)谷市,系統(tǒng)根據(jù)UID,而非用戶(hù)名來(lái)識(shí)別用戶(hù)嚎于;
- GID:用戶(hù)所屬的主組ID掘而;
- comment:用戶(hù)的注釋信息;
- directory:用戶(hù)家目錄的絕對(duì)路徑于购;
- shell:用戶(hù)的默認(rèn)shell袍睡。
- /etc/shadow:存儲(chǔ)用戶(hù)密碼信息
存儲(chǔ)格式為,
登錄名:$加密算法$salt$加密了的密碼:最后一次更改密碼的日期:密碼最小期限:密碼最大期限:密碼警告時(shí)間段:密碼禁用期:賬戶(hù)過(guò)期日期:保留字段- 字段1:name用戶(hù)登錄名肋僧;
- 字段2:加密的密碼斑胜,$為分隔符,首先是使用的加密算法嫌吠,其次是salt(隨機(jī)數(shù))止潘,最后才是加密了的密碼本身;
- 字段3:從1970年1月1日算起辫诅,密碼被修改的天數(shù)(最近一次更改密碼)凭戴;
- 字段4:密碼最小期限,即密碼最近更改日期到下次允許更改日期之間的天數(shù)(比如設(shè)置為10炕矮,則表示更改密碼后10天內(nèi)不允許再次更改簇宽;0表示無(wú)限制勋篓,可在任何時(shí)間修改);
- 字段5:密碼最大期限魏割,密碼最近更改日期到系統(tǒng)強(qiáng)制用戶(hù)更改密碼日期之間的天數(shù)(比如設(shè)置為100譬嚣,則表示更改密碼后100天,系統(tǒng)將強(qiáng)制要求再次更改密碼钞它;1表示永不修改)拜银;
- 字段6:密碼警告時(shí)間段,密碼過(guò)期前遭垛,用戶(hù)被警告的天數(shù)(比如尼桶,上個(gè)例子設(shè)置密碼最大期限為100,密碼警告時(shí)間段設(shè)為5锯仪,則表示更改密碼后第96-100這5天泵督,用戶(hù)將被警告“密碼即將過(guò)期”;-1表示沒(méi)有警告)庶喜;
- 字段7:密碼禁用期小腊,密碼過(guò)期后,到系統(tǒng)自動(dòng)禁用賬戶(hù)的天數(shù)(-1表示永遠(yuǎn)不會(huì)禁用)久窟;
- 字段8:賬戶(hù)過(guò)期日期(-1表示該賬戶(hù)被啟用)秩冈;
- 字段9:保留條目,目前沒(méi)用斥扛。
- /etc/group:存儲(chǔ)用戶(hù)組信息
存儲(chǔ)格式為入问,group_name:password:GID:user_list- group_name:組名;
- password:用戶(hù)組的口令稀颁,用占位符x表示芬失,一般Linux用戶(hù)組都沒(méi)有口令;
- GID:組ID匾灶;
- user_list:用戶(hù)列表棱烂,注意,這里列出的是以該組為附加組的用戶(hù)列表粘昨,以此組為主組的用戶(hù)沒(méi)有列在此處垢啼。
7、Linux用戶(hù)和組管理命令
- 組管理:groupadd张肾,groupmod芭析,groupdel
- 用戶(hù)管理:useradd,usermod吞瞪,userdel
- 密碼管理:passwd馁启,gpasswd
- 其它相關(guān)命令:newgrp,chage,chsh惯疙,id翠勉,su
(1) groupadd命令
groupadd - create a new group
新建組-
groupadd [options] group
- -g GID:指定GID:默認(rèn)是上一個(gè)組的GID+1
- -r:創(chuàng)建系統(tǒng)組
例如,現(xiàn)在創(chuàng)建名為mygroup1和mygroup2兩個(gè)組霉颠,查看其GID对碌,分別為1000和1001,GID加1:
[root@localhost ~]# groupadd mygroup1;groupadd mygroup2
[root@localhost ~]# tail -2 /etc/group
mygroup1:x:1000:
mygroup2:x:1001:
再創(chuàng)建一個(gè)名為mygroup3的組蒿偎,指定其GID為2222:
[root@localhost ~]# groupadd -g 2222 mygroup3
[root@localhost ~]# tail -1 /etc/group
mygroup3:x:2222:
(2) gourpmod命令
- groupmod - modify a group definition on the system
更改用戶(hù)組屬性 - groupmod [options] GROUP
- -g GID:--gid GID:修改GID
- -n NEW_NAME朽们,修改組名
- 例如:將mygroup1的GID改為1111,組名改為MYGROUP:
[root@localhost ~]# groupmod -g 1111 -n MYGOURP mygroup1
[root@localhost ~]# tail -1 /etc/group
MYGOURP:x:1111:
(3) groupdel命令
- groupdel - delete a group
刪除組 - groupdel [options] GROUP
- 當(dāng)某user以某group為主組時(shí)诉位,是無(wú)法使用groupdel命令刪除該group的骑脱,但附加組不受影響
[root@localhost ~]# useradd user2 -g mygroup2 \\創(chuàng)建user2用戶(hù),指定主組為mygroup2
[root@localhost ~]# groupdel mygroup2 \\刪除mygroup2
groupdel: cannot remove the primary group of user 'user2' \\提示無(wú)法刪除
[root@localhost ~]# useradd user3 -G mygroup3 \\新建user3用戶(hù)苍糠,添加附加組mygroup3
[root@localhost ~]# groupdel mygroup3 \\直接刪除
(4) useradd命令
useradd - create a new user or update default new user information
新建用戶(hù)或修改新建用戶(hù)時(shí)的默認(rèn)屬性-
useradd [options] LOGIN
- -u UID:--uid UID:指定UID叁丧,默認(rèn)是上一個(gè)用戶(hù)UID+1
- -g GROUP:--gid GROUP:指定用戶(hù)的基本組,此組必須事先存在
- -G:--groups GROUP1,GROUP2...岳瞭,指定用戶(hù)的附加組拥娄,這些組必須事先存在
- -c COMMENT:--comment COMMENT:添加注釋
- -d:--home HOME_DIR:指定用戶(hù)家目錄,通過(guò)復(fù)制/etc/skel并重命名實(shí)現(xiàn)的寝优,指定的家目錄路徑如果事先存在条舔,則不會(huì)為用戶(hù)復(fù)制環(huán)境初始化配置文件(如.bashrc等)
- -s:--shell SHELL:指定用戶(hù)默認(rèn)shell枫耳,可用的所有shell列表存儲(chǔ)在/etc/shells文件中
- -r:--system:創(chuàng)建系統(tǒng)用戶(hù)
例如乏矾,創(chuàng)建suse用戶(hù),指定其UID為1100迁杨,指定其主組/基本組為slackware钻心,指定附加組為group1,group2铅协,添加注釋“slackware management”捷沸,指定家目錄為/home/susehome,默認(rèn)shell為/bin/zsh:
[root@localhost ~]# useradd -u 1100 -g slackware -G "group1,group2" -c "slackware management" -d /home/susehome -s /bin/zsh suse
[root@localhost ~]# tail -1 /etc/passwd
suse:x:1100:2224:slackware management:/home/susehome:/bin/zsh
這里-d指明的家目錄事先不存在狐史,所以會(huì)將骨架信息復(fù)制過(guò)來(lái):
[root@localhost susehome]# ls -A /home/susehome/
.bash_logout .bash_profile .bashrc .mozilla
如果指定的家目錄事先存在痒给,則不會(huì)從/etc/skel復(fù)制信息:
[root@localhost home]# mkdir /home/suse2home
[root@localhost home]# useradd -d /home/suse2home suse2
useradd: warning: the home directory already exists.
Not copying any file from skel directory into it.
[root@localhost home]# ls -A /home/suse2home
[root@localhost home]#
-
useradd -D [options]:顯示或修改用戶(hù)創(chuàng)建時(shí)的默認(rèn)配置屬性
用戶(hù)創(chuàng)建時(shí)的配置屬性如下:- GROUP:是否創(chuàng)建用戶(hù)私有組,默認(rèn)100骏全,是
- HOME:家目錄起始位置苍柏,默認(rèn)/home
- INACTIVE:密碼過(guò)期到用戶(hù)注銷(xiāo)的時(shí)間,默認(rèn)-1姜贡,不注銷(xiāo)
- EXPIRE:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
- SHELL:默認(rèn)shell试吁,默認(rèn)為xxxxxxxxxxxxxxxxxxx
- SKEL:從哪復(fù)制用戶(hù)骨架信息,默認(rèn)/etc/skel
- CREATE_MAIL_SPOOL:是否創(chuàng)建郵件目錄楼咳,默認(rèn)yes熄捍,(在/var/spool/mail/)
-
Tips:
- 創(chuàng)建用戶(hù)時(shí)的諸多默認(rèn)配置保存在/etc/login.defs文件中烛恤;
- useradd -D 修改的配置結(jié)果保存在/etc/default/useradd文件中。
useradd -D顯示的內(nèi)容
[root@localhost home]# useradd -D
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes
/etc/default/useradd文件中的內(nèi)容:
[root@localhost mail]# cat /etc/default/useradd
# useradd defaults file
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes
(5) usermod命令
- usermod - modify a user account
修改用戶(hù)屬性 - usermod [options] LOGIN
和useradd的選項(xiàng)大致相同- -u UID:--uid UID:修改UID
- -g GROUP:--gid GROUP:修改用戶(hù)的基本組余耽,此組必須事先存在
- -G:--groups GROUP1,GROUP2...缚柏,修改用戶(hù)的附加組,這些組須事先存在碟贾。
注意船惨,原來(lái)的附加組會(huì)被覆蓋。
如果只添加不覆蓋缕陕,則配合使用-a選項(xiàng)粱锐。 - -a:--append:與-G一同使用,添加用戶(hù)的附加組
- -c COMMENT:--comment COMMENT:修改注釋
- -d:--home HOME_DIR:修改用戶(hù)家目錄
用戶(hù)原有的文件不會(huì)被轉(zhuǎn)移至新位置扛邑。
如果需要轉(zhuǎn)移怜浅,則配合使用-m選項(xiàng)。 - -m:--move-home:只能與-d選項(xiàng)一同使用蔬崩,用于將原來(lái)的家目錄移動(dòng)為新的家目錄恶座。
- -l:--login NEW_LOGIN:修改用戶(hù)登錄名
- -s:--shell SHELL:修改用戶(hù)默認(rèn)shell
- -L:--lock:鎖定用戶(hù)的密碼,即禁止用戶(hù)登錄沥阳。
其實(shí)就是在/etc/passwd文件中用戶(hù)原來(lái)的密碼字符串前添加一個(gè)“!”跨琳,使其不能匹配。 - -U:--unlock:解鎖用戶(hù)的密碼
- usermod的常用選項(xiàng)和useradd相同桐罕,只需注意-d和-G兩個(gè)選項(xiàng)
- 例如只修改suse用戶(hù)的家目錄為/home/suse_newhome脉让,不移動(dòng)之前家目錄的內(nèi)容,則用-d選項(xiàng)(此目錄須事先存在功炮,否則只是更改了/etc/passwd中的記錄溅潜,實(shí)際的目錄是不會(huì)自動(dòng)創(chuàng)建的):
[root@localhost ~]# mkdir /home/suse_newhome
[root@localhost ~]# usermod -d /home/suse_newhome suse
[root@localhost ~]# ls -A /home/suse_newhome/
[root@localhost ~]#
- 如果想修改家目錄的同時(shí),移動(dòng)以前家目錄的內(nèi)容薪伏,則將-d和-m選項(xiàng)同時(shí)使用(這里要注意一下滚澜,目標(biāo)目錄不要事先存在,否則和只用-d的效果是一樣的):
[root@localhost ~]# rm -rf /home/suse_newhome/ \\這里先刪除之前創(chuàng)建的目錄
[root@localhost ~]# usermod -md /home/suse_newhome suse
[root@localhost ~]# cd ~suse
[root@localhost suse_newhome]# ls -A
.bash_logout .bash_profile .bashrc .mozilla
- 例如只修改suse用戶(hù)的家目錄為/home/suse_newhome脉让,不移動(dòng)之前家目錄的內(nèi)容,則用-d選項(xiàng)(此目錄須事先存在功炮,否則只是更改了/etc/passwd中的記錄溅潜,實(shí)際的目錄是不會(huì)自動(dòng)創(chuàng)建的):
(6) userdel命令
- userdel - delete a user account and related files
刪除用戶(hù)賬戶(hù)和相關(guān)文件 - userdel [options] LOGIN
- -r:刪除用戶(hù)時(shí)一并刪除用戶(hù)家目錄
- userdel命令只需注意加不加-r選項(xiàng)的區(qū)別就可以嫁怀,-r會(huì)在刪除用戶(hù)的同時(shí)设捐,刪除和用戶(hù)相關(guān)的家目錄和郵件文件。
(7) passwd命令
- passwd - update user's authentication tokens
- passwd [-k] [-l] [-u [-f]] [-d] [-e] [-n mindays] [-x maxdays] [-w warndays] [-i inactivedays] [-S] [--stdin] [username]
- passwd:不帶任何選項(xiàng):修改當(dāng)前登錄用戶(hù)自己的密碼
- passwd USER:修改指定用戶(hù)的密碼塘淑,默認(rèn)僅root用戶(hù)有此權(quán)限
- -l:--lock:鎖定用戶(hù)
- -u:--unlock:解鎖用戶(hù)
- -d:--delete:清除用戶(hù)密碼
- -e:--expire DATE:過(guò)期期限(日期)
- -i:--inactive DAYS:非活動(dòng)期限(時(shí)長(zhǎng))
- -n:--minimum DAYS:密碼的最短使用期限
- -m:--maximum DAYS:密碼的最長(zhǎng)使用期限
- -w:--warning DAYS:警告期限
- tips:
- 修改密碼也可以用如下命令:
echo "PASSWORD" | passwd --stdin USER \\多用于shell腳本中
- 修改密碼也可以用如下命令:
(8) gpasswd命令
- gpasswd - administer /etc/group and /etc/gshadow
- gpasswd [option] group
- -a:--add USER:向組中添加用戶(hù)
- -d:--delete USER:從組中移除用戶(hù)
- tips:
- 組密碼文件:/etc/gshadow
- 組一般是沒(méi)有密碼的萝招,給組設(shè)定密碼的作用:避免用戶(hù)隨意切換基本組。
- newgrp GROUP:臨時(shí)切換當(dāng)前用戶(hù)的基本組(exit:切換回之前的基本組)
(9) newgrp命令
- newgrp - log in to a new group
- newgrp [-] [group]
- -:會(huì)模擬用戶(hù)重新登錄朴爬,以實(shí)現(xiàn)重新初始化其工作環(huán)境
- exit:切換回去
- 例如即寒,將root用戶(hù)的主組臨時(shí)切換為group1:
[root@localhost ~]# id -gn
root
[root@localhost ~]# newgrp - group1
[root@localhost ~]# id -gn
group1
(10) chage命令
- chage - change user password expiry information
修改密碼的各類(lèi)過(guò)期信息 - chage [options] LOGIN
- -d,-E,-W母赵,-m逸爵,-M
- chage命令用的不多,因?yàn)閜asswd命令中也可以修改密碼的各類(lèi)過(guò)期信息凹嘲。
(11) id命令
- id - print real and effective user and group IDs(實(shí)際的和有效的ID是不同的)
- id [OPTION]... [USER]
- id:不帶任何選項(xiàng):顯示當(dāng)前登錄用戶(hù)自己的信息
- -u:--user:僅顯示UID
- -r:--real:僅顯示實(shí)際的ID
- -g:--group:僅顯示用戶(hù)的基本組ID
- -G:--groups:僅顯示用戶(hù)所屬的所有組的ID
- -n:--name:顯示名稱(chēng)师倔,而非ID
- 例如,在suse用戶(hù)下周蹭,使用id命令:
[suse@localhost ~]$ id
uid=1100(suse) gid=2224(slackware) groups=2224(slackware),2225(group1),2226(group2) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
- 使用id -u趋艘,僅顯示suse的UID:
[suse@localhost ~]$ id -u
1100
- 使用id -g,僅顯示suse的主組GID凶朗,即slackware的GID:
[suse@localhost ~]$ id -g
2224
- 使用id -G瓷胧,顯示suse的主組和附加組的GID:
[suse@localhost ~]$ id -G
2224 2225 2226
- 配合-n選項(xiàng),顯示用戶(hù)名或組名棚愤,而非ID號(hào):
[suse@localhost ~]$ id -un
suse
[suse@localhost ~]$ id -gn
slackware
[suse@localhost ~]$ id -Gn
slackware group1 group2
(12) su命令
- su - run a command with substitute user and group ID
- su [options...] [-] [user [args...]]
- 登錄式切換:會(huì)通過(guò)重新讀取目標(biāo)用戶(hù)的配置文件來(lái)重新初始化
su - USER
or
su -l USER - 非登錄式切換:不會(huì)讀取目標(biāo)用戶(hù)的配置文件進(jìn)行初始化
su USER - -c COMMAND:僅以指定用戶(hù)的身份運(yùn)行此處指定的命令
- 登錄式切換:會(huì)通過(guò)重新讀取目標(biāo)用戶(hù)的配置文件來(lái)重新初始化
- tips:
管理員可無(wú)密碼切換至其他任何用戶(hù)
(13) 其它幾個(gè)用戶(hù)和組管理相關(guān)命令
- chsh:修改shell
- finger:查看信息
- chfn:修改finger信息
- whoami:我是誰(shuí)呵呵
- pwck:檢查用戶(hù)信息是否有異常
- grpck:檢查組信息是否有異常
Linux用戶(hù)和組管理命令的相關(guān)示例
- 創(chuàng)建組distro搓萧,其GID為2016;
[root@localhost ~]# groupadd -g 2016 distro
[root@localhost ~]# tail -1 /etc/group
distro:x:2016:
- 創(chuàng)建用戶(hù)mandriva, 其ID號(hào)為1005宛畦;基本組為distro瘸洛;
[root@localhost ~]# useradd -u 1005 -g distro mandriva
[root@localhost ~]# tail -1 /etc/passwd
mandriva:x:1005:2016::/home/mandriva:/bin/bash
- 創(chuàng)建用戶(hù)mageia,其ID號(hào)為1100次和,家目錄為/home/linux;
[root@localhost ~]# useradd -u 1100 -d /home/linux mageia
[root@localhost ~]# tail -1 /etc/passwd
mageia:x:1100:1100::/home/linux:/bin/bash
- 給用戶(hù)mageia添加密碼反肋,密碼為mageedu;
[root@localhost ~]# echo "mageedu" | passwd --stdin mageia
Changing password for user mageia.
passwd: all authentication tokens updated successfully.
- 刪除mandriva踏施,但保留其家目錄石蔗;
[root@localhost ~]# userdel mandriva
[root@localhost ~]# ls /home/ |grep linux
linux
- 創(chuàng)建用戶(hù)slackware,其ID號(hào)為2002读规,基本組為distro抓督,附加組peguin燃少;
[root@localhost ~]# groupadd peguin
[root@localhost ~]# useradd slackware -u 2002 -g distro -G peguin
[root@localhost ~]# tail -1 /etc/passwd
slackware:x:2002:2016::/home/slackware:/bin/bash
- 修改slackware的默認(rèn)shell為/bin/tcsh束亏;
[root@localhost ~]# usermod -s /bin/tcsh slackware
[root@localhost ~]# tail -1 /etc/passwd
slackware:x:2002:2016::/home/slackware:/bin/tcsh
- 為用戶(hù)slackware新增附加組admins;
[root@localhost ~]# groupadd admins
[root@localhost ~]# usermod -aG admins slackware
[root@localhost ~]# id -Gn slackware
distro peguin admins
通過(guò)更改用戶(hù)和組的配置文件阵具,直接添加或修改用戶(hù)和組
為了更深入了解用戶(hù)和組的相關(guān)配置文件碍遍,可以手動(dòng)更改配置文件以達(dá)到命令的執(zhí)行效果。
復(fù)制/etc/skel目錄為/home/tuser1阳液,要求/home/tuser1及其內(nèi)部文件的屬組和其它用戶(hù)均沒(méi)有任何訪問(wèn)權(quán)限怕敬。
[root@localhost ~]# cp -r /etc/skel /home/tuser1
\\這里我使用root用戶(hù)復(fù)制,注意目標(biāo)目錄/home/tuser1不能事先存在帘皿,否則復(fù)制的結(jié)果為/home/tuser1/skel
[root@localhost ~]# ls -Al /home/tuser1/
total 16
-rw-r--r--. 1 root root 18 May 8 17:56 .bash_logout
-rw-r--r--. 1 root root 193 May 8 17:56 .bash_profile
-rw-r--r--. 1 root root 231 May 8 17:56 .bashrc
drwxr-xr-x. 4 root root 4096 May 8 17:56 .mozilla
[root@localhost ~]# chmod -R 700 /home/tuser1
[root@localhost ~]# ll -al /home/tuser1
total 24
drwx------. 3 root root 4096 May 8 17:56 .
drwxr-xr-x. 3 root root 4096 May 8 17:56 ..
-rwx------. 1 root root 18 May 8 17:56 .bash_logout
-rwx------. 1 root root 193 May 8 17:56 .bash_profile
-rwx------. 1 root root 231 May 8 17:56 .bashrc
drwx------. 4 root root 4096 May 8 17:56 .mozilla
編輯/etc/group文件东跪,添加組hadoop。
[root@localhost ~]# vim + /etc/group
...
hadoop:x:1500:
手動(dòng)編輯/etc/passwd文件新增一行,添加用戶(hù)hadoop虽填,其基本組ID為hadoop組的id號(hào)丁恭;其家目錄為/home/hadoop。
[root@localhost ~]# vim + /etc/passwd
...
hadoop:x:1500:1500::/home/hadoop:/bin/bash
[root@localhost ~]# id hadoop
uid=1500(hadoop) gid=1500(hadoop) groups=1500(hadoop)
復(fù)制/etc/skel目錄為/home/hadoop斋日,要求修改hadoop目錄的屬組和其它用戶(hù)沒(méi)有任何訪問(wèn)權(quán)限牲览。
[root@localhost ~]# cp -R /etc/skel /home/hadoop
[root@localhost ~]# chmod 700 /home/hadoop
[root@localhost ~]# chmod g=,o= /home/hadoop/
[root@localhost ~]# ll -d /home/hadoop
drwx------. 3 root root 4096 May 14 11:20 /home/hadoop
修改/home/hadoop目錄及其內(nèi)部所有文件的屬主為hadoop,屬組為hadoop恶守。
[root@localhost ~]# chown -R hadoop:hadoop /home/hadoop/
[root@localhost ~]# ll -a /home/hadoop/
total 24
drwx------. 3 hadoop hadoop 4096 May 14 11:20 .
drwxr-xr-x. 4 root root 4096 May 14 11:20 ..
-rw-r--r--. 1 hadoop hadoop 18 May 14 11:20 .bash_logout
-rw-r--r--. 1 hadoop hadoop 193 May 14 11:20 .bash_profile
-rw-r--r--. 1 hadoop hadoop 231 May 14 11:20 .bashrc
drwxr-xr-x. 4 hadoop hadoop 4096 May 14 11:20 .mozilla