日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢(xún)
選擇下列產(chǎn)品馬上在線(xiàn)溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
Linux中非常重要的知識(shí)點(diǎn):用戶(hù)組

在 Linux 系統(tǒng)中用戶(hù)組起著重要作用。用戶(hù)組提供了一種簡(jiǎn)單方法供一組用戶(hù)互相共享文件。用戶(hù)組也允許系統(tǒng)管理員更加有效地管理用戶(hù)權(quán)限,因?yàn)楣芾韱T可以將權(quán)限分配給用戶(hù)組而不是逐一分配給單個(gè)用戶(hù)。

盡管通常只要在系統(tǒng)中添加用戶(hù)賬戶(hù)就會(huì)創(chuàng)建用戶(hù)組,關(guān)于用戶(hù)組如何工作以及如何運(yùn)用用戶(hù)組還有很多需要了解的。

一個(gè)用戶(hù)一個(gè)用戶(hù)組?

Linux 系統(tǒng)中多數(shù)用戶(hù)賬戶(hù)被設(shè)為用戶(hù)名與用戶(hù)組名相同。用戶(hù) jdoe 會(huì)被賦予一個(gè)名為jdoe 的用戶(hù)組,且成為該新建用戶(hù)組的唯一成員。如本例所示,該用戶(hù)的登錄名,用戶(hù) id 和用戶(hù)組id 在新建賬戶(hù)時(shí)會(huì)被添加到 /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)這兩種用戶(hù)id 形式之間互相轉(zhuǎn)換—— jdoe 就是 1006,且 1006 就是jdoe 。

分配給每個(gè)用戶(hù)的 UID(用戶(hù) id)和 GID(用戶(hù)組 id)通常是一樣的,并且順序遞增。若上例中 Jane Doe 是最近添加的用戶(hù),分配給下一個(gè)新用戶(hù)的用戶(hù) id 和用戶(hù)組 id 很可能都是 1067。

GID = UID?

UID 和 GID 可能不一致。例如,如果你用 groupadd 命令添加一個(gè)用戶(hù)組而不指定用戶(hù)組 id,系統(tǒng)會(huì)分配下一個(gè)可用的用戶(hù)組 id(在本例中為 1067)。下一個(gè)添加到系統(tǒng)中的用戶(hù)其 UID 會(huì)是 1067 而 GID 則為 1068。

你可以避免這個(gè)問(wèn)題,方法是添加用戶(hù)組的時(shí)候指定一個(gè)較小的用戶(hù)組 id 而不是接受默認(rèn)值。在下面的命令中我們添加一個(gè)用戶(hù)組并提供一個(gè) GID,這個(gè) GID 小于用于用戶(hù)賬戶(hù)的 GID 取值范圍。

$ sudo groupadd -g 500 devops

創(chuàng)建賬戶(hù)時(shí)你可以指定一個(gè)共享用戶(hù)組,如果這樣對(duì)你更合適的話(huà)。例如你可能想把新來(lái)的開(kāi)發(fā)人員加入同一個(gè) DevOps 用戶(hù)組而不是一人一個(gè)用戶(hù)組。

$ sudo useradd -g staff bennyg
$ grep bennyg /etc/passwd
bennyg:x:1064:50::/home/bennyg:/bin/sh

主要用戶(hù)組和次要用戶(hù)組

用戶(hù)組實(shí)際上有兩種:主要用戶(hù)組primary group和次要用戶(hù)組secondary group。

主要用戶(hù)組是保存在 /etc/passwd 文件中的用戶(hù)組,該用戶(hù)組在賬戶(hù)創(chuàng)建時(shí)配置。當(dāng)用戶(hù)創(chuàng)建一個(gè)文件時(shí),用戶(hù)的主要用戶(hù)組與此文件關(guān)聯(lián)。

$ whoami
jdoe
$ grep jdoe /etc/passwd
jdoe:x:1066:1066:John Doe:/home/jdoe:/bin/bash
            ^
            |
            +-------- 主要用戶(hù)組
$ touch newfile
$ ls -l newfile
-rw-rw-r-- 1 jdoe jdoe 0 Jul 16 15:22 newfile
                  ^
                  |
                  +-------- 主要用戶(hù)組

用戶(hù)一旦擁有賬戶(hù)之后被加入的那些用戶(hù)組是次要用戶(hù)組。次要用戶(hù)組成員關(guān)系在 /etc/group 文件中顯示。

$ grep devops /etc/group
devops:x:500:shs,jadep
         ^
         |
         +-------- shs 和 jadep 的次要用戶(hù)組

/etc/group 文件給用戶(hù)組分配組名稱(chēng)(例如 500 = devops)并記錄次要用戶(hù)組成員。

首選的準(zhǔn)則

每個(gè)用戶(hù)是他自己的主要用戶(hù)組成員,并可以成為任意多個(gè)次要用戶(hù)組成員,這樣的一種準(zhǔn)則允許用戶(hù)更加容易地將個(gè)人文件和需要與同事分享的文件分開(kāi)。當(dāng)用戶(hù)創(chuàng)建一個(gè)文件時(shí),用戶(hù)所屬的不同用戶(hù)組的成員不一定有訪(fǎng)問(wèn)權(quán)限。用戶(hù)必須用 chgrp 命令將文件和次要用戶(hù)組關(guān)聯(lián)起來(lái)。

哪里也不如自己的家目錄

添加新賬戶(hù)時(shí)一個(gè)重要的細(xì)節(jié)是 useradd 命令并不一定為新用戶(hù)添加一個(gè)家目錄/home家目錄。若你只有某些時(shí)候想為用戶(hù)添加家目錄,你可以在 useradd 命令中加入 -m 選項(xiàng)(可以把它想象成“安家”選項(xiàng))。

$ sudo useradd -m -g devops -c "John Doe" jdoe2

此命令中的選項(xiàng)如下: -m 創(chuàng)建家目錄并在其中生成初始文件 -g 指定用戶(hù)歸屬的用戶(hù)組 -c 添加賬戶(hù)描述信息(通常是用戶(hù)的姓名) 若你希望總是創(chuàng)建家目錄,你可以編輯 /etc/login.defs 文件來(lái)更改默認(rèn)工作方式。更改或添加 CREATE_HOME 變量并將其設(shè)置為 yes:

$ grep CREATE_HOME /etc/login.defs
CREATE_HOME     yes

另一種方法是用自己的賬戶(hù)設(shè)置別名從而讓 useradd 一直帶有 -m 選項(xiàng)。

$ alias useradd=’useradd -m’

確保將該別名添加到你的~/.bashrc 文件或類(lèi)似的啟動(dòng)文件中以使其永久生效。

深入了解 /etc/login.defs

下面這個(gè)命令可列出 /etc/login.defs 文件中的全部設(shè)置。下面的grep 命令會(huì)隱藏所有注釋和空行。

$ 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                 

注意此文件中的各種設(shè)置會(huì)決定用戶(hù) id 的取值范圍以及密碼使用期限和其他設(shè)置(如 umask)。

如何顯示用戶(hù)所屬的用戶(hù)組

出于各種原因用戶(hù)可能是多個(gè)用戶(hù)組的成員。用戶(hù)組成員身份給與用戶(hù)對(duì)用戶(hù)組擁有的文件和目錄的訪(fǎng)問(wèn)權(quán)限,有時(shí)候這種工作方式是至關(guān)重要的。要生成某個(gè)用戶(hù)所屬用戶(hù)組的清單,用groups 命令即可。

$ groups jdoe
jdoe : jdoe adm admin cdrom sudo dip plugdev lpadmin staff sambashare

你可以鍵入不帶任何參數(shù)的 groups 命令來(lái)列出你自己的用戶(hù)組。

如何添加用戶(hù)至用戶(hù)組

如果你想添加一個(gè)已有用戶(hù)至別的用戶(hù)組,你可以仿照下面的命令操作:

$ sudo usermod -a -G devops jdoe

你也可以指定逗號(hào)分隔的用戶(hù)組列表來(lái)添加一個(gè)用戶(hù)至多個(gè)用戶(hù)組:

$ sudo usermod -a -G devops,mgrs jdoe

參數(shù) -a 意思是“添加”,-G 指定用戶(hù)組列表。

你可以編輯/etc/group 文件將用戶(hù)名從用戶(hù)組成員名單中刪除,從而將用戶(hù)從用戶(hù)組中移除。usermod 命令或許也有個(gè)選項(xiàng)用于從用戶(hù)組中刪除某個(gè)成員。

fish:x:16:nemo,dory,shark
          |
          V
fish:x:16:nemo,dory

分享名稱(chēng):Linux中非常重要的知識(shí)點(diǎn):用戶(hù)組
文章出自:http://www.5511xx.com/article/dpgojjh.html