特殊許可權s

2021-10-22 10:22:42 字數 901 閱讀 9740

linux中可以使用ls -l命令檢視乙個檔案的全部許可權。

許可權一般分為三類,即rwx,分別表示著讀許可權、寫許可權、執行許可權。

但對於某些檔案,卻存在一種特殊的許可權——s

例如/usr/bin/passwd

該檔案是passwd命令的二進位制檔案。

我們知道,使用passwd 使用者名稱可以給某個使用者重新設定密碼,而密碼最終會儲存到/etc/shadow檔案中。

對於/etc/shadow,我們檢視其許可權:

明顯,只有root使用者具有w——寫許可權。普通使用者如果想寫這個檔案是不被允許的。然而在實際情況中,普通使用者也可以通過passwd命令來修改自己的**。

其主要原因就在於這個s許可權。

s許可權出現在x許可權的位置,但依據使用者、所屬組、其他人,又可分為三處,即--s--s--t,分別稱為suid、sgid、sbit。

我們先討論第一處出現s的作用(即suid)。

這一位置起初代表著使用者的可執行許可權,在如上/usr/bin/passwd的許可權截圖中,代表root的可執行許可權。

而從圖上可以看出,普通使用者對於/usr/bin/passwd也具有可執行許可權。

那麼,普通使用者執行該檔案時,由於s許可權的作用,就會暫時處於s許可權所屬者的位置(即root使用者的位置),所以也就對/etc/shadow檔案具有了寫許可權。

說明:我們這裡僅討論了s許可權作用於二進位制檔案並且是suid時的作用。但實際上,s許可權還可以用於目錄,而且也可以作為sgid、sbit出現。作用效果類似,但稍有不同,這裡先不討論。

s和t的特殊許可權

ls l 通常會顯示r w x許可權,分別對應 讀,寫,執行許可權。但是有時我麼會看到,s或t這類許可權標識。首先在主目錄下面的資料夾裡面編譯並執行該test.c檔案,生成a.out可執行程式,由於umask為0002的原因,許可權為 775而不是777。在此時執行a.out會生成hello.txt...

linux的特殊許可權SUID SGID和SBIT

1 suid,就重要的作用就是讓其它使用者在執行這個授有suid的程式時擁有該程式擁有者的許可權。就直接的例子就是passwd這命令 root localhost www ll usr bin passwd rwsr xr x 1 root root 31736 8月 22 2010 usr bin...

linux下檔案的特殊許可權s和t

先看看這兩個檔案的許可權 root localhost ls ld usr bin passwd tmp drwxrwxrwt 4 root root 4096 jun 2 17 33 tmp rwsr xr x 1 root root 22984 jan 7 2007 usr bin passwd...