Linux就該這麼學【Part five : 用戶身份與文件權限】

5.1 用戶身份與能力

  • root管理員就是存在於所有類UNIX系統中的超級用戶。它擁有最高的系統所有權,能夠管理系統的各項功能,如添加/刪除用戶、啓動/關閉服務進程、開啓/禁用硬件設備等。

  • 實驗環境是使用VMware虛擬機軟件搭建的,可以將安裝好的系統設置爲一次快照,這即便系統徹底崩潰了,您也可以在5秒鐘的時間內快速還原出一臺全新的系統,而不用擔心數據丟失。

  • Linux系統的管理員之所以是root,並不是因爲它的名字叫root,而是因爲該用戶的身份號碼即UID(User IDentification)的數值爲0。在Linux系統中,UID就相當於我們的身份證號碼一樣具有唯一性,因此可通過用戶的UID值來判斷用戶身份。在RHEL 7系統中,用戶身份有下面這些。

  1. 管理員UID爲0:系統的管理員用戶。

  2. 系統用戶UID爲1~999: Linux系統爲了避免因某個服務程序出現漏洞而被黑客提權至整臺服務器,默認服務程序會有獨立的系統用戶負責運行,進而有效控制被破壞範圍。

  3. 普通用戶UID從1000開始:是由管理員創建的用於日常工作的用戶。

  4. 需要注意的是,UID是不能衝突的,而且管理員創建的普通用戶的UID默認是從1000開始的(即使前面有閒置的號碼)。

  • **通過使用用戶組號碼(GID,Group IDentification),我們可以把多個用戶加入到同一個組中,從而方便爲組中的用戶統一規劃權限或指定任務。**假設有一個公司中有多個部門,每個部門中又有很多員工。如果只想讓員工訪問本部門內的資源,則可以針對部門而非具體的員工來設置權限。例如,可以通過對技術部門設置權限,使得只有技術部門的員工可以訪問公司的數據庫信息等。

另外,在Linux系統中創建每個用戶時,將自動創建一個與其同名的基本用戶組,而且這個基本用戶組只有該用戶一個人。如果該用戶以後被歸納入其他用戶組,則這個其他用戶組稱之爲擴展用戶組。一個用戶只有一個基本用戶組,但是可以有多個擴展用戶組,從而滿足日常的工作需要。

  1. useradd命令

useradd命令用於創建新的用戶,格式爲“useradd [選項] 用戶名”。

可以使用useradd命令創建用戶賬戶。使用該命令創建用戶賬戶時,默認的用戶家目錄會被存放在/home目錄中,默認的Shell解釋器爲/bin/bash,而且默認會創建一個與該用戶同名的基本用戶組。這些默認設置可以根據表5-1中的useradd命令參數自行修改。

-d	指定用戶的家目錄(默認爲/home/username)
-e	賬戶的到期時間,格式爲YYYY-MM-DD.
-u	指定該用戶的默認UID
-g	指定一個初始的用戶基本組(必須已存在)
-G	指定一個或多個擴展用戶組
-N	不創建與用戶同名的基本用戶組
-s	指定該用戶的默認Shell解釋器

下面我們創建一個普通用戶並指定家目錄的路徑、用戶的UID以及Shell解釋器。在下面的命令中,請注意/sbin/nologin,它是終端解釋器中的一員,與Bash解釋器有着天壤之別。一旦用戶的解釋器被設置爲nologin,則代表該用戶不能登錄到系統中:

useradd -d /home/linux -u 8888 -s /sbin/nologin linuxprobe1
id linuxprobe1

在這裏插入圖片描述

  1. groupadd命令

groupadd命令用於創建用戶組,格式爲“groupadd [選項] 羣組名”。

爲了能夠更加高效地指派系統中各個用戶的權限,在工作中常常會把幾個用戶加入到同一個組裏面,這樣便可以針對一類用戶統一安排權限。創建用戶組的步驟非常簡單,例如使用如下命令創建一個用戶組ronny:

groupadd ronny

在這裏插入圖片描述

  1. usermod命令

usermod命令用於修改用戶的屬性,格式爲“usermod [選項] 用戶名”。

前文曾反覆強調,Linux系統中的一切都是文件,因此在系統中創建用戶也就是修改配置文件的過程。用戶的信息保存在/etc/passwd文件中,可以直接用文本編輯器來修改其中的用戶參數項目,也可以用usermod命令修改已經創建的用戶信息,諸如用戶的UID、基本/擴展用戶組、默認終端等。usermod命令的參數以及作用如表5-2所示。

-c 填寫用戶賬戶的備註信息
-d -m 參數-m與參數-d連用,可重新指定用戶的家目錄並自動把舊的數據轉移過去
-e 賬戶的到期時間,格式爲YYYY-MM-DD
-g 變更所屬用戶組
-G 變更擴展用戶組
-L 鎖定用戶禁止其登錄系統
-U 解鎖用戶,允許其登錄系統
-s 變更默認終端
-u 修改用戶的UID

大家不要被這麼多參數嚇壞了。我們先來看一下賬戶linuxprobe的默認信息:

 id linuxprobe

在這裏插入圖片描述

然後將用戶linuxprobe加入到root用戶組中,這樣擴展組列表中則會出現root用戶組的字樣,而基本組不會受到影響:

usermod -G root linuxprobe
id linuxprobe

在這裏插入圖片描述

再來試試用-u參數修改linuxprobe用戶的UID號碼值。除此之外,我們還可以用-g參數修改用戶的基本組ID,用-G參數修改用戶擴展組ID。

usermod -u 8889 linuxprobe
id linuxprobe

在這裏插入圖片描述

  1. passwd命令

passwd命令用於修改用戶密碼、過期時間、認證信息等,格式爲“passwd [選項] [用戶名]”。

普通用戶只能使用passwd命令修改自身的系統密碼,而root管理員則有權限修改其他所有人的密碼。更酷的是,root管理員在Linux系統中修改自己或他人的密碼時不需要驗證舊密碼,這一點特別方便。既然root管理員可以修改其他用戶的密碼,就表示完全擁有該用戶的管理權限。passwd命令中可用的參數以及作用

-l	鎖定用戶,禁止其登錄
-u	解除鎖定,允許用戶登錄
--stdin	允許通過標準輸入修改用戶密碼,如echo "NewPassWord" | passwd --stdin Username
-d	使該用戶可用空密碼登錄系統
-e	強制用戶在下次登錄時修改密碼
-S	顯示用戶的密碼是否被鎖定,以及密碼所採用的加密算法名稱

hz11386

hz11386

假設您有位同事正在度假,而且假期很長,那麼可以使用passwd命令禁止該用戶登錄系統,等假期結束迴歸工作崗位時,再使用該命令允許用戶登錄系統,而不是將其刪除。這樣既保證了這段時間內系統的安全,也避免了頻繁添加、刪除用戶帶來的麻煩:

在這裏插入圖片描述

  1. userdel命令

userdel命令用於刪除用戶,格式爲“userdel [選項] 用戶名”。

如果我們確認某位用戶後續不再會登錄到系統中,則可以通過userdel命令刪除該用戶的所有信息。在執行刪除操作時,該用戶的家目錄默認會保留下來,此時可以使用-r參數將其刪除。userdel命令的參數以及作用

-f	強制刪除用戶
-r	同時刪除用戶及用戶家目錄

下面使用userdel命令將linuxprobe1 用戶刪除,其操作如下:

在這裏插入圖片描述

5.2 文件權限與歸屬

儘管在Linux系統中一切都是文件,但是每個文件的類型不盡相同,因此Linux系統使用了不同的字符來加以區分,常見的字符如下所示。

 -:普通文件。

d:目錄文件。

l:鏈接文件。

b:塊設備文件。

c:字符設備文件。

p:管道文件。

在Linux系統中,每個文件都有所屬的所有者和所有組,並且規定了文件的所有者、所有組以及其他人對文件所擁有的可讀(r)、可寫(w)、可執行(x)等權限。對於一般文件來說,權限比較容易理解:“可讀”表示能夠讀取文件的實際內容;“可寫”表示能夠編輯、新增、修改、刪除文件的實際內容;“可執行”則表示能夠運行一個腳本程序。但是,對於目錄文件來說,理解其權限設置來就不那麼容易了。很多資深Linux用戶其實也沒有真正搞明白。

  • 對目錄文件來說,“可讀”表示能夠讀取目錄內的文件列表;“可寫”表示能夠在目錄內新增、刪除、重命名文件;而“可執行”則表示能夠進入該目錄。

  • 文件的讀、寫、執行權限可以簡寫爲rwx,亦可分別用數字4、2、1來表示,文件所有者,所屬組及其他用戶權限之間無關聯

在這裏插入圖片描述

文件權限的數字法表示基於字符表示(rwx)的權限計算而來,其目的是簡化權限的表示。例如,若某個文件的權限爲7則代表可讀、可寫、可執行(4+2+1);若權限爲6則代表可讀、可寫(4+2)。我們來看這樣一個例子。現在有這樣一個文件,其所有者擁有可讀、可寫、可執行的權限,其文件所屬組擁有可讀、可寫的權限;而且其他人只有可讀的權限。那麼,這個文件的權限就是rwxrw-r–,數字法表示即爲764。

Linux系統的文件權限相當複雜,但是用途很廣泛,建議大家把它徹底搞清楚之後再學習下一節的內容。現在來練習一下。請各位讀者分別計算數字表示法764、642、153、731所對應的字符表示法,然後再把rwxrw-r–、rw–w--wx、rw-r–r--轉換成數字表示法。

在這裏插入圖片描述

包含了文件的類型、訪問權限、所有者(屬主)、所屬組(屬組)、佔用的磁盤大小、修改時間和文件名稱等信息。通過分析可知,該文件的類型爲普通文件,所有者權限爲可讀、可寫(rw-),所屬組權限爲可讀(r–),除此以外的其他人也只有可讀權限(r–),文件的磁盤佔用大小是34298字節,最近一次的修改時間爲4月2日的凌晨23分,文件的名稱爲install.log。

5.3 文件的特殊權限

在複雜多變的生產環境中,單純設置文件的rwx權限無法滿足我們對安全和靈活性的需求,因此便有了SUID、SGID與SBIT的特殊權限位。這是一種對文件權限進行設置的特殊功能,可以與一般權限同時使用,以彌補一般權限不能實現的功能。下面具體解釋這3個特殊權限位的功能以及用法。

  1. SUID

SUID是一種對二進制程序進行設置的特殊權限,可以讓二進制程序的執行者臨時擁有屬主的權限(僅對擁有執行權限的二進制程序有效)。例如,所有用戶都可以執行passwd命令來修改自己的用戶密碼,而用戶密碼保存在/etc/shadow文件中。仔細查看這個文件就會發現它的默認權限是000,也就是說除了root管理員以外,所有用戶都沒有查看或編輯該文件的權限。但是,在使用passwd命令時如果加上SUID特殊權限位,就可讓普通用戶臨時獲得程序所有者的身份,把變更的密碼信息寫入到shadow文件中。這很像我們在古裝劇中見到的手持尚方寶劍的欽差大臣,他手持的尚方寶劍代表的是皇上的權威,因此可以懲戒貪官,但這並不意味着他永久成爲了皇上。因此這只是一種有條件的、臨時的特殊權限授權方法。

查看passwd命令屬性時發現所有者的權限由rwx變成了rws,其中x改變成s就意味着該文件被賦予了SUID權限。另外有讀者會好奇,那麼如果原本的權限是rw-呢?如果原先權限位上沒有x執行權限,那麼被賦予特殊權限後將變成大寫的S。

在這裏插入圖片描述

  1. SGID

SGID主要實現如下兩種功能:
讓執行者臨時擁有屬組的權限(對擁有執行權限的二進制程序進行設置);
在某個目錄中創建的文件自動繼承該目錄的用戶組(只可以對目錄進行設置)。

SGID的第一種功能是參考SUID而設計的,不同點在於執行程序的用戶獲取的不再是文件所有者的臨時權限,而是獲取到文件所屬組的權限。舉例來說,在早期的Linux系統中,/dev/kmem是一個字符設備文件,用於存儲內核程序要訪問的數據,權限爲:

cr–r----- 1 root system 2, 1 Feb 11 2017 kmem

大家看出問題了嗎?除了root管理員或屬於system組成員外,所有用戶都沒有讀取該文件的權限。由於在平時我們需要查看系統的進程狀態,爲了能夠獲取到進程的狀態信息,可在用於查看系統進程狀態的ps命令文件上增加SGID特殊權限位。查看ps命令文件的屬性信息:

-r-xr-sr-x 1 bin system 59346 Feb 11 2017 ps

這樣一來,由於ps命令被增加了SGID特殊權限位,所以當用戶執行該命令時,也就臨時獲取到了system用戶組的權限,從而可以順利地讀取設備文件了。

前文提到,每個文件都有其歸屬的所有者和所屬組,當創建或傳送一個文件後,這個文件就會自動歸屬於執行這個操作的用戶(即該用戶是文件的所有者)。如果現在需要在一個部門內設置共享目錄,讓部門內的所有人員都能夠讀取目錄中的內容,那麼就可以創建部門共享目錄後,在該目錄上設置SGID特殊權限位。這樣,部門內的任何人員在裏面創建的任何文件都會歸屬於該目錄的所屬組,而不再是自己的基本用戶組。此時,我們用到的就是SGID的第二個功能,即在某個目錄中創建的文件自動繼承該目錄的用戶組(只可以對目錄進行設置)。

在這裏插入圖片描述

在使用上述命令設置好目錄的777權限(確保普通用戶可以向其中寫入文件),併爲該目錄設置了SGID特殊權限位後,就可以切換至一個普通用戶,然後嘗試在該目錄中創建文件,並查看新創建的文件是否會繼承新創建的文件所在的目錄的所屬組名稱:

在這裏插入圖片描述

除了上面提到的SGID的這兩個功能,我們再介紹兩個與本小節內容相關的命令:chmod和chown。

chmod命令是一個非常實用的命令,能夠用來設置文件或目錄的權限,格式爲“chmod [參數] 權限 文件或目錄名稱”。如果要把一個文件的權限設置成其所有者可讀可寫可執行、所屬組可讀可寫、其他人沒有任何權限,則相應的字符法表示爲rwxrw----,其對應的數字法表示爲760。

在這裏插入圖片描述

除了設置文件或目錄的權限外,還可以設置文件或目錄的所有者和所屬組,這裏使用的命令爲chown,其格式爲“chown [參數] 所有者:所屬組 文件或目錄名稱”。

chmod和chown命令是用於修改文件屬性和權限的最常用命令,它們還有一個特別的共性,就是針對目錄進行操作時需要加上大寫參數-R來表示遞歸操作,即對目錄內所有的文件進行整體操作。

在這裏插入圖片描述

  1. SBIT

現在,大學裏的很多老師都要求學生將作業上傳到服務器的特定共享目錄中,但總是有幾個“破壞分子”喜歡刪除其他同學的作業,這時就要設置SBIT(Sticky Bit)特殊權限位了(也可以稱之爲特殊權限位之粘滯位)。SBIT特殊權限位可確保用戶只能刪除自己的文件,而不能刪除其他用戶的文件。換句話說,當對某個目錄設置了SBIT粘滯位權限後,那麼該目錄中的文件就只能被其所有者執行刪除操作了。

最初不知道是哪位非資深技術人員將Sticky Bit直譯成了“粘滯位”,劉遄老師建議將其稱爲“保護位”,這既好記,又能立刻讓人瞭解它的作用。RHEL 7系統中的/tmp作爲一個共享文件的目錄,默認已經設置了SBIT特殊權限位,因此除非是該目錄的所有者,否則無法刪除這裏面的文件。

與前面所講的SUID和SGID權限顯示方法不同,當目錄被設置SBIT特殊權限位後,文件的其他人權限部分的x執行權限就會被替換成t或者T,原本有x執行權限則會寫成t,原本沒有x執行權限則會被寫成T。

在這裏插入圖片描述

其實,文件能否被刪除並不取決於自身的權限,而是看其所在目錄是否有寫入權限(其原理會在下個章節講到)。爲了避免現在很多讀者不放心,所以上面的命令還是賦予了這個test文件最大的777權限(rwxrwxrwx)。我們切換到另外一個普通用戶,然後嘗試刪除這個其他人創建的文件就會發現,即便讀、寫、執行權限全開,但是由於SBIT特殊權限位的緣故,依然無法刪除該文件:

在這裏插入圖片描述

當然,要是也想對其他目錄來設置SBIT特殊權限位,用chmod命令就可以了。對應的參數o+t代表設置SBIT粘滯位權限:

在這裏插入圖片描述

5.4 文件的隱藏屬性

Linux系統中的文件除了具備一般權限和特殊權限之外,還有一種隱藏權限,即被隱藏起來的權限,默認情況下不能直接被用戶發覺。有用戶曾經在生產環境和RHCE考試題目中碰到過明明權限充足但卻無法刪除某個文件的情況,或者僅能在日誌文件中追加內容而不能修改或刪除內容,這在一定程度上阻止了黑客篡改系統日誌的圖謀,因此這種“奇怪”的文件也保障了Linux系統的安全性。

  1. chattr命令

chattr命令用於設置文件的隱藏權限,格式爲“chattr [參數] 文件”。如果想要把某個隱藏功能添加到文件上,則需要在命令後面追加“+參數”,如果想要把某個隱藏功能移出文件,則需要追加“-參數”

i	無法對文件進行修改;若對目錄設置了該參數,則僅能修改其中的子文件內容而不能新建或刪除文件
a	僅允許補充(追加)內容,無法覆蓋/刪除內容(Append Only)
S	文件內容在變更後立即同步到硬盤(sync)
s	徹底從硬盤中刪除,不可恢復(用0填充原文件所在硬盤區域)
A	不再修改這個文件或目錄的最後訪問時間(atime)
b	不再修改文件或目錄的存取時間
D	檢查壓縮文件中的錯誤
d	使用dump命令備份時忽略本文件/目錄
c	默認將文件或目錄進行壓縮
u	當刪除該文件後依然保留其在硬盤中的數據,方便日後恢復
t	讓文件系統支持尾部合併(tail-merging)
x	可以直接訪問壓縮文件中的內容

爲了讓讀者能夠更好地見識隱藏權限的效果,我們先來創建一個普通文件,然後立即嘗試刪除(這個操作肯定會成功):

在這裏插入圖片描述

實踐是檢驗真理的唯一標準。如果您沒有親眼見證過隱藏權限強大功能的美妙,就一定不會相信原來Linux系統會如此安全。接下來我們再次新建一個普通文件,併爲其設置不允許刪除與覆蓋(+a參數)權限,然後再嘗試將這個文件刪除:

在這裏插入圖片描述

  1. lsattr命令

lsattr命令用於顯示文件的隱藏權限,格式爲“lsattr [參數] 文件”。在Linux系統中,文件的隱藏權限必須使用lsattr命令來查看,平時使用的ls之類的命令則看不出端倪:

在這裏插入圖片描述

一旦使用lsattr命令後,文件上被賦予的隱藏權限馬上就會原形畢露。此時可以按照顯示的隱藏權限的類型(字母),使用chattr命令將其去掉:

在這裏插入圖片描述

5.5 文件訪問控制列表

不知道大家是否發現,前文講解的一般權限、特殊權限、隱藏權限其實有一個共性—權限是針對某一類用戶設置的。如果希望對某個指定的用戶進行單獨的權限控制,就需要用到文件的訪問控制列表(ACL)了。通俗來講,基於普通文件或目錄設置ACL其實就是針對指定的用戶或用戶組設置文件或目錄的操作權限。另外,如果針對某個目錄設置了ACL,則目錄中的文件會繼承其ACL;若針對文件設置了ACL,則文件不再繼承其所在目錄的ACL。

爲了更直觀地看到ACL對文件權限控制的強大效果,我們先切換到普通用戶,然後嘗試進入root管理員的家目錄中。在沒有針對普通用戶對root管理員的家目錄設置ACL之前,其執行結果如下所示:
下圖linuxprobe有root權限
在這裏插入圖片描述

  1. setfacl命令

setfacl命令用於管理文件的ACL規則,格式爲“setfacl [參數] 文件名稱”。文件的ACL提供的是在所有者、所屬組、其他人的讀/寫/執行權限之外的特殊權限控制,使用setfacl命令可以針對單一用戶或用戶組、單一文件或目錄來進行讀/寫/執行權限的控制。其中,針對目錄文件需要使用-R遞歸參數;針對普通文件則使用-m參數;如果想要刪除某個文件的ACL,則可以使用-b參數。下面來設置用戶在/root目錄上的權限:

在這裏插入圖片描述

是不是覺得效果很酷呢?但是現在有這樣一個小問題—怎麼去查看文件上有那些ACL呢?常用的ls命令是看不到ACL表信息的,但是卻可以看到文件的權限最後一個點(.)變成了加號(+),這就意味着該文件已經設置了ACL了。現在大家是不是感覺學得越多,越不敢說自己精通Linux系統了吧?就這麼一個不起眼的點(.),竟然還表示這麼一種重要的權限。

在這裏插入圖片描述

  1. getfacl命令

getfacl命令用於顯示文件上設置的ACL信息,格式爲“getfacl 文件名稱”。Linux系統中的命令就是這麼又可愛又好記。想要設置ACL,用的是setfacl命令;要想查看ACL,則用的是getfacl命令。下面使用getfacl命令顯示在root管理員家目錄上設置的所有ACL信息。

在這裏插入圖片描述

5.6 su命令與sudo服務

各位讀者在實驗環境中很少遇到安全問題,並且爲了避免因權限因素導致配置服務失敗,從而建議使用root管理員來學習本書,但是在生產環境中還是要對安全多一份敬畏之心,不要用root管理員去做所有事情。因爲一旦執行了錯誤的命令,可能會直接導致系統崩潰,這樣一來,不但客戶指責、領導批評,沒準獎金也會雞飛蛋打。但轉頭一想,儘管Linux系統爲了安全性考慮,使得許多系統命令和服務只能被root管理員來使用,但是這也讓普通用戶受到了更多的權限束縛,從而導致無法順利完成特定的工作任務。

su命令可以解決切換用戶身份的需求,使得當前用戶在不退出登錄的情況下,順暢地切換到其他用戶,比如從root管理員切換至普通用戶:

在這裏插入圖片描述

細心的讀者一定會發現,上面的su命令與用戶名之間有一個減號(-),這意味着完全切換到新的用戶,即把環境變量信息也變更爲新用戶的相應信息,而不是保留原始的信息。強烈建議在切換用戶身份時添加這個減號(-)。

另外,當從root管理員切換到普通用戶時是不需要密碼驗證的,而從普通用戶切換成root管理員就需要進行密碼驗證了;這也是一個必要的安全檢查:

在這裏插入圖片描述

儘管像上面這樣使用su命令後,普通用戶可以完全切換到root管理員身份來完成相應工作,但這將暴露root管理員的密碼,從而增大了系統密碼被黑客獲取的機率;這並不是最安全的方案。

用sudo命令把特定命令的執行權限賦予給指定用戶,這樣既可保證普通用戶能夠完成特定的工作,也可以避免泄露root管理員密碼。我們要做的就是合理配置sudo服務,以便兼顧系統的安全性和用戶的便捷性。sudo服務的配置原則也很簡單—在保證普通用戶完成相應工作的前提下,儘可能少地賦予額外的權限。

sudo命令用於給普通用戶提供額外的權限來完成原本root管理員才能完成的任務,格式爲“sudo [參數] 命令名稱”。

-h	列出幫助信息
-l	列出當前用戶可執行的命令
-u 用戶名或UID值	以指定的用戶身份執行命令
-k	清空密碼的有效時間,下次執行sudo時需要再次進行密碼驗證
-b	在後臺執行指定的命令
-p	更改詢問密碼的提示語

總結來說,sudo命令具有如下功能:

限制用戶執行指定的命令:
記錄用戶執行的每一條命令;
配置文件(/etc/sudoers)提供集中的用戶管理、權限與主機等參數;
驗證密碼的後5分鐘內(默認值)無須再讓用戶再次驗證密碼。

當然,如果擔心直接修改配置文件會出現問題,則可以使用sudo命令提供的visudo命令來配置用戶權限。這條命令在配置用戶權限時將禁止多個用戶同時修改sudoers配置文件,還可以對配置文件內的參數進行語法檢查,並在發現參數錯誤時進行報錯。

只有root管理員纔可以使用visudo命令編輯sudo服務的配置文件。

在這裏插入圖片描述

使用visudo命令配置sudo命令的配置文件時,其操作方法與Vim編輯器中用到的方法一致,因此在編寫完成後記得在末行模式下保存並退出。在sudo命令的配置文件中,按照下面的格式將第99行(大約)填寫上指定的信息:

誰可以使用 允許使用的主機=(以誰的身份) 可執行命令的列表

在這裏插入圖片描述

在這裏插入圖片描述

效果立竿見影!但是考慮到生產環境中不允許某個普通用戶擁有整個系統中所有命令的最高執行權(這也不符合前文提到的權限賦予原則,即儘可能少地賦予權限),因此ALL參數就有些不合適了。因此只能賦予普通用戶具體的命令以滿足工作需求,這也受到了必要的權限約束。如果需要讓某個用戶只能使用root管理員的身份執行指定的命令,切記一定要給出該命令的絕對路徑,否則系統會識別不出來。我們可以先使用whereis命令找出命令所對應的保存路徑,然後把配置文件第99行的用戶權限參數修改成對應的路徑即可:

在這裏插入圖片描述

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章