http://www.newwhy.com/2010/0915/15015.html
了解這三個特殊訪問位前先了解Linux文件訪問特權位:
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
SUID
SGID
sticky
r
w
x
r
w
x
r
w
x
文件類型位
特殊訪問位
擁有者特權位
同組特權位
其他用戶特權位
10. SUID(set-user-ID)位
SUID位的作用:若文件F設置SUID位為1,文件F的擁有者是用戶A,而用戶B擁有文件F的執行權限,則當用戶B執行文件F時就以文件擁有者(用戶A)的權限執行。
SUID位的典型應用:修改Linux用戶密碼。Linux用戶密碼加密后存儲在/etc/passwd文件中,用戶使用passwd命令修改密碼。而修改/etc/passwd文件需要root權限, 如下圖:
heaad@ubuntu:~$ ls -l /etc/passwd
-rw-r--r--1root root 1672 2010-04-30 03:22 /etc/passwd
那么普通用戶是如何修改自己的密碼的呢?答案在/usr/bin/passwd文件中,如下圖:
heaad@ubuntu:~$ ls -l /usr/bin/passwd
-rwsr-xr-x 1 root root 37140 2010-01-26 09:09 /usr/bin/passwd
passwd命令的所有者特權位中的x變成了s,表示passwd文件設定了SUID特權位。那么其他用戶執行passwd命令時將獲得passwd文件的所有者(root)的權限,於是就有權限修改/etc/passwd文件了。
設置SUID位:使用如下命令設置SUID位:
$ sudo chmod 4xxx file
或
$ sudo chmod u+s file
其中的4xxx中的4是因為SUID位在特殊訪問位中的第三位。
執行完上面的兩條命令中的其中一條后,file文件的權限可能變成了rwsr-xr-x
若文件所有者也沒有該文件的執行權限,則上面的兩條命令可能使file的訪問權限位變成了rwSr--r--,其中的S是大寫的
11. SGID(set-group-ID)位
作用:SGID與SUID類似,但它是使執行的線程擁有所在組的權限。
設置方式:
$ sudo chmod 2xxx file
或
$ sudo chmod g+s file
執行完以上其中一條命令后,文件file的訪問權限可能會變成rwxr-sr-x 。
12. sticky位
作用:若目錄A設置了sticky位,則除了目錄A的所有者和root用戶外,其他用戶均不能刪除或重命名目錄A下的文件。
設置方法:
$ sudo chmod +t file
或
$ sudo chmod 1xxx file
執行完以上其中一條命令,文件的訪問權限位可能被改變為rwxr-xr-t 。若文件所有者也沒有執行權限,則訪問權限位可能會變成rw-r--r-T 。
參考:《Linux:The Textbook》
閱讀(88) | 評論(0) | 轉發(0) |
給主人留下些什么吧!~~
評論熱議