一.權限控制機制
Linux系統是個(gè)多用戶(hù)系統,能做到不同的用戶(hù)能同時(shí)訪(fǎng)問(wèn)不同的文件,因此一定要有文件權限控制機制。Linux系統的權限控制機制和Windows的權限控制機制有著(zhù)很大的差別。Linux的文件或目錄被一個(gè)用戶(hù)擁有時(shí),這個(gè)用戶(hù)稱(chēng)為文件的擁有者(或文件主),同時(shí)文件還被指定的用戶(hù)組所擁有,這個(gè)用戶(hù)組稱(chēng)為文件所屬組。一個(gè)用戶(hù)可以是不同組的成員,這可以由管理員控制。文件的權限由權限標志來(lái)決定,權限標志決定了文件的擁有者、文件的所屬組、其他用戶(hù)對文件訪(fǎng)問(wèn)的權限。
用戶(hù)和權限
1.基本概念
(1)文件主 Linux為每個(gè)文件都分配了一個(gè)所有者,稱(chēng)為文件主,并賦予文件主唯一的注冊名。對文件的控制取決于文件主或超級用戶(hù)(root)。
文件的所屬關(guān)系是可以改變的,你可以將文件或目錄的所有權轉讓給其他用戶(hù),但只有文件主或root才有權改變文件的所屬關(guān)系??梢杂胏hown命令更改某個(gè)文件或目錄的所有權。例如,超級用戶(hù)把自己的一個(gè)文件復制給用戶(hù)user1,為了讓用戶(hù)user1能夠訪(fǎng)問(wèn)這個(gè)文件,超級用戶(hù)(root)應該把這個(gè)文件的屬主設為user1,否則,用戶(hù)user1無(wú)法訪(fǎng)問(wèn)這個(gè)文件。如果改變了文件或目錄的所有權,原文件主將不再擁有該文件或目錄的控制權
(2)用戶(hù)組 Linux下,每個(gè)文件又屬于一個(gè)用戶(hù)組。當創(chuàng )建一個(gè)文件或目錄時(shí),系統會(huì )賦予它一個(gè)用戶(hù)組關(guān)系,chgrp命令可以改變文件的組關(guān)系。
(3)訪(fǎng)問(wèn)權限 Linux系統中的每個(gè)文件和目錄都有訪(fǎng)問(wèn)權限,用它來(lái)確定誰(shuí)可以通過(guò)何種方式對文件和目錄進(jìn)行訪(fǎng)問(wèn)和操作。
2.訪(fǎng)問(wèn)權限
Linux系統中規定了3種不同類(lèi)型的用戶(hù):文件主(user)、同組用戶(hù)(group)、可以訪(fǎng)問(wèn)系統的其他用戶(hù)(others)。
訪(fǎng)問(wèn)權限規定3種訪(fǎng)問(wèn)文件或目錄的方式:讀(r)、寫(xiě)(w)、可執行或查找(x)
(1)文件訪(fǎng)問(wèn)權限
讀權限(r)表示只允許指定用戶(hù)讀取相應文件的內容,禁止對它做任何的更改操作。寫(xiě)權限(w)表示允許指定用戶(hù)打開(kāi)并修改文件。執行權限(x)表示允許指定用戶(hù)將該文件作為一個(gè)程序執行。
(2)目錄訪(fǎng)問(wèn)權限
在ls命令后加上-d選項,可以了解目錄文件的使用權限。讀權限(r)表示可以列出存儲在該目錄下的文件,即讀目錄內容。寫(xiě)權限(w)表示允許你從目錄中刪除或創(chuàng )建新的文件或目錄。執行權限(x)表示允許你在目錄中查找,并能用cd命令將工作目錄切換到該目錄。用chmod命令可改變文件或目錄的訪(fǎng)問(wèn)權限。例如:
1.chmod命令
功能:chmod命令用于改變或設置文件或目錄的訪(fǎng)問(wèn)權限。
格式:chmod[選項]模式文件或目錄名
說(shuō)明:只有文件主或超級用戶(hù)root才有權用chmod改變文件或目錄的訪(fǎng)問(wèn)權限。
選項參數:
◆-c:若文件或目錄權限確實(shí)已經(jīng)更改,才顯示其更改動(dòng)作。
◆-f:若文件或目錄權限無(wú)法被更改也不要顯示錯誤信息。
◆-v:顯示權限變更的詳細資料。
◆-R:對目前目錄下的所有檔案與子目錄進(jìn)行相同的權限變更(即以遞歸式的方式逐個(gè)變更)。
設定文件權限時(shí),在模式中常用以下的字母代表用戶(hù)或用戶(hù)組:
◆u(user)表示文件的所有者。
◆g(group)表示文件的所屬組。
◆o(others)表示其他用戶(hù)。
◆a(all)代表所有用戶(hù)(即u+g+o)。
權限用以下字符表示:r表示讀權限;w表示寫(xiě)權限;x表示執行權限。最后要指明是增加(+)還是取消(-)權限,或是只賦予權限(=)。
2.chown命令
功能:改變某個(gè)文件或目錄的擁有者和所屬的組。
格式:chown[選項]用戶(hù)或組文件名
說(shuō)明:只有文件主和超級用戶(hù)才可以使用該命令。同時(shí)改變文件主和文件所屬的組時(shí),用戶(hù)名和用戶(hù)組名由冒號分開(kāi)。在文件名中可以包含通配符。
參數選項:
◆-R遞歸式地改變指定目錄及其所有子目錄、文件的文件主。
3.chgrp命令
功能:改變文件或目錄的所屬組。
格式:chgrp[選項]組名文件名
說(shuō)明:如果用戶(hù)不是該文件的文件主或超級用戶(hù),則不能改變該文件或目錄的所屬組。chown可以同時(shí)改變文件擁有者和所屬組,chgrp只具有改變所屬組的功能。
參數選項:
◆-R遞歸式地改變指定目錄及其下面的所有子目錄和文件的用戶(hù)組。
4.umask命令
功能:用來(lái)設置新建文件權限的掩碼。
格式:umask[模式]
說(shuō)明:模式為新建文件權限的掩碼值。
文件訪(fǎng)問(wèn)權限可以通過(guò)chmod命令來(lái)修改。當用戶(hù)創(chuàng )建一個(gè)新文件后,如果不使用chmod修改權限,則這個(gè)文件的權限是什么呢?這個(gè)文件的權限由系統默認權限和默認權限掩碼共同確定,它等于系統默認權限減去默認權限掩碼。Linux系統中目錄的默認權限是777,文件的默認權限是666。因此,有以下公式:
◆新目錄的權限=777-默認權限掩碼
◆新文件的權限=666-默認權限掩碼
◆注意:基于安全原因,Linux系統不允許文件的默認權限有執行權。不帶任何參數的umask命令顯示當前的默認權限掩碼值。下面講解Linux用戶(hù)管理。
二.Linux用戶(hù)管理
Linux是一個(gè)多任務(wù)、多用戶(hù)的操作系統,要能做到不同的用戶(hù)能同時(shí)訪(fǎng)問(wèn)不同的文件,允許不同的用戶(hù)從本地登錄或遠程登錄,這時(shí)用戶(hù)必須擁有一個(gè)合法的賬號,Linux系統正是通過(guò)賬號來(lái)實(shí)現對用戶(hù)的訪(fǎng)問(wèn)進(jìn)行控制的,因此,需要對用戶(hù)與組進(jìn)行有效的管理。Linux操作系統下的用戶(hù):
1.用戶(hù)
Linux下的用戶(hù)可以分為三類(lèi):超級用戶(hù)、系統用戶(hù)和普通用戶(hù)。超級用戶(hù)的用戶(hù)名為root,它具有一切權限,只有進(jìn)行系統維護(例如建立用戶(hù)等)或其他必要情形下才用超級用戶(hù)登錄,以避免系統出現安全問(wèn)題。系統用戶(hù)是Linux系統正常工作所必需的內建的用戶(hù),主要是為了滿(mǎn)足相應的系統進(jìn)程對文件屬主的要求而建立的,系統用戶(hù)不能用來(lái)登錄,如bin、daemon、adm、lp等用戶(hù)。
而普通用戶(hù)是為了讓使用者能夠使用Linux系統資源而建立的,我們的大多數用戶(hù)屬于此類(lèi)。每個(gè)用戶(hù)都有一個(gè)數值,稱(chēng)為UID。超級用戶(hù)的UID為0,系統用戶(hù)的UID一般為1~499,普通用戶(hù)的UID為500~60000之間的值。
2.賬號系統文件
Linux系統采用純文本文件來(lái)保存賬號的各種信息,其中最重要的文件有/etc/passwd、/etc/shadow、/etc/group這幾個(gè)。我們可以使用vi或其他編輯器來(lái)更改它們,也可以使用專(zhuān)門(mén)的命令來(lái)更改它們。賬號的管理實(shí)際上就是對這幾個(gè)文件的內容進(jìn)行添加、修改和刪除記錄行的操作,不管以哪種形式管理賬號,了解這幾個(gè)文件的內容十分必要。
(1)/etc/passwd文件:是賬號管理中最重要的一個(gè)文件,它是一個(gè)純文本文件。每一個(gè)注冊用戶(hù)在該文件都有一個(gè)對應的記錄行,這一記錄行記錄了此用戶(hù)的必要信息。
例1:顯示/etc/passwd文件。
#cat/etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:
從passwd文件中可以看到,第一行是root用戶(hù),緊接的是系統用戶(hù),普通用戶(hù)通常在文件的尾部。passwd文件中的每一行由7個(gè)字段的數據組成,字段之間用“:”分隔,其格式如下:
◆賬號名稱(chēng):密碼:UID:GID:個(gè)人資料:主目錄:Shell
說(shuō)明如下:
◆賬號名稱(chēng):用戶(hù)登錄Linux系統時(shí)使用的名稱(chēng)。
◆密碼:這里的密碼是經(jīng)過(guò)加密后的密碼,而不是真正的密碼,若為“x”,說(shuō)明密碼經(jīng)過(guò)了shadow的保護。
◆UID:用戶(hù)的標識,是一個(gè)數值,Linux系統內部使用它來(lái)區分不同的用戶(hù)。
◆GID:用戶(hù)所在組的標識,是一個(gè)數值,Linux系統內部使用它來(lái)區分不同的組,相同的組具有相同的GID。
◆個(gè)人資料:可以記錄用戶(hù)的個(gè)人信息,如姓名、電話(huà)等信息(上例中test用戶(hù)本項為空)。
◆主目錄:通常是/home/username,這里username是用戶(hù)名,用戶(hù)執行“cd~”命令時(shí)當前目錄會(huì )切換到個(gè)人主目錄。
◆Shell:定義用戶(hù)登錄后使用的Shell,默認是bash。
(2)/etc/shadow文件:任何用戶(hù)對passwd文件都有讀的權限,雖然密碼已經(jīng)經(jīng)過(guò)加密,但還是不能避免有人會(huì )獲取加密后的密碼。為了安全,Linux系統對密碼提供了更多一層的保護,即把加密后的密碼重定向到另一個(gè)文件/etc/shadow。密碼如果經(jīng)過(guò)shadow保護,在/etc/passwd文件中,每一記錄行的密碼字段會(huì )變成“x”,并且在/etc目錄下存在文件shadow。只有超級用戶(hù)能夠讀取shadow的內容。
(3)pwconv和pwunconv文件:安裝Linux系統時(shí),系統缺省采用shadow來(lái)保護密碼。?如果安裝Linux時(shí)未啟用shadow,可以使用pwconv命令啟用shadow。注意用root用戶(hù)登錄來(lái)執行該命令,執行的結果是/etc/passwd文件中的密碼字段被改為“x”,同時(shí)產(chǎn)生/etc/shadow文件。相反,如果要取消shadow功能,可使用pwunconv命令。
以上講解的是Linux用戶(hù)管理
三.組的管理
1.Linux的組
Linux的組有私有組、系統組、標準組之分。建立賬戶(hù)時(shí),若沒(méi)有指定賬戶(hù)所屬的組,系統會(huì )建立一個(gè)和用戶(hù)名相同的組,這個(gè)組就是私有組,這個(gè)組只容納了一個(gè)用戶(hù)。而標準組可以容納多個(gè)用戶(hù),組中的用戶(hù)都具有組所擁有的權利。系統組是Linux系統自動(dòng)建立的。一個(gè)Linux用戶(hù)可以屬于多個(gè)組,用戶(hù)所屬的組又有基本組和附加組之分。在用戶(hù)所屬組中的第一個(gè)組稱(chēng)為基本組,基本組在/etc/passwd文件中指定;其他組為附加組,附加組在/etc/group文件中指定。屬于多個(gè)組的用戶(hù)所擁有的權限是它所在的組的權限之和。
Linux系統關(guān)于組的信息存放在文件/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文件中的每一行記錄了一個(gè)組的信息,每行包括4個(gè)字段,字段之間用“:”分隔。
◆格式為組名:組的密碼:GID:組成員。
◆字段說(shuō)明:
◆組名:組的名稱(chēng),如root、bin等。
◆組的密碼:設置加入組的密碼,一般情況下不使用組密碼,該字段通常沒(méi)用。
◆GID:組的標識符,為數值,類(lèi)似UID。
◆組成員:組所包含的用戶(hù),用戶(hù)之間用“,”分隔。
2.用戶(hù)組的添加、修改、刪除
(1)添加組
可以手工編輯/etc/group文件來(lái)完成組的添加,也可以用命令groupadd來(lái)添加組,
命令格式:groupadd組名
例:添加組group1。
#groupaddgroup1
(2)修改組屬性
使用groupmod命令來(lái)修改組名或GID。在groupmod-g命令后加上組的新ID號和組名來(lái)修改GID。在groupmod-n命令后加上新組名和原組名來(lái)修改組名。
3.刪除組
使用groupdel命令來(lái)刪除組。
◆格式:groupdel組名
◆說(shuō)明:組被刪除后,應使用chown命令將被刪除用戶(hù)組的目錄與文件變?yōu)樗`屬的用戶(hù)組。
◆要改變組中的成員用戶(hù)或改變組的密碼使用gpasswd命令。
◆格式:gpasswd[參數][用戶(hù)名]組名
◆不帶參數時(shí),即修改組密碼。
參數選項:
◆-a:將用戶(hù)加入到組中。
◆-d:將用戶(hù)從組中刪除。
四.Linux用戶(hù)管理器
用戶(hù)管理器是一個(gè)圖形界面形式的管理工具,利用用戶(hù)管理器可以方便地管理用戶(hù)和用戶(hù)組。根用戶(hù)root可以選擇“主菜單”→“系統設置”→“用戶(hù)和組群”(或者在Shell提示符下鍵入redhat-config-users),就打開(kāi)“RedHat用戶(hù)管理器”窗口.
1.創(chuàng )建用戶(hù)賬號
在Linux用戶(hù)管理器窗口中單擊“添加用戶(hù)”按鈕,打開(kāi)“創(chuàng )建新用戶(hù)”對話(huà)框。
2.修改用戶(hù)屬性
若要修改用戶(hù)屬性,首先在Linux用戶(hù)管理器窗口中選擇一個(gè)已存在的用戶(hù)賬號,然后單擊“屬性”按鈕,則出現“用戶(hù)屬性”窗口,在窗口中有“用戶(hù)數據”、“賬號信息”、“口令信息”和“組群”四個(gè)選項卡。用戶(hù)可以選擇相應的選項卡進(jìn)行相關(guān)屬性的修改。
3.修改用戶(hù)組屬性
在“組群”選項卡中,選擇一個(gè)已存在的用戶(hù)組,并單擊“屬性”按鈕打開(kāi)“組群屬性”窗口,在該窗口中修改設置用戶(hù)組的屬性,將需加入本組的用戶(hù)分別打上對號即可。
聯(lián)系客服