用了Linux那么久,对于权限的含义也是经常的忘记,所以在这里贴上鸟哥里面关于权限系统的说明,以后可以经常的提醒自己。
关于特殊的权限如Xst权限,需要特别注意,因为在一些网络应用里面会经常涉及到这方面的内容:http://linux.vbird.org/linux_basic/0220filemanager.php#suid_sgid_sbit
需要注意的是,当设置SUID的同时如果Owner没有execute权限(也就是有s没有x)的话,那么就会在owner栏显示一个大写S。
同理对于Group也是一样的。
如果Other有t权限而没有x权限,那么就会显示一个大写T。
大写X的含义: execute (or access for directories) (x),
execute only if the file is a directory or already has execute permission for some user (X).
也就是说x(小写)表示一个普通的执行权,而X表示如果改变的目标是一个目录或者已经某些用户有x权限的话,那么他就会改变x的权限。这个只用在改变x权限的场合,而不用来表示权限的意思。
- 權限對檔案的重要性
檔案是實際含有資料的地方,包括一般文字檔、資料庫內容檔、二進位可執行檔(binary program)等等。 因此,權限對於檔案來說,他的意義是這樣的:
- r (read) :可讀取此一檔案的實際內容,如讀取文字檔的文字內 容等;
- w (write) :可以編輯、新增或者是修改該檔案的內容(但不含 刪除該檔案);
- x (eXecute) :該檔案具有可以被系統執行的權限。
那個可讀(r)代表讀取檔案內容是還好瞭解,那麼可執行(x)呢?這裡你就必須要小心啦! 因為在Windows底下一個檔案是否具有執行的能力是藉由『 副檔名 』來判斷的, 例如:.exe, .bat, .com 等等,但是在Linux底下,我們的檔案是否能被 執行,則是藉由是否具有『x』這個權限來決定的!跟檔名是沒有絕對的關係的 !
至於最後一個w這個權限呢?當你對一個檔案具有w權限時,你可以具有寫入/編輯/新增/修改檔案的內容的權限, 但並不具備有刪除該檔案本身的權限! 對於檔案的rwx來說, 主要都是針對『檔案的內容』而言,與檔案檔名的存在與否沒有關係喔!因為檔案記錄的是實際的資料嘛!
- 權限對目錄的重要性
檔案是存放實際資料的所在,那麼目錄主要是儲存啥玩意啊?目錄主要的內容在記錄檔名清 單,檔名與目錄有強烈的關連 啦! 所以如果是針對目錄時,那個 r, w, x 對目錄是什麼意義呢?
- r (read contents in directory) :
表示具有讀取目錄結構清單的權限,所以當你具有讀取(r)一個目錄的權限時,表示你可以查詢該目錄下的檔名資料。 所以你就可以利用 ls 這個指令將該目錄的內容列表顯示出來! - w (modify contents of directory) :
這個可寫入的權限對目錄來說,是很了不起的! 因為他表示你具有異動該目錄結構清單的權限 ,也就是底下這些權限:
- 建立新的檔案與目錄;
- 刪除已經存在的檔案與目錄(不論該檔案的權限為何!)
- 將已存在的檔案或目錄進行更名;
- 搬移該目錄內的檔案、目錄位置。
總之,目錄的w權限就與該目錄底下的檔名異動有關就對了啦! - x (access directory) :
咦!目錄的執行權限有啥用途啊?目錄只是記錄檔名而已,總不能拿來執行吧?沒錯!目錄不可以被執行,目錄的x代表的是使用者能否進入該目錄成為工作目錄 的用途! 所謂的工作目錄(work directory)就是你目前所在的目錄啦!舉例來說,當你登入Linux時, 你所在的家目錄就是你當下的工作目錄。而變換目錄的指令是『cd』(change directory)囉!