linux中,常常涉及到許可權的問題。檔案的許可權有3組,owner,group,other,每一組都有rwx三種設定。r(4):可讀;w(2):可寫;x(1):可執行。我們在執行shell命令ls -l時,就會顯示出檔案的所有資訊,第一組就是檔案屬性中的高階屬性,許可權。這一組總共有10格,每一格是乙個bit。
第乙個是特殊位:
d表示目錄;
l表示連線檔案;
-表示檔案;
b表示為裝置(device)檔案中可供儲存的介面裝置;
c表示為裝置檔案中的串列埠裝置(如鍵盤,滑鼠);
s表示該檔案是存放socket資訊的,一般是給 process 之前用來進行 network socket 訪問溝通使用的檔案;
p表示資料輸送檔案(fifo,pipe),它的主要目的是為了解決多個程式同時訪問乙個檔案時所造成的錯誤。
以後的9個格仔按照之前所說的3個組依次分配,給每個組設定讀,寫,執行許可權。
在這裡要注意:如果你想開放乙個目錄,一定要確定x即可執行許可權已經賦予了該使用者或群,否則是不可以讀寫的,也就是說,你給的r,w是沒意義的。
檔案許可權的修改:
chmod:改變檔案的屬性、suid等特性
用法:chmod [-r] 777 dir/filename (注:7=r+w+x;6=r+w;5=r+x;3=w+x)
chmod [-r] a+rwx dir/filename
chmod [-r] u-r dir/filename
chmod [-r] u=rwx,go=rx dir/filename
(注:a:所有使用者和組;u:所有者;g:組;o:其他。+:新增許可權;-刪除許可權;=賦予許可權)
chgrp:改變檔案的所屬群組
用法:chgrp [-r] group dir/filename
chown:改變檔案所屬人
用法:chown [-r] user dir/filename;
順便還可以改變群組
chown [-r] user:group dir/filename
除了這些一般許可權外,我們還可以設定高階許可權,也可以說是特殊許可權:
suid/sgid/sticky bit (檔案特殊許可權):
suid (set uid): 會製作出 s 的許可權,許可權數字是 4 。這個許可權只能作用於可執行檔案,不可作用於目錄,shell script也不行。使一般使用者在執行檔案時,暫時具有該檔案擁有者的許可權。
sgid (set gid): 製作出 s 許可權,許可權數字是 2 。這個許可權可以作用於目錄和檔案。作用於目錄時,在該目錄下建立的所有檔案和目錄的group都會是該目錄的group;作用於檔案時,則不論使用者是誰,在執行該程式的時候, 他的有效群組 (effective group) 將會變成該程式的群組所有人 (group id)。
sticky bit: 製作出 t 許可權,許可權數字是 1 。這個許可權只能作用於目錄。在該許可權作用的目錄裡,如果使用者具有w,x許可權,那麼他所建立的檔案和目錄,只有檔案的擁有者和root才能刪除。
注意:在字元表示許可權時,s和t是出現在x的位置的,意思是在可執行的檔案和目錄時,它們才是有意義的。如果檔案或目錄本身u、g或o就沒有可執行許可權,那麼它所在的許可權組出現的是s或者t,表示空的意思。用數字表示許可權,就是在rwx前面加上4、2、1的組合就是了,如1777。
Linux 學習 檔案普通 預設和特殊許可權
在linux系統中,幾乎所有的資源都是以檔案的形式存在的,比如常用的裝置等。而檔案的許可權對於乙個檔案的管理來說至關重要,現就來談談 linux 系統中的檔案的許可權。linux為每乙個檔案增加 3個所屬物件 檔案的擁有者 檔案所屬的群組以及其他人。由於 linux 系統是乙個多使用者多工的系統,經...
linux下除了rwx外的特殊許可權
suid 執行某程式時,相應程序的屬主是程式檔案自身的屬主,而不是啟動者。chmod u s file chmod u s file 如果檔案本身原來就有執行許可權,則suid顯示為s 否則顯示s passwd命令就含有s這個特殊許可權,代表別人修改自己的密碼時可以臨時具有root的許可權。sgid...
linux中的特殊許可權s t
許可權 特殊許可權 s t以檔案屬主的許可權執行該程式 root localhost mnt ll usr bin passwd rwsr xr x 1 root root 22960 2006 07 17 usr bin passwd chmod u rwx,g rx,o rx sbin shut...