2021-02-11 分類: 網(wǎng)站建設(shè)
在 Linux 系統(tǒng)中管理用戶組并不費力,但相關(guān)命令可能比你所知的更為靈活。
在 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)通常是一樣的,并且順序遞增。若上例中 Jane Doe 是最近添加的用戶,分配給下一個新用戶的用戶 id 和用戶組 id 很可能都是 1067。
UID 和 GID 可能不一致。例如,如果你用?groupadd?命令添加一個用戶組而不指定用戶組 id,系統(tǒng)會分配下一個可用的用戶組 id(在本例中為 1067)。下一個添加到系統(tǒng)中的用戶其 UID 會是 1067 而 GID 則為 1068。
你可以避免這個問題,方法是添加用戶組的時候指定一個較小的用戶組 id 而不是接受默認(rèn)值。在下面的命令中我們添加一個用戶組并提供一個 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
用戶組實際上有兩種:主要用戶組primary group和次要用戶組secondary group。
主要用戶組是保存在?/etc/passwd?文件中的用戶組,該用戶組在賬戶創(chuàng)建時配置。當(dā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)并記錄次要用戶組成員。
每個用戶是他自己的主要用戶組成員,并可以成為任意多個次要用戶組成員,這樣的一種準(zhǔn)則允許用戶更加容易地將個人文件和需要與同事分享的文件分開。當(dāng)用戶創(chuàng)建一個文件時,用戶所屬的不同用戶組的成員不一定有訪問權(quán)限。用戶必須用?chgrp?命令將文件和次要用戶組關(guān)聯(lián)起來。
添加新賬戶時一個重要的細(xì)節(jié)是?useradd?命令并不一定為新用戶添加一個家目錄/home家目錄。若你只有某些時候想為用戶添加家目錄,你可以在?useradd?命令中加入?-m?選項(可以把它想象成“安家”選項)。
- $ sudo useradd -m -g devops -c "John Doe" jdoe2
此命令中的選項如下:
若你希望總是創(chuàng)建家目錄,你可以編輯?/etc/login.defs?文件來更改默認(rèn)工作方式。更改或添加?CREATE_HOME?變量并將其設(shè)置為?yes:
- $ grep CREATE_HOME /etc/login.defs
- CREATE_HOME yes
另一種方法是用自己的賬戶設(shè)置別名從而讓?useradd?一直帶有?-m?選項。
- $ alias useradd=’useradd -m’
確保將該別名添加到你的?~/.bashrc?文件或類似的啟動文件中以使其永久生效。
下面這個命令可列出?/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
添加和管理用戶組并非特別困難,但長遠(yuǎn)來看配置賬戶時的一致性可使這項工作更容易些。
分享名稱:如何掌握Linux用戶組
網(wǎng)站路徑:http://muchs.cn/news/100298.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供做網(wǎng)站、定制開發(fā)、營銷型網(wǎng)站建設(shè)、商城網(wǎng)站、網(wǎng)站設(shè)計公司、網(wǎng)站改版
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容