chmod 設定檔案特殊許可權

2021-09-01 16:30:10 字數 1894 閱讀 6785

linux中除了常見的讀(r)、寫(w)、執行(x)許可權以外,還有3個特殊的許可權,分別是setuid、setgid和stick bit

1、setuid、setgid

先看個例項,檢視你的/usr/bin/passwd 與/etc/passwd檔案的許可權

[root@mylinux ~]

#ls -l /usr/bin/passwd /etc/passwd-rw

-r--r

--1root root

154908-

1913:54

/etc

/passwd

-rwsr-xr

-x 1root root

22984

2007-01

-07/usr

/bin

/passwd

眾所周知,/etc/passwd檔案存放的各個使用者的賬號與密碼資訊,/usr/bin/passwd是執行修改和檢視此檔案的程式,但從許可權上看,/etc/passwd僅有root許可權的寫(w)權,可實際上每個使用者都可以通過/usr/bin/passwd命令去修改這個檔案,於是這裡就涉及了linux裡的特殊許可權setuid,正如-rwsr-xr-x中的s

setuid就是:讓普通使用者擁有可以執行「只有root許可權才能執行」的特殊許可權,setgid同理指」組「

作為普通使用者是沒有許可權修改/etc/passwd檔案的,但給/usr/bin/passwd以setuid許可權後,普通使用者就可以通過執行passwd命令,臨時的擁有root許可權,去修改/etc/passwd檔案了

2、stick bit (貼上位)

再看個例項,檢視你的/tmp目錄的許可權

[root@mylinux ~]

#ls -dl /tmp

drwxrwxrwt

6root root

409608-

2211:37

/tmp

tmp目錄是所有使用者共有的臨時資料夾,所有使用者都擁有讀寫許可權,這就必然出現乙個問題,a使用者在/tmp裡建立了檔案a.file,此時b使用者看了不爽,在/tmp裡把它給刪了(因為擁有讀寫許可權),那肯定是不行的。實際上是不會發生這種情況,因為有特殊許可權stick bit(貼上位)許可權,正如drwxrwxrwt中的最後乙個t

stick bit (貼上位)就是:除非目錄的屬主和root使用者有許可權刪除它,除此之外其它使用者不能刪除和修改這個目錄

也就是說,在/tmp目錄中,只有檔案的擁有者和root才能對其進行修改和刪除,其他使用者則不行,避免了上面所說的問題產生。用途一般是把乙個資料夾的的許可權都開啟,然後來共享檔案,象/tmp目錄一樣。

3、如何設定以上特殊許可權

setuid:chmod u+s ***

setgid: chmod g+s ***

stick bit : chmod o+t ***

或者使用八進位制方式,在原先的數字前加乙個數字,三個許可權所代表的進製數與一般許可權的方式類似,如下:

suid   guid    stick bit

1        1          1

所以:suid的二進位制串為:100,換算十進位制為:4

guid的二進位制串為:010,換算:2

stick bit 二進位制串:001,換算:1

於是也可以這樣設:setuid:chmod 4755 ***

setgid:chmod 2755 ***

stick bit:chmod 1755 ***

最後,在一些檔案設定了特殊許可權後,字母不是小寫的s或者t,而是大寫的s和t,那代表此檔案的特殊許可權沒有生效,是因為你尚未給它對應使用者的x許可權  

chmod 特殊許可權 t

set uid,gid,sticky bit的三個許可權的詳細說明 乙個檔案都有乙個所有者,表示該檔案是誰建立的.同時,該檔案還有乙個組編號,表示該檔案所屬的組,一般為檔案所有者所屬的組.如果是乙個可執行檔案,那麼在執行時,一般該檔案只擁有呼叫該檔案的使用者具有的許可權.而setuid,setgid...

chmod 許可權設定

1修改許可權 命令 chmod change mode 功能 改變檔案的讀寫和執行許可權。有符號法和八進位制數字法。選項 1 符號法 命令格式 chmod filename u user 表示使用者本人。g group 表示同組使用者。o oher 表示其他使用者。a all 表示所有使用者。用於給...

chmod許可權設定

drwxr xr x.7 root root 4096 sep 26 20 16 sysconfig rw r r 1 root root 1150 aug 31 18 46 sysctl.conf lrwxrwxrwx.1 root root 14 aug 31 17 21 system rele...