歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Linux文件的特殊權限

Linux文件的特殊權限

日期:2017/2/28 15:56:10   编辑:Linux教程

對於Linux的文件權限,除了常用的【讀r 寫w 執行x】外還有強制位與冒險位的特殊權限。

=============================================文章一:

----------------------------
強制位:uid,gid;主要用於文件及目錄
冒險位:sticky 只用於目錄,多數是共享目錄.
目錄也是文件,嚴格意思上講文件應該有四組權限(12位)
強制/冒險 | 宿主 | 組 | 其它
===========================================
sst rwx rwx rwx


強制位:使普通用戶也能使用超級用戶的命令(相當於尚方寶劍)
用於文件的:
[root@clone bin]# find / -perm 4555
/usr/sbin/sendmail
/sbin/pwdb_chkpwd
/sbin/unix_chkpwd [root@clone bin]# ls -l /usr/sbin/sendmail
-r-sr-xr-x 1 root root 452204 Sep 17 2003 /usr/sbin/sendmail 用於組的:
[root@clone bin]# find / -perm 2555
/usr/bin/wall [root@clone bin]# ls -l /usr/bin/wall
-r-xr-sr-x 1 root tty 6444 Aug 29 2001 /usr/bin/wall 冒險位:防止用戶刪除其它用戶資料(自己的資料自己刪除,超級用戶除外)
[root@clone bin]# ls -l /
drwxrwxrwt 10 root root 4096 Oct 18 14:27 tmp 注:
S:表示該位沒有x位;
s: 表示該位有x位
T:表示該位沒有x位;
t: 表示該位有x位 設置s u i d / g u i d 命令 結果 含義 chmod 4755 -rwsr-xr-x suid、文件屬主具有讀、寫和執行的權限,所有其他用戶具有讀和執行的權限 chmod 6711 -rws--s--x suid、sgid、文件屬主具有讀、寫和執行的權限,所有其他用戶具有執行的權限 chmod 4511 -rwS--x—x suid、文件屬主具有讀、寫的權限,所有其他用戶具有執行的權限 上面的表中有具有這樣權限的文件:rwS --x -- x,其中S為大寫。它表示相應的執行權限位並未被設置,這是一種沒有什麼用處的suid設置可以忽略它的存在。 注意,chmod命令不進行必要的完整性檢查,可以給某一個沒用的文件賦予任何權限,但 chmod 命令並不會對所設置的權限組合做什麼檢查。因此,不要看到一個文件具有執行權限,就認為它一定是一個程序或腳本。 •用戶可以用chmod指令來為文件設置強制位與冒險位。 –set uid:chmod u+s 文件名 –set gid:chmod g+s 文件名 –sticky:chmod o+t 文件名 •強制位與冒險位也可以通過一個數字加和,放在讀寫執行的三位數字前來指定。 –4(set uid) –2(set gid) –1(sticky)

=============================================文章二:

目錄也是一種文件 []

目錄上的讀寫執行權限與普通文件有所不同:

讀:用戶可以讀取目錄內的文件

寫:單獨使用沒有作用。與執行權限連用可以在目錄內添加與刪除文件。

執行:用戶可以進入目錄,調用目錄內的資料

*** 除了讀寫執行權限以外,ext2,ext3文件系統還支持強制位(setuid 和setgid)與冒險位(sticky)的特別權限。

*** 針對u,g,o,分別有set uid,set gid,及sticky。

*** 強制位與冒險位添加在執行權限的位置上。

如果該位置上原已有執行權限。則強制位與冒險位以小寫字母的方式表示,否則,以大寫字母表示。

*** set uid與set gid在u和g的x位置上各采用一個s,sticky使用一個t。

***

*** 默認情況下,用戶建立的文件屬於用戶當前所在的組。

*** 目錄上設置了setgid,表示在此目錄中,任何人建立的文件,都會屬於目錄所屬的組。

***

*** 默認情況下,如果一個目錄上有w和x權限,則任何人可以在此目錄中建立與刪除文件。

*** 一旦目錄上設置了冒險位,則表示在此目錄中,只有文件的擁有者、目錄的擁有者與系統管理員可以刪除文件。

*** 在可執行文件上,用戶可以添加set uid和set gid。

*** 默認情況下,用戶執行一個指令,會以該用戶的身份來運行進程。

*** 指令文件上的強制位,可以讓用戶執行的指令,以指令文件的擁有者或所屬組的身份運行進程。

*** 用戶可以用chmod指令來為文件設置強制位與冒險位。

– set uid:chmod u+s 文件名

– set gid:chmod g+s 文件名

– sticky:chmod o+t 文件名

*** 強制位與冒險位也可以通過一個數字加和,放在讀寫執行的三位數字前來指定。

– 4(set uid)

– 2(set gid)

– 1(sticky)

設置s u i d / g u i d

命令 結果 含義

chmod 4755 -rwsr-xr-x suid、文件屬主具有讀、寫和執行的權限,所有其他用戶具有讀和執行的權限

chmod 6711 -rws--s--x suid、sgid、文件屬主具有讀、寫和執行的權限,所有其他用戶具有執行的權限

chmod 4511 -rwS--x—x suid、文件屬主具有讀、寫的權限,所有其他用戶具有執行的權限

上面的表中有具有這樣權限的文件:rwS --x -- x,其中S為大寫。它表示相應的執行權限位並未被設置,這是一種沒有什麼用處的suid設置可以忽略它的存在。

注意,chmod命令不進行必要的完整性檢查,可以給某一個沒用的文件賦予任何權限,但 chmod 命令並不會對所設置的權限組合做什麼檢查。因此,不要看到一個文件具有執行權限,就認為它一定是一個程序或腳本。

關於Linux下粘貼位(sticky位)

要刪除一個文件,你不一定要有這個文件的寫權限,但你一定要有這個文件的上級目錄的寫權限。也就是說,你即使沒有一個文件的寫權限,但你有這個文件的上級目錄的寫權限,你也可以把這個文件給刪除,而如果沒有一個目錄的寫權限,也就不能在這個目錄下創建文件。

如何才能使一個目錄既可以讓任何用戶寫入文件,又不讓用戶刪除這個目錄下他人的文件,sticky就是能起到這個作用。stciky一般只用在目錄上,用在文件上起不到什麼作用。

在一個目錄上設了sticky位後,(如/home,權限為1777)所有的用戶都可以在這個目錄下創建文件,但只能刪除自己創建的文件(root除外),這就對所有用戶能寫的目錄下的用戶文件啟到了保護的作用。

Copyright © Linux教程網 All Rights Reserved