當(dāng)你需要管理一臺(tái)容納多個(gè)用戶的 Linux 機(jī)器時(shí),比起一些基本的用戶管理工具所提供的方法,有時(shí)候你需要對(duì)這些用戶采取更多的用戶權(quán)限管理方式。特別是當(dāng)你要管理某些用戶的權(quán)限時(shí),這個(gè)想法尤為重要。比如說(shuō),你有一個(gè)目錄,某個(gè)用戶組中的用戶可以通過(guò)讀和寫(xiě)的權(quán)限訪問(wèn)這個(gè)目錄,而其他用戶組中的用戶對(duì)這個(gè)目錄只有讀的權(quán)限。在 Linux 中,這是完全可以實(shí)現(xiàn)的。但前提是你必須先了解如何通過(guò)用戶組和訪問(wèn)控制表(ACL)來(lái)管理用戶。
我們將從簡(jiǎn)單的用戶開(kāi)始,逐漸深入到復(fù)雜的訪問(wèn)控制表(ACL)。你可以在你所選擇的 Linux 發(fā)行版完成你所需要做的一切。本文的重點(diǎn)是用戶組,所以不會(huì)涉及到關(guān)于用戶的基礎(chǔ)知識(shí)。
為了達(dá)到演示的目的,我將假設(shè):
你需要用下面兩個(gè)用戶名新建兩個(gè)用戶:
-
olivia
-
nathan
你需要新建以下兩個(gè)用戶組:
olivia 屬于 editors 用戶組,而 nathan 屬于 readers 用戶組。reader 用戶組對(duì)/DATA目錄只有讀的權(quán)限,而 editors 用戶組則對(duì)/DATA目錄同時(shí)有讀和寫(xiě)的權(quán)限。當(dāng)然,這是個(gè)非常小的任務(wù),但它會(huì)給你基本的信息,你可以擴(kuò)展這個(gè)任務(wù)以適應(yīng)你其他更大的需求。
我將在 Ubuntu 16.04 Server 平臺(tái)上進(jìn)行演示。這些命令都是通用的,唯一不同的是,要是在你的發(fā)行版中不使用sudo命令,你必須切換到 root 用戶來(lái)執(zhí)行這些命令。
創(chuàng)建用戶
我們需要做的第一件事是為我們的實(shí)驗(yàn)創(chuàng)建兩個(gè)用戶??梢杂胾seradd命令來(lái)創(chuàng)建用戶,我們不只是簡(jiǎn)單地創(chuàng)建一個(gè)用戶,而需要同時(shí)創(chuàng)建用戶和屬于他們的家目錄,然后給他們?cè)O(shè)置密碼。
sudouseradd-molivia
sudouseradd-mnathan
我們現(xiàn)在創(chuàng)建了兩個(gè)用戶,如果你看看 /home 目錄,你可以發(fā)現(xiàn)他們的家目錄(因?yàn)槲覀冇昧?-m 選項(xiàng),可以在創(chuàng)建用戶的同時(shí)創(chuàng)建他們的家目錄。
之后,我們可以用以下命令給他們?cè)O(shè)置密碼:
sudo passwd olivia
sudo passwdnathan
就這樣,我們創(chuàng)建了兩個(gè)用戶。
創(chuàng)建用戶組并添加用戶
現(xiàn)在我們將創(chuàng)建 readers 和 editors 用戶組,然后給它們添加用戶。創(chuàng)建用戶組的命令是:
addgroup readers
addgroupeditors
(LCTT 譯注:當(dāng)你使用 CentOS 等一些 Linux 發(fā)行版時(shí),可能系統(tǒng)沒(méi)有addgroup這個(gè)命令,推薦使用groupadd命令來(lái)替換addgroup命令以達(dá)到同樣的效果)
圖一:我們可以使用剛創(chuàng)建的新用戶組了。
創(chuàng)建用戶組后,我們需要添加我們的用戶到這兩個(gè)用戶組。我們用以下命令來(lái)將 nathan 用戶添加到 readers 用戶組:
sudousermod-a-Greadersnathan
用以下命令將 olivia 添加到 editors 用戶組:
sudousermod-a-Geditorsolivia
現(xiàn)在我們可以通過(guò)用戶組來(lái)管理用戶了。
給用戶組授予目錄的權(quán)限
假設(shè)你有個(gè)目錄 /READERS 且允許 readers 用戶組的所有成員訪問(wèn)這個(gè)目錄。首先,我們執(zhí)行以下命令來(lái)更改目錄所屬用戶組:
sudochown-R:readers/READERS
接下來(lái),執(zhí)行以下命令收回目錄所屬用戶組的寫(xiě)入權(quán)限:
sudochmod-Rg-w/READERS
然后我們執(zhí)行下面的命令來(lái)收回其他用戶對(duì)這個(gè)目錄的訪問(wèn)權(quán)限(以防止任何不在 readers 組中的用戶訪問(wèn)這個(gè)目錄里的文件):
sudochmod-Ro-x/READERS
這時(shí)候,只有目錄的所有者(root)和用戶組 reader 中的用戶可以訪問(wèn) /READES 中的文件。
假設(shè)你有個(gè)目錄 /EDITORS ,你需要給用戶組 editors 里的成員這個(gè)目錄的讀和寫(xiě)的權(quán)限。為了達(dá)到這個(gè)目的,執(zhí)行下面的這些命令是必要的:
sudochown-R:editors/EDITORS
sudochmod-Rg+w/EDITORS
sudochmod-Ro-x/EDITORS
此時(shí) editors 用戶組的所有成員都可以訪問(wèn)和修改其中的文件。除此之外其他用戶(除了 root 之外)無(wú)法訪問(wèn) /EDITORS 中的任何文件。
使用這個(gè)方法的問(wèn)題在于,你一次只能操作一個(gè)組和一個(gè)目錄而已。這時(shí)候訪問(wèn)控制表(ACL)就可以派得上用場(chǎng)了。
使用訪問(wèn)控制表(ACL)
現(xiàn)在,讓我們把這個(gè)問(wèn)題變得棘手一點(diǎn)。假設(shè)你有一個(gè)目錄 /DATA 并且你想給 readers 用戶組的成員讀取權(quán)限,并同時(shí)給 editors 用戶組的成員讀和寫(xiě)的權(quán)限。為此,你必須要用到 setfacl 命令。setfacl 命令可以為文件或文件夾設(shè)置一個(gè)訪問(wèn)控制表(ACL)。
這個(gè)命令的結(jié)構(gòu)如下:
setfaclOPTIONX:NAME:Y/DIRECTORY
其中 OPTION 是可選選項(xiàng),X 可以是 u(用戶)或者是 g (用戶組),NAME 是用戶或者用戶組的名字,/DIRECTORY 是要用到的目錄。我們將使用 -m 選項(xiàng)進(jìn)行修改。因此,我們給 readers 用戶組添加讀取權(quán)限的命令是:
sudosetfacl-mg:readers:rx-R/DATA
現(xiàn)在 readers 用戶組里面的每一個(gè)用戶都可以讀取 /DATA 目錄里的文件了,但是他們不能修改里面的內(nèi)容。
為了給 editors 用戶組里面的用戶讀寫(xiě)權(quán)限,我們執(zhí)行了以下命令:
sudosetfacl-mg:editors:rwx-R/DATA
上述命令將賦予 editors 用戶組中的任何成員讀取權(quán)限,同時(shí)保留 readers 用戶組的只讀權(quán)限。
更多的權(quán)限控制
使用訪問(wèn)控制表(ACL),你可以實(shí)現(xiàn)你所需的權(quán)限控制。你可以添加用戶到用戶組,并且靈活地控制這些用戶組對(duì)每個(gè)目錄的權(quán)限以達(dá)到你的需求。如果想了解上述工具的更多信息,可以執(zhí)行下列的命令:
-
man usradd
-
man addgroup
-
man usermod
-
man sefacl
-
man chown
-
man chmod
-
Linux
+關(guān)注
關(guān)注
87文章
11420瀏覽量
212359 -
ACL
+關(guān)注
關(guān)注
0文章
61瀏覽量
12305
原文標(biāo)題:如何在 Linux 系統(tǒng)中通過(guò)用戶組來(lái)管理用戶
文章出處:【微信號(hào):LinuxHub,微信公眾號(hào):Linux愛(ài)好者】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
Linux用戶與用戶組的知識(shí)科普

[bug反饋] 為什么會(huì)無(wú)緣無(wú)故降級(jí)用戶組??!
水貼——用戶組顯示等待驗(yàn)證會(huì)員
我己經(jīng)通過(guò)實(shí)名認(rèn)證,怎么還在等待驗(yàn)證會(huì)員用戶組?
我己經(jīng)通過(guò)實(shí)名認(rèn)證,怎么還在等待驗(yàn)證會(huì)員用戶組?再想驗(yàn)證己經(jīng)沒(méi)有可點(diǎn)的按鈕。
【4412開(kāi)發(fā)板】理解和掌握l(shuí)inux用戶、用戶組、權(quán)限等方法
【魯班貓】通過(guò)添加udev規(guī)則實(shí)現(xiàn)用戶組訪問(wèn)SPI和I2C設(shè)備
通過(guò)添加udev規(guī)則實(shí)現(xiàn)用戶組訪問(wèn)SPI和I2C及GPIO設(shè)備
什么是接入控制表(ACL)
整理了 Linux 用戶及用戶組管理的相關(guān)內(nèi)容

評(píng)論