檔案或目錄的特殊許可權有三種:
一、 suid:用字母 s 表示。使得可執行程式不管執行者是誰,都能夠以其擁有者的身份去執行。(有安全隱患,慎用)占用屬主許可權部分的最後一位即x位,如果檔案原來設有x位則加了suid後用小寫的s表示,否則用s表示。注意:suid許可權對目錄無效。<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
例如:
ls命令的原始許可權是下面這樣(屬主有x許可權)
-rwxr-xr-x 1 root root 81240 oct 4 2006 ls
執行:# chmod u+s ls 後許可權變成下面這樣(小寫s)
-rwsr-xr-x 1 root root 81240 oct 4 2006 ls
如果像上面那樣對ls命令加上了suid許可權,帶來的後果是普通使用者可以使用ls命令檢視任何目錄的任何檔案的資訊。包括普通使用者原來無法檢視的/root目錄。
如果對fdisk命令設定了suid許可權將使所有使用者都能對磁碟分割槽,如果對service命令設定了suid將使所有使用者都能管理系統服務。慎用!
# ls -l |grep ^...s 該命令可以找出當前目錄下所有被設定了suid的檔案。
可以使用 $ chmod u+s /bin/ls 為可執行程式增加suid許可權;也可以使用 $ chmod 4*** 命令 其中x表示的是可執行程式的普通許可權。
二、sgid:使得程式不管理執行者是誰,都能夠以其屬組的身份去執行。如果sgid被設定在目錄上,在該目錄內新建的檔案或目錄的屬組,將會是此目錄的屬組。 (不常用)占用屬組許可權的x位。
例如:
-rwxr-sr-x 1 root tty 10124 apr 11 2007 /usr/bin/wall
wall 命令就是被設定的sgid的,這會使不管使用wall發資訊的使用者是誰,都將以tty組的許可權傳送。
可以使用 $ chmod g+s 命令給檔案或目錄加sgid許可權。
也可以使用 $ chmod 2*** 命令其中x表示的是檔案或目錄的普通許可權。
三、sticky
:為了防止在乙個完全開放許可權的目錄裡使用者之間相互刪除對方完全開放許可權的檔案,可以對該目錄設定sticky許可權。注意:sticky許可權只能對目錄生效。
例如:當前使用者是bjxh
$ cd /tmp
$ touch test
$ chmod 777 test
$ su - xhce //換成xhce使用者
$ rm /tmp/test
rm: cannot remove `/tmp/aa': operation not permitted
可以使用 $ chmod o+t /test 給test目錄加上sticky許可權
也可以使用 $ chmod 1*** 命令 其中x表示的是目錄的普通許可權。
有的時候為了增加系統的安全性,會用到 chattr命令。
# chattr +i filea //不允許檔案被做任何改變,如改名,增加資料。
# chattr +a dir //只允許在目錄裡新加資料,不允許刪除
檢視用chattr設定的許可權,要用 lsattr 命令,可以加上 -a
表示檢視隱藏檔案的設定; -r遞迴檢視目錄下所有檔案的子目錄設定。
Linux下檔案許可權
1.所謂檔案許可權,是指對檔案的訪問許可權,包括對檔案的讀,寫和執行的許可權。而檔案的許可權分為三類,所屬使用者對檔案的許可權,使用者所屬的組對檔案的許可權,以及其它使用者和其它組對檔案的許可權。在linux下,用ls al顯示檔案或目錄的許可權資訊。其中 a是顯示所有的檔案,包括 和 目錄。l 是...
Linux下檔案及目錄是否存在
標頭檔案自己查,吧,或者我有空,再補上,話不多說,直接貼 判斷目錄是否存在,目錄存在返回0,不存在返回 1 int is dir exist const char dir path dir dir opendir dir path if dir null closedir dir return0 判...
Linux檔案 目錄許可權及歸屬
讀寫執行 讀寫執行讀 寫執行rw xrwx rwx檔案所有者 檔案所屬組 其他使用者 r 讀 w 寫 x 可執行 檢視內容cat 修改內容vi 作為命令使用 列出目錄內容ls 新增 刪除 touch rm 進入資料夾或搜尋 cd ugoa rwx 檔案或目錄 遞迴修改指定目錄下所有檔案 子目錄的許可...