新聞中心
文件權(quán)限
文件所有權(quán)是 UNIX 的一個重要的組成部分,提供了一種安全的方法來存儲文件。在 UNIX 中每個文件有以下屬性:

創(chuàng)新互聯(lián)是一家專注于成都網(wǎng)站設計、網(wǎng)站建設、外貿(mào)網(wǎng)站建設與策劃設計,五華網(wǎng)站建設哪家好?創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設十年,網(wǎng)設計領(lǐng)域的專業(yè)建站公司;建站業(yè)務涵蓋:五華等地區(qū)。五華做網(wǎng)站價格咨詢:18982081108
- 所有者權(quán)限:所有者的權(quán)限決定文件的所有者可以對文件執(zhí)行的操作。
- 組權(quán)限:組權(quán)限決定了屬于該組的成員對他所擁有的文件能夠執(zhí)行的操作。
- 其他人權(quán)限:其他人權(quán)限表示其他所有人對于該文件能夠進行的操作。
權(quán)限表示符
當使用 ls -l 命令的時候,會將與文件相關(guān)的各種權(quán)限展示出來,如下:
$ls -l /home/amrood
-rwxr-xr-- 1 amrood users 1024 Nov 2 00:10 myfile
drwxr-xr--- 1 amrood users 1024 Nov 2 00:10 mydir輸出的第一列表示的是與文件或者目錄相關(guān)的訪問模式或者權(quán)限。
權(quán)限被分為三組,組中的每個位置代表一個特定的權(quán)限,這個順序是:讀(r)、寫(w)和執(zhí)行(x):
- 前三個字符 (2-4) 表示文件的所有者的權(quán)限。例如
-rwxr-xr--代表,文件的所有者擁有讀 (r)、寫 (w) 和執(zhí)行 (x) 的權(quán)限。 - 第二組的三個字符 (5-7) 包含了該文件所屬組的權(quán)限。例如
-rwxr-xr--表示了所屬組擁有讀 (r) 和執(zhí)行 (x) 的權(quán)限,但沒有寫權(quán)限。 - 最后一組三個字符 (8-10) 代表其他人的權(quán)限。例如
-rwxr-xr--代表其他人只有讀 (r) 的權(quán)限。
文件訪問模式
文件的權(quán)限是 UNIX 系統(tǒng)安全性的第一道防線。UNIX 權(quán)限的基本組成部分是讀,寫,執(zhí)行權(quán)限,如下所述:
- 讀:分配對文件的內(nèi)容進行讀取和查看文件的權(quán)限。
- 寫:分配對文件的內(nèi)容進行修改或者刪除的權(quán)限。
- 執(zhí)行:允許用戶將該文件作為一個程序進行執(zhí)行的權(quán)限。
目錄訪問模式
目錄訪問模式采用和其他文件用相同的方式組織。但是有一些差異,還是需要提到:
- 讀:訪問目錄意味著用戶可以讀取目錄下的內(nèi)容。用戶可以查看目錄內(nèi)的文件名。
- 寫:這個權(quán)限意味著用戶可以在目錄下面刪除或者新建文件。
- 執(zhí)行:執(zhí)行一個目錄并沒有真正的意義,因此將它當作可以遍歷目錄的權(quán)限。
用戶為了執(zhí)行 ls 或者 cd 命令就必須先訪問了 bin 目錄。
改變權(quán)限
改變文件或目錄的權(quán)限,您可以使用 chmod(change mode)命令。有兩種方法可以使用 chmod:符號模式和絕對模式。
符號模式中使用 chmod
對于初學者來說使用符號模式是最簡單的來修改文件或目錄的權(quán)限方法??梢杂孟卤碇械姆杹硖砑印h除或指定你想要設置的權(quán)限。
| Chmod 操作符 | 描述 |
|---|---|
| + | 給文件或者目錄添加指定的權(quán)限。 |
| - | 刪除文件或者目錄的權(quán)限。 |
| = | 設置指定的權(quán)限。 |
如下是以 testfile 文件為示例。對 testfile 文件運行 ls -l 就會像下面一樣顯示文件的權(quán)限:
$ls -l testfile
-rwxrwxr-- 1 amrood users 1024 Nov 2 00:10 testfile接下來將前面表格中的 chmod 命令都對 testfile 運行一下,下面的是在 ls -l 運行之后,你可以看到文件權(quán)限的改變:
$chmod o+wx testfile
$ls -l testfile
-rwxrwxrwx 1 amrood users 1024 Nov 2 00:10 testfile
$chmod u-x testfile
$ls -l testfile
-rw-rwxrwx 1 amrood users 1024 Nov 2 00:10 testfile
$chmod g=rx testfile
$ls -l testfile
-rw-r-xrwx 1 amrood users 1024 Nov 2 00:10 testfile下面將展示如何將上面的命令組合成一行:
$chmod o+wx,u-x,g=rx testfile
$ls -l testfile
-rw-r-xrwx 1 amrood users 1024 Nov 2 00:10 testfilechmod 命令中使用絕對權(quán)限
用chmod命令修改權(quán)限的第二種方法,是使用一個數(shù)字來指定文件的一些列權(quán)限。
每個權(quán)限被分配了一個數(shù)值,如下表所示, 并且給每個權(quán)限集的總和提供了一個數(shù)值。
| 數(shù)值 | 權(quán)限八進制表示 | 參照 |
|---|---|---|
| 0 | 沒有權(quán)限 | --- |
| 1 | 可執(zhí)行的權(quán)限 | --x |
| 2 | 寫權(quán)限 | -w- |
| 3 | 執(zhí)行和寫權(quán)限: 1 (執(zhí)行) + 2 (寫) = 3 | -wx |
| 4 | 讀取權(quán)限 | r-- |
| 5 | 讀取和執(zhí)行權(quán)限: 4 (讀取) + 1 (執(zhí)行) = 5 | r-x |
| 6 | 讀取和寫權(quán)限: 4 (讀) + 2 (寫) = 6 | rw- |
| 7 | 所有權(quán)限: 4 (讀) + 2 (寫) + 1 (執(zhí)行) = 7 | rwx |
如下是針對 testfile 文件的示例。運行 ls -l 命令會顯示與該文件相關(guān)的權(quán)限如下:
$ls -l testfile
-rwxrwxr-- 1 amrood users 1024 Nov 2 00:10 testfile對 testfile 運行上面表格中每個 chmod 示例命令,如下是在 ls -l 之后的,你可以從下面命令中看出權(quán)限的改變情況:
$ chmod 755 testfile
$ls -l testfile
-rwxr-xr-x 1 amrood users 1024 Nov 2 00:10 testfile
$chmod 743 testfile
$ls -l testfile
-rwxr---wx 1 amrood users 1024 Nov 2 00:10 testfile
$chmod 043 testfile
$ls -l testfile
----r---wx 1 amrood users 1024 Nov 2 00:10 testfile改變所有者和所屬組
在 UNIX 上創(chuàng)建一個帳戶時,系統(tǒng)會給每個用戶分配一個所有者 ID 和組 ID。所有上面提到的權(quán)限也會基于所有者和組進行分配。
如下的兩個命令可以改變一個文件的所有者和組:
- chown:chown 表示的是 “change owner”,并且它是被用來改變一個文件的所有者。
- chgrp:chgrp 表示的是 “change group”,并且它是被用來一個文件所屬的組。
改變所有者關(guān)系
chown 命令用來改變一個文件的所有者,它的基本語法如下:
$ chown user filelist上面命令中的 user 既可以是系統(tǒng)中的用戶名,也可以是系統(tǒng)中用戶的 id(uid)。 示例:
$ chown amrood testfile
$改變 testfile 文件的所有者為 amrood 用戶。
注意:超級用戶,root 用戶,擁有不受限制的權(quán)限,能夠更改所有文件的所有者,但是普通用戶只能修改他們所擁有的文件的所有者。
改變組關(guān)系
chgrp 命令被用來修改文件所屬的組?;菊Z法如下:
$ chgrp group filelist上面命令中的 group 既可以是系統(tǒng)中存在的組的名稱,也可以是系統(tǒng)中存在的組的 ID(GID)。
示例:
$ chgrp special testfile
$改變給定的文件的組為 special 組。
SUID 和 SGID 文件權(quán)限
通常執(zhí)行一個命令時,為了完成該任務它必須擁有某些特殊的權(quán)限。
舉一個例子,當你使用 passwd 命令改變了你的密碼后,您的新密碼存儲在文件 /etc/shadow 中。
作為一個普通用戶,出于安全原因你沒有讀或?qū)懺L問這個文件的權(quán)限,但是當你改變你的密碼時,你需要擁有對這個文件寫權(quán)限。這意味著 passwd 程序必須給你額外的權(quán)限,以便您可以編寫文件 /etc/shadow,也就是需要額外的權(quán)限。
通過設置用戶 ID(SUID)和組 ID(SGID) 位可以給程序額外的權(quán)限。
當您執(zhí)行一個啟用了 SUID 的程序,你繼承了程序所有者的權(quán)限。啟動改程序的用戶就可以不用設置 SUID 直接運行該程序。
這對于 SGID 同樣是適用的。通常程序是按組的權(quán)限進行執(zhí)行,除非你的組改變了該程序所屬組的擁有者。
如果 SUID 和 SGID 權(quán)限是可用的,它們將會以小寫的 “s” 出現(xiàn)。SUID 的 “s” 位通常位于權(quán)限中所有者執(zhí)行權(quán)限的旁邊。如下:
$ ls -l /usr/bin/passwd
-r-sr-xr-x 1 root bin 19031 Feb 7 13:47 /usr/bin/passwd*
$上面的顯示了 SUID 被設置了并且該命令被 root 用戶所擁有。在使用大寫字母 S 而不是小寫字母表示執(zhí)行位沒有設置。
如果對一個目錄設置了防刪除位(sticky bit),那么只有你是如下任意一種用戶時你才可以刪除該文件:
- 該目錄的擁有者
- 被刪除文件的擁有者
- 超級用戶,root 用戶
你可以使用如下的方式設置任何目錄的 SUID 和 SGID 位。
$ chmod ug+s dirname
$ ls -l
drwsr-sr-x 2 root root 4096 Jun 19 06:45 dirname
$ 標題名稱:創(chuàng)新互聯(lián)UNIX教程:UNIX 文件權(quán)限
分享網(wǎng)址:http://m.5511xx.com/article/cogpepp.html


咨詢
建站咨詢
