千鋒扣丁學(xué)堂Linux培訓(xùn)之用戶組解析
2019-07-26 14:33:31
3170瀏覽
今天千鋒扣丁學(xué)堂Linux培訓(xùn)老師給大家分享一篇關(guān)于Linux用戶組的詳細介紹,首先在Linux系統(tǒng)中用戶組起著重要作用。用戶組提供了一種簡單方法供一組用戶互相共享文件。用戶組也允許系統(tǒng)管理員更加有效地管理用戶權(quán)限,因為管理員可以將權(quán)限分配給用戶組而不是逐一分配給單個用戶。
盡管通常只要在系統(tǒng)中添加用戶賬戶就會創(chuàng)建用戶組,關(guān)于用戶組如何工作以及如何運用用戶組還有很多需要了解的。
一個用戶一個用戶組?
Linux系統(tǒng)中多數(shù)用戶賬戶被設(shè)為用戶名與用戶組名相同。用戶jdoe會被賦予一個名為jdoe的用戶組,且成為該新建用戶組的唯一成員。如本例所示,該用戶的登錄名,用戶id和用戶組id在新建賬戶時會被添加到/etc/passwd和/etc/group文件中:
$ sudo useradd jdoe
$ grep jdoe /etc/passwd
jdoe:x:1066:1066:Jane Doe:/home/jdoe:/bin/sh
$ grep jdoe /etc/group
jdoe:x:1066:
這些文件中的配置使系統(tǒng)得以在文本(jdoe)和數(shù)字(1066)這兩種用戶id形式之間互相轉(zhuǎn)換——jdoe就是1006,且1006就是jdoe。
分配給每個用戶的UID(用戶id)和GID(用戶組id)通常是一樣的,并且順序遞增。若上例中JaneDoe是最近添加的用戶,分配給下一個新用戶的用戶id和用戶組id很可能都是1067。
GID=UID?
UID和GID可能不一致。例如,如果你用groupadd命令添加一個用戶組而不指定用戶組id,系統(tǒng)會分配下一個可用的用戶組id(在本例中為1067)。下一個添加到系統(tǒng)中的用戶其UID會是1067而GID則為1068。
你可以避免這個問題,方法是添加用戶組的時候指定一個較小的用戶組id而不是接受默認值。在下面的命令中我們添加一個用戶組并提供一個GID,這個GID小于用于用戶賬戶的GID取值范圍。
$ sudo groupadd -g 500 devops
創(chuàng)建賬戶時你可以指定一個共享用戶組,如果這樣對你更合適的話。例如你可能想把新來的開發(fā)人員加入同一個DevOps用戶組而不是一人一個用戶組。
$ sudo useradd -g staff bennyg
$ grep bennyg /etc/passwd
bennyg:x:1064:50::/home/bennyg:/bin/sh
主要用戶組和次要用戶組
用戶組實際上有兩種:主要用戶組primarygroup和次要用戶組secondarygroup。
主要用戶組是保存在/etc/passwd文件中的用戶組,該用戶組在賬戶創(chuàng)建時配置。當用戶創(chuàng)建一個文件時,用戶的主要用戶組與此文件關(guān)聯(lián)。
$ whoami
jdoe
$ grep jdoe /etc/passwd
jdoe:x:1066:1066:John Doe:/home/jdoe:/bin/bash
^
|
+-------- 主要用戶組
$ touch newfile
$ ls -l newfile
-rw-rw-r-- 1 jdoe jdoe 0 Jul 16 15:22 newfile
^
|
+-------- 主要用戶組
用戶一旦擁有賬戶之后被加入的那些用戶組是次要用戶組。次要用戶組成員關(guān)系在/etc/group文件中顯示。
$ grep devops /etc/group
devops:x:500:shs,jadep
^
|
+-------- shs 和 jadep 的次要用戶組
/etc/group文件給用戶組分配組名稱(例如500=devops)并記錄次要用戶組成員。
首選的準則
每個用戶是他自己的主要用戶組成員,并可以成為任意多個次要用戶組成員,這樣的一種準則允許用戶更加容易地將個人文件和需要與同事分享的文件分開。當用戶創(chuàng)建一個文件時,用戶所屬的不同用戶組的成員不一定有訪問權(quán)限。用戶必須用chgrp命令將文件和次要用戶組關(guān)聯(lián)起來。
哪里也不如自己的家目錄
添加新賬戶時一個重要的細節(jié)是useradd命令并不一定為新用戶添加一個家目錄/home家目錄。若你只有某些時候想為用戶添加家目錄,你可以在useradd命令中加入-m選項(可以把它想象成“安家”選項)。
$ sudo useradd -m -g devops -c "John Doe" jdoe2
此命令中的選項如下:
-m創(chuàng)建家目錄并在其中生成初始文件
-g指定用戶歸屬的用戶組
-c添加賬戶描述信息(通常是用戶的姓名)
若你希望總是創(chuàng)建家目錄,你可以編輯/etc/login.defs文件來更改默認工作方式。更改或添加CREATE_HOME變量并將其設(shè)置為yes:
$ grep CREATE_HOME /etc/login.defs
CREATE_HOME yes
另一種方法是用自己的賬戶設(shè)置別名從而讓useradd一直帶有-m選項。
$ alias useradd=’useradd -m’
確保將該別名添加到你的~/.bashrc文件或類似的啟動文件中以使其永久生效。
深入了解/etc/login.defs
下面這個命令可列出/etc/login.defs文件中的全部設(shè)置。下面的grep命令會隱藏所有注釋和空行。
$ cat /etc/login.defs | grep -v "^#" | grep -v "^$"
MAIL_DIR /var/mail
FAILLOG_ENAB yes
LOG_UNKFAIL_ENAB no
LOG_OK_LOGINS no
SYSLOG_SU_ENAB yes
SYSLOG_SG_ENAB yes
FTMP_FILE /var/log/btmp
SU_NAME su
HUSHLOGIN_FILE .hushlogin
ENV_SUPATH PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
ENV_PATH PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
TTYGROUP tty
TTYPERM 0600
ERASECHAR 0177
KILLCHAR 025
UMASK 022
PASS_MAX_DAYS 99999
PASS_MIN_DAYS 0
PASS_WARN_AGE 7
UID_MIN 1000
UID_MAX 60000
GID_MIN 1000
GID_MAX 60000
LOGIN_RETRIES 5
LOGIN_TIMEOUT 60
CHFN_RESTRICT rwh
DEFAULT_HOME yes
CREATE_HOME yes <===
USERGROUPS_ENAB yes
ENCRYPT_METHOD SHA512
注意此文件中的各種設(shè)置會決定用戶id的取值范圍以及密碼使用期限和其他設(shè)置(如umask)。
如何顯示用戶所屬的用戶組
出于各種原因用戶可能是多個用戶組的成員。用戶組成員身份給與用戶對用戶組擁有的文件和目錄的訪問權(quán)限,有時候這種工作方式是至關(guān)重要的。要生成某個用戶所屬用戶組的清單,用groups命令即可。
$ groups jdoe
jdoe : jdoe adm admin cdrom sudo dip plugdev lpadmin staff sambashare
你可以鍵入不帶任何參數(shù)的groups命令來列出你自己的用戶組。
如何添加用戶至用戶組
如果你想添加一個已有用戶至別的用戶組,你可以仿照下面的命令操作:
$ sudo usermod -a -G devops jdoe
你也可以指定逗號分隔的用戶組列表來添加一個用戶至多個用戶組:
$ sudo usermod -a -G devops,mgrs jdoe
參數(shù)-a意思是“添加”,-G指定用戶組列表。
你可以編輯/etc/group文件將用戶名從用戶組成員名單中刪除,從而將用戶從用戶組中移除。usermod命令或許也有個選項用于從用戶組中刪除某個成員。
fish:x:16:nemo,dory,shark
|
V
fish:x:16:nemo,dory
以上就是關(guān)于千鋒扣丁學(xué)堂Linux培訓(xùn)之用戶組解析的全部內(nèi)容,
想要了解更多關(guān)于Linux開發(fā)方面內(nèi)容的小伙伴,請關(guān)注扣丁學(xué)堂Linux培訓(xùn)官網(wǎng)、微信等平臺,扣丁學(xué)堂IT職業(yè)在線學(xué)習(xí)教育有專業(yè)的Linux講師為您指導(dǎo),此外扣丁學(xué)堂老師精心推出的Linux視頻教程定能讓你快速掌握Linux從入門到精通開發(fā)實戰(zhàn)技能??鄱W(xué)堂Linux技術(shù)交流群:422345477。
【關(guān)注微信公眾號獲取更多學(xué)習(xí)資料】 【掃碼進入JavaEE/微服務(wù)VIP免費公開課】
查看更多關(guān)于“Linux培訓(xùn)資訊”的相關(guān)文章>>
標簽:
Linux培訓(xùn)
Linux視頻教程
紅帽Linux視頻
Linux學(xué)習(xí)視頻
Linux入門視頻
紅帽RHCE/RHCSA考試