經過長時間學習Linux使用者管理,於是和大家分享一下,看完本文你肯定有不少收穫,希望本文能教會你更多東西。
一.許可權控制機制
Linux系統是個多使用者系統,能做到不同的使用者能同時訪問不同的檔案,因此一定要有檔案許可權控制機制。Linux系統的許可權控制機制和Windows的許可權控制機制有著很大的差別。Linux的檔案或目錄被一個使用者擁有時,這個使用者稱為檔案的擁有者(或檔案主),同時檔案還被指定的使用者組所擁有,這個使用者組稱為檔案所屬組。一個使用者可以是不同組的成員,這可以由管理員控制。檔案的許可權由許可權標誌來決定,許可權標誌決定了檔案的擁有者、檔案的所屬組、其他使用者對檔案訪問的許可權。
使用者和許可權
1.基本概念
(1)檔案主 Linux為每個檔案都分配了一個所有者,稱為檔案主,並賦予檔案主唯一的註冊名。對檔案的控製取決於檔案主或超級使用者(root)。
檔案的所屬關係是可以改變的,你可以將檔案或目錄的所有權轉讓給其他使用者,但只有檔案主或root才有權改變檔案的所屬關係。可以用chown命令更改某個檔案或目錄的所有權。例如,超級使用者把自己的一個檔案複製給使用者user1,為了讓使用者user1能夠訪問這個檔案,超級使用者(root)應該把這個檔案的屬主設為user1,否則,使用者user1無法訪問這個檔案。如果改變了檔案或目錄的所有權,原檔案主將不再擁有該檔案或目錄的控制權
(2)使用者組 Linux下,每個檔案又屬於一個使用者組。當建立一個檔案或目錄時,系統會賦予它一個使用者組關係,chgrp命令可以改變檔案的組關係。
(3)存取權限 Linux系統中的每個檔案和目錄都有存取權限,用它來確定誰可以通過何種方式對檔案和目錄進行訪問和操作。
2.存取權限
Linux系統中規定了3種不同類型的使用者:檔案主(user)、同組使用者(group)、可以訪問系統的其他使用者(others)。
存取權限規定3種訪問檔案或目錄的方式:讀(r)、寫(w)、可執行或尋找(x)
(1)檔案存取權限
讀許可權(r)表示只允許指定使用者讀取相應檔案的內容,禁止對它做任何的更改操作。寫入權限(w)表示允許指定使用者開啟並修改檔案。執行許可權(x)表示允許指定使用者將該檔案作為一個程式執行。
(2)目錄存取權限
在ls命令後加上-d選項,可以瞭解目錄檔案的使用許可權。讀許可權(r)表示可以列出儲存在該目錄下的檔案,即讀目錄內容。寫入權限(w)表示允許你從目錄中刪除或建立新的檔案或目錄。執行許可權(x)表示允許你在目錄中尋找,並能用cd命令將工作目錄切換到該目錄。用chmod命令可改變檔案或目錄的存取權限。例如:
1.chmod命令
功能:chmod命令用於改變或設定檔案或目錄的存取權限。
格式:chmod[選項]模式檔案或目錄名
說明:只有檔案主或超級使用者root才有權用chmod改變檔案或目錄的存取權限。
選項參數:
◆-c:若檔案或目錄許可權確實已經更改,才顯示其更改動作。
◆-f:若檔案或目錄許可權無法被更改也不要顯示錯誤資訊。
◆-v:顯示許可權變更的詳細資料。
◆-R:對目前目錄下的所有檔案與子目錄進行相同的許可權變更(即以遞迴式的方式逐個變更)。
設定檔案許可權時,在模式中常用以下的字母代表使用者或使用者組:
◆u(user)表示檔案的所有者。
◆g(group)表示檔案的所屬組。
◆o(others)表示其他使用者。
◆a(all)代表所有使用者(即u+g+o)。
許可權用以下字元表示:r表示讀許可權;w表示寫入權限;x表示執行許可權。最後要指明是增加(+)還是取消(-)許可權,或是只賦予許可權(=)。
2.chown命令
功能:改變某個檔案或目錄的擁有者和所屬的組。
格式:chown[選項]使用者或組檔案名稱
說明:只有檔案主和超級使用者才可以使用該命令。同時改變檔案主和檔案所屬的組時,使用者名稱和使用者組名由冒號分開。在檔案名稱中可以包含萬用字元。
參數選項:
◆-R遞迴式地改變指定目錄及其所有子目錄、檔案的檔案主。
3.chgrp命令
功能:改變檔案或目錄的所屬組。
格式:chgrp[選項]組名檔案名稱
說明:如果使用者不是該檔案的檔案主或超級使用者,則不能改變該檔案或目錄的所屬組。chown可以同時改變檔案擁有者和所屬組,chgrp只具有改變所屬組的功能。
參數選項:
◆-R遞迴式地改變指定目錄及其下面的所有子目錄和檔案的使用者組。
4.umask命令
功能:用來設定建立檔案許可權的掩碼。
格式:umask[模式]
說明:模式為建立檔案許可權的掩碼值。
檔案存取權限可以通過chmod命令來修改。當使用者建立一個新檔案後,如果不使用chmod修改許可權,則這個檔案的許可權是什麼呢?這個檔案的許可權由系統預設許可權和預設許可權掩碼共同確定,它等於系統預設許可權減去預設許可權掩碼。Linux系統中目錄的預設許可權是777,檔案的預設許可權是666。因此,有以下公式:
◆新目錄的許可權=777-預設許可權掩碼
◆新檔案的許可權=666-預設許可權掩碼
◆注意:基於安全原因,Linux系統不允許檔案的預設許可權有執行權。不帶任何參數的umask命令顯示當前的預設許可權掩碼值。下面講解Linux使用者管理。
二.Linux使用者管理
Linux是一個多任務、多使用者的作業系統,要能做到不同的使用者能同時訪問不同的檔案,允許不同的使用者從本地登入或遠程登入,這時使用者必須擁有一個合法的帳號,Linux系統正是通過帳號來實現對使用者的訪問進行控制的,因此,需要對使用者與組進行有效管理。Linux作業系統下的使用者:
1.使用者
Linux下的使用者可以分為三類:超級使用者、系統使用者和普通使用者。超級使用者的使用者名稱為root,它具有一切許可權,只有進行系統維護(例如建立使用者等)或其他必要情形下才用超級使用者登入,以避免系統出現安全問題。系統使用者是Linux系統正常工作所必需的內建的使用者,主要是為了滿足相應的系統進程對檔案屬主的要求而建立的,系統使用者不能用來登入,如bin、daemon、adm、lp等使用者。
而普通使用者是為了讓使用者能夠使用Linux系統資源而建立的,我們的大多數使用者屬於此類。每個使用者都有一個數值,稱為UID。超級使用者的UID為0,系統使用者的UID一般為1~499,普通使用者的UID為500~60000之間的值。
2.帳號系統檔案
Linux系統採用純文字檔案來儲存帳號的各種資訊,其中最重要的檔案有/etc/passwd、/etc/shadow、/etc/group這幾個。我們可以使用vi或其他編輯器來更改它們,也可以使用專門的命令來更改它們。帳號的管理實際上就是對這幾個檔案的內容進行添加、修改和刪除記錄行的操作,不管以哪種形式管理帳號,瞭解這幾個檔案的內容十分必要。
(1)/etc/passwd檔案:是帳號管理中最重要的一個檔案,它是一個純文字檔案。每一個註冊使用者在該檔案都有一個對應的記錄行,這一記錄行記錄了此使用者的必要資訊。
例1:顯示/etc/passwd檔案。
#cat/etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:
從passwd檔案中可以看到,第一行是root使用者,緊接的是系統使用者,普通使用者通常在檔案的尾部。passwd檔案中的每一行由7個欄位的資料群組成,欄位之間用“:”分隔,其格式如下:
◆帳號名稱:密碼:UID:GID:設定檔:主目錄:Shell
說明如下:
◆帳號名稱:使用者登入Linux系統時使用的名稱。
◆密碼:這裡的密碼是經過加密後的密碼,而不是真正的密碼,若為“x”,說明密碼經過了shadow的保護。
◆UID:使用者的標識,是一個數值,Linux系統內部使用它來區分不同的使用者。
◆GID:使用者所在組的標識,是一個數值,Linux系統內部使用它來區分不同的組,相同的組具有相同的GID。
◆設定檔:可以記錄使用者的個人資訊,如姓名、電話等資訊(上例中test使用者本項為空白)。
◆主目錄:通常是/home/username,這裡username是使用者名稱,使用者執行“cd~”命令時目前的目錄會切換到個人主目錄。
◆Shell:定義使用者登入後使用的Shell,預設是bash。
(2)/etc/shadow檔案:任何使用者對passwd檔案都有讀的許可權,雖然密碼已經經過加密,但還是不能避免有人會擷取加密後的密碼。為了安全,Linux系統對密碼提供了更多一層的保護,即把加密後的密碼重新導向到另一個檔案/etc/shadow。密碼如果經過shadow保護,在/etc/passwd檔案中,每一記錄行的密碼欄位會變成“x”,並且在/etc目錄下存在檔案shadow。只有超級使用者能夠讀取shadow的內容。
(3)pwconv和pwunconv檔案:安裝Linux系統時,系統預設採用shadow來保護密碼。?如果安裝Linux時未啟用shadow,可以使用pwconv命令啟用shadow。注意用root使用者登入來執行該命令,執行的結果是/etc/passwd檔案中的密碼欄位被改為“x”,同時產生/etc/shadow檔案。相反,如果要取消shadow功能,可使用pwunconv命令。
以上講解的是Linux使用者管理
三.組的管理
1.Linux的組
Linux的組有私人組、系統組、標準組之分。建立賬戶時,若沒有指定賬戶所屬的組,系統會建立一個和使用者名稱相同的組,這個組就是私人組,這個組只容納了一個使用者。而標準組可以容納多個使用者,組中的使用者都具有組所擁有的權利。系統組是Linux系統自動建立的。一個Linux使用者可以屬於多個組,使用者所屬的組又有基本組和附加組之分。在使用者所屬組中的第一個組稱為基本組,基本組在/etc/passwd檔案中指定;其他組為附加組,附加組在/etc/group檔案中指定。屬於多個組的使用者所擁有的許可權是它所在的組的許可權之和。
Linux系統關於組的資訊存放在檔案/etc/group中。
例:顯示檔案/etc/group內容。
#cat/etc/group
root:x:0:root,test
bin:x:1:root,bin,daemon
......
test:x:500:
group1:x:1000:
user1:x:501:
group檔案中的每一行記錄了一個組的資訊,每行包括4個欄位,欄位之間用“:”分隔。
◆格式為組名:組的密碼:GID:群組成員。
◆欄位說明:
◆組名:組的名稱,如root、bin等。
◆組的密碼:設定加入組的密碼,一般情況下不使用組密碼,該欄位通常沒用。
◆GID:組的標識符,為數值,類似UID。
◆群組成員:組所包含的使用者,使用者之間用“,”分隔。
2.使用者組的添加、修改、刪除
(1)添加組
可以手工編輯/etc/group檔案來完成組的添加,也可以用命令groupadd來添加組,
命令格式:groupadd組名
例:添加組group1。
#groupaddgroup1
(2)修改組屬性
使用groupmod命令來修改組名或GID。在groupmod-g命令後加上組的新ID號和組名來修改GID。在groupmod-n命令後加上新組名和原組名來修改組名。
3.刪除群組
使用groupdel命令來刪除群組。
◆格式:groupdel組名
◆說明:組被刪除後,應使用chown命令將被刪除使用者組的目錄與檔案變為它隸屬的使用者組。
◆要改變組中的成員使用者或改變組的密碼使用gpasswd命令。
◆格式:gpasswd[參數][使用者名稱]組名
◆不帶參數時,即修改組密碼。
參數選項:
◆-a:將使用者加入到組中。
◆-d:將使用者從群組移除。
四.Linux使用者管理員
使用者管理員是一個圖形介面形式的管理工具,利用使用者管理員可以方便地系統管理使用者和使用者組。根使用者root可以選擇“主菜單”→“系統設定”→“使用者和組群”(或者在Shell提示符下鍵入redhat-config-users),就開啟“RedHat使用者管理員”視窗.
1.建立使用者帳號
在Linux使用者管理員視窗中單擊“添加使用者”按鈕,開啟“建立新使用者”對話方塊。
2.修改使用者屬性
若要修改使用者屬性,首先在Linux使用者管理員視窗中選擇一個已存在的使用者帳號,然後單擊“屬性”按鈕,則出現“使用者屬性”視窗,在視窗中有“使用者資料”、“帳號資訊”、“口令資訊”和“組群”四個選項卡。使用者可以選擇相應的選項卡進行相關屬性的修改。
3.修改使用者組屬性
在“組群”選項卡中,選擇一個已存在的使用者組,並單擊“屬性”按鈕開啟“組群屬性”視窗,在該視窗中修改設定使用者組的屬性,將需加入本組的使用者分別打上對號即可。