在linux中一切都是文件,可是每一個文件的類型不盡相同,linux系統使用不一樣的字符來加以區分,常見的字符以下:linux
字符 | 含義 |
---|---|
- | 普通文件 |
d | 目錄文件 |
l | 連接文件 |
b | 塊設備文件 |
c | 字符設備文件 |
p | 管道文件 |
每一個文件都有全部者和全部組,而且有各自的權限,讀(r)寫(w)執行(x),對於文件和目錄rwx含義是不用的ide
示例以下:code
lrwxrwxrwx. 1 root root 7 Feb 7 19:53 bin -> usr/bin dr-xr-xr-x. 3 root root 4096 Feb 7 12:08 boot
SUID
SUID是一種對二進制程序進行設置的特殊權限,能夠上二進制程序的執行者臨時擁有屬主的權限(僅對擁有執行權限的二進制程序有效)
命令是chmod u+s 文件名
,將全部者的權限由rwx變成rws,其中x變成s表示擁有了SUID權限,若是本來全部者的權限是rw-就會變成rwS,其中-會變成大寫的S
例如passwd命令:繼承
[root@localhost /]# ll /bin/passwd -rwsr-xr-x. 1 root root 27832 Jan 30 2014 /bin/passwd
SGID
SGID主要實現兩種功能:it
chmod g+s 文件名
,將全部組的權限由rwx變成rws,其中x變成s表示擁有了SGID權限,若是本來全部組的權限是rw-就會變成rwS,其中-會變成大寫的S[root@localhost /]# chmod 777 /test [root@localhost /]# ls -l /test drwxrwxrwx. 2 test test 6 Feb 7 20:36 test [root@localhost /]# su -l developer -c "touch /test/a.txt" [root@localhost /]# chmod g+s /test [root@localhost /]# ls -l /test drwxrwsrwx. 2 test test 6 Feb 7 20:36 test [root@localhost /]# su -l developer -c "touch /test/b.txt" [root@localhost /]# ls -l test/ -rw-r--r--. 1 developer developer 0 Feb 7 20:37 a.txt -rw-r--r--. 1 developer test 0 Feb 7 20:37 b.txt
SBIT
對一個目錄設置了SBIT權限後,改目錄中的文件只能被其全部者執行刪除操做,其餘用戶沒有刪除權限。
命令是 chmod o+t 目錄名
,文件的其餘人權限部分的x執行權限會被替換成t或者T,本來有x執行權限則會寫成r,本來沒有x執行權限則會被寫成T。
例如系統中的/tmp目錄,全部用戶均可以在/tmp目錄下建立文件,可是不能刪除其餘用戶建立的文件。table