首頁 > 軟體

RHCSA 系列(三): 如何管理 RHEL7 的使用者和組

2020-06-16 17:53:28

和管理其它Linux伺服器一樣,管理一個 RHEL 7 伺服器要求你能夠新增、修改、暫停或刪除使用者帳戶,並且授予他們執行其分配的任務所需的檔案、目錄、其它系統資源所必要的許可權。

RHCSA: 使用者和組管理 – Part 3

 

管理使用者帳戶

如果想要給RHEL 7 伺服器新增賬戶,你需要以root使用者執行如下兩條命令之一:

  1. # adduser [new_account]
  2. #useradd[new_account]

當新增新的使用者帳戶時,預設會執行下列操作。

  • 它/她的主目錄就會被建立(一般是"/home/使用者名稱",除非你特別設定)
  • 一些隱藏檔案 如.bash_logout, .bash_profile 以及 .bashrc 會被複製到使用者的主目錄,它們會為使用者的回話提供環境變數。你可以進一步檢視它們的相關細節。
  • 會為您的賬號新增一個郵件池目錄。
  • 會建立一個和使用者名稱同樣的組(LCTT 譯註:除非你給新建立的使用者指定了組)。

使用者帳戶的全部資訊被儲存在/etc/passwd檔案。這個檔案以如下格式儲存了每一個系統帳戶的所有資訊(欄位以“:”分割)

  1. [username]:[x]:[UID]:[GID]:[Comment]:[Home directory]:[Default shell]
  • [username][Comment] 其意自明,就是使用者名稱和備註
  • 第二個‘x’表示帳戶的啟用了密碼保護(記錄在/etc/shadow檔案),密碼用於登入[username]
  • [UID][GID]是整數,它們表明了[username]的使用者ID 和所屬的主組ID

最後。

  • [Home directory]顯示[username]的主目錄的絕對路徑
  • [Default shell] 是當使用者登入系統後使用的預設shell

另外一個你必須要熟悉的重要的檔案是儲存組資訊的/etc/group。和/etc/passwd類似,也是每行一個記錄,欄位由“:”分割

  1. [Group name]:[Group password]:[GID]:[Group members]
  • [Group name] 是組名
  • 這個組是否使用了密碼 (如果是"x"意味著沒有)
  • [GID]: 和/etc/passwd中一樣
  • [Group members]:使用者列表,使用“,”隔開。裡面包含組內的所有使用者

新增過帳戶後,任何時候你都可以通過 usermod 命令來修改使用者賬戶資訊,基本的語法如下:

  1. #usermod[options][username]

相關閱讀

 

範例1 : 設定帳戶的過期時間

如果你的公司有一些短期使用的帳戶或者你要在有限時間內授予存取,你可以使用 --expiredate 引數 ,後加YYYY-MM-DD 格式的日期。為了檢視是否生效,你可以使用如下命令檢視

  1. # chage -l [username]

帳戶更新前後的變動如下圖所示

修改使用者資訊

 

範例 2: 向組內追加使用者

除了建立使用者時的主使用者組,一個使用者還能被新增到別的組。你需要使用 -aG或 -append -group 選項,後跟逗號分隔的組名。

 

範例 3: 修改使用者主目錄或預設Shell

如果因為一些原因,你需要修改預設的使用者主目錄(一般為 /home/使用者名稱),你需要使用 -d 或 -home 引數,後跟絕對路徑來修改主目錄。

如果有使用者想要使用其它的shell來取代預設的bash(比如zsh)。使用 usermod ,並使用 -shell 的引數,後加新的shell的路徑。

 

範例 4: 展示組內的使用者

當把使用者新增到組中後,你可以使用如下命令驗證屬於哪一個組

  1. #groups[username]
  2. #id[username]

下面圖片的演示了範例2到範例4

新增使用者到額外的組

在上面的範例中:

  1. #usermod--append --groups gacanepa,users--home /tmp --shell /bin/sh tecmint

如果想要從組內刪除使用者,取消 --append 選項,並使用 --groups 和你要使用者屬於的組的列表。

 

範例 5: 通過鎖定密碼來停用帳戶

如果想要關閉帳戶,你可以使用 -l(小寫的L)或 -lock 選項來鎖定使用者的密碼。這將會阻止使用者登入。

 

範例 6: 解鎖密碼

當你想要重新啟用帳戶讓它可以繼續登入時,使用 -u 或 –unlock 選項來解鎖使用者的密碼,就像範例5 介紹的那樣

  1. #usermod--unlock tecmint

下面的圖片展示了範例5和範例6:

鎖定上鎖使用者

 

範例 7:刪除組和使用者

如果要刪除一個組,你需要使用 groupdel ,如果需要刪除使用者 你需要使用 userdel (新增 -r 可以刪除主目錄和郵件池的內容)。

  1. #groupdel[group_name]#刪除組
  2. #userdel-r [user_name]#刪除使用者,並刪除主目錄和郵件池

如果一些檔案屬於該組,刪除組時它們不會也被刪除。但是組擁有者的名字將會被設定為刪除掉的組的GID。

 

列舉,設定,並且修改標準 ugo/rwx 許可權

著名的 ls 命令 是管理員最好的助手. 當我們使用 -l 引數, 這個工具允許您以長格式(或詳細格式)檢視一個目錄中的內容。

而且,該命令還可以用於單個檔案中。無論哪種方式,在“ls”輸出中的前10個字元表示每個檔案的屬性。

這10個字元序列的第一個字元用於表示檔案型別:

  • – (連字元): 一個標準檔案
  • d: 一個目錄
  • l: 一個符號連結
  • c: 字元裝置(將資料作為位元組流,例如終端)
  • b: 塊裝置(以塊的方式處理資料,例如儲存裝置)

檔案屬性的接下來的九個字元,分為三個組,被稱為檔案模式,並註明讀(r)、寫(w)、和執行(x)許可權授予檔案的所有者、檔案的所有組、和其它的使用者(通常被稱為“世界”)。

同檔案上的讀取許可權允許檔案被開啟和讀取一樣,如果目錄同時有執行許可權時,就允許其目錄內容被列出。此外,如果一個檔案有執行許可權,就允許它作為一個程式執行。

檔案許可權是通過chmod命令改變的,它的基本語法如下:

  1. #chmod[new_mode]file

new_mode 是一個八進位制數或表示式,用於指定新的許可權。隨意試試各種許可權看看是什麼效果。或者您已經有了一個更好的方式來設定檔案的許可權,你也可以用你自己的方式自由地試試。

八進位制數可以基於二進位制等價計算,可以從所需的檔案許可權的檔案的所有者、所有???、和世界組合成。每種許可權都等於2的冪(R = 2^2,W = 2^1,x = 2^0),沒有時即為0。例如:

檔案許可權

在八進位制形式下設定檔案的許可權,如上圖所示

  1. #chmod744 myfile

請用馬上來對比一下我們以前的計算,在更改檔案的許可權後,我們的實際輸出為:

長列表格式

 

範例 8: 尋找777許可權的檔案

出於安全考慮,你應該確保在正常情況下,盡可能避免777許可權(任何人可讀、可寫、可執行的檔案)。雖然我們會在以後的教學中教你如何更有效地找到您的系統的具有特定許可權的全部檔案,你現在仍可以組合使用ls 和 grep來獲取這種資訊。

在下面的例子,我們會尋找 /etc 目錄下的777許可權檔案。注意,我們要使用第二章:檔案和目錄管理中講到的管道的知識:

  1. #ls-l /etc |grep rwxrwxrwx

查詢所有777許可權的檔案

 

範例 9: 為所有使用者指定特定許可權

shell指令碼,以及一些二進位制檔案,所有使用者都應該有權存取(不只是其相應的所有者和組),應該有相應的執行許可權(我們會討論特殊情況下的問題):

  1. #chmod a+x script.sh

注意: 我們可以使用表示式設定檔案模式,表示使用者許可權的字母如“u”,組所有者許可權的字母“g”,其餘的為“o” ,同時具有所有許可權為“a”。許可權可以通過+- 來授予和收回。

為檔案設定執行許可權

長目錄列表還用兩列顯示了該檔案的所有者和所有組。此功能可作為系統中檔案的第一級存取控制方法:

檢查檔案的所有者和所有組

改變檔案的所有者,您應該使用chown命令。請注意,您可以在同時或分別更改檔案的所有組:

  1. #chown user:group file

你可以更改使用者或組,或在同時更改兩個屬性,但是不要忘記冒號區分,如果你想要更新其它屬性,讓另外的部分為空:

  1. #chown:group file#僅改變所有組
  2. #chown user:file#僅改變所有者

 

範例 10:從一個檔案複製許可權到另一個檔案

如果你想“克隆”一個檔案的所有權到另一個,你可以這樣做,使用–reference引數,如下:

  1. #chown--reference=ref_file file

ref_file的所有資訊會複製給 file

複製檔案屬主資訊

 

設定 SETGID 共同作業目錄

假如你需要授予在一個特定的目錄中擁有存取所有的檔案的許可權給一個特定的使用者組,你有可能需要使用給目錄設定setgid的方法。當setgid設定後,該真實使用者的有效GID會變成屬主的GID。

因此,任何存取該檔案的使用者會被授予該檔案的屬組的許可權。此外,當setgid設定在一個目錄中,新建立的檔案繼承組該目錄的組,而且新建立的子目錄也將繼承父目錄的setgid許可權。

  1. #chmod g+s [filename]

要以八進位制形式設定 setgid,需要在基本許可權字首以2。

  1. #chmod2755[directory]

 

總結

紮實的使用者和組管理知識,以及標準和特殊的 Linux許可權管理,通過實踐,可以幫你快速解決 RHEL 7 伺服器的檔案許可權問題。

我向你保證,當你按照本文所概述的步驟和使用系統文件(在本系列的第一章 回顧基礎命令及系統文件中講到), 你將掌握基本的系統管理的能力。

請隨時使用下面的評論框讓我們知道你是否有任何問題或意見。


via: http://www.tecmint.com/rhcsa-exam-manage-users-and-groups/

作者:Gabriel Cánepa 譯者:xiqingongzi 校對:wxy

本文由 LCTT 原創翻譯,Linux中國 榮譽推出

本文永久更新連結地址http://www.linuxidc.com/Linux/2015-09/122856.htm


IT145.com E-mail:sddin#qq.com