歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Linux文件目錄權限淺談

Linux文件目錄權限淺談

日期:2017/2/28 14:43:57   编辑:Linux教程

1、基本權限三種
(1)r (read) 讀

針對目錄,有讀(r)權限就代表能對此目錄有列表功能,就是可以執行ls命令進行查看,另外還有cp的功能。
針對文件,有讀(r)權限就代表能對此文件有閱讀功能,可以通過cat等命令查看文件內容。

(2)w (write) 寫
針對目錄,有寫(w)權限就代表著在此目錄下創建文件和目錄,可以通過touch,mkdir等命令創建文件和目錄,另外還可以刪除此目錄下的文件。
針對文件,有寫(w)權限就代表著對此文件可以寫入新的內容和修改文件內容。

(3)x (execute) 執行
針對目錄,有執行(x)權限就代表能進入此目錄,利用cd等命令進入此目錄
針對文件,有執行(x)權限就代表可以執行此文件。

例題:
(4)拷貝文件到目錄中,需要對此目錄具備哪些權限?
-----拷貝文件到目錄時,需要寫數據到目錄中,所以需要對此目錄有寫的權限(w),另外寫的動作是一個執行的過程,所以還需要對此目錄有執行(x)權限才行。

(5)什麼情況下可以刪除文件或者目錄
-----能不能刪除文件與它本身的權限和owner,group無關,能否刪除需要看它的上一級目錄的權限,也就是說當前用戶對上一級目錄有寫(w)和執行(x)權限,就可以刪除此目錄下的文件或子目錄
是否能刪除目錄,要求
1、如果是空目錄,只要對它的上級有寫(w)和執行(x)權限,就可以刪
2、如果是非空目錄,那麼當前用戶要對這個目錄裡的包括上級目錄、本身目錄以及所有的子目錄都有寫(w)和執行(x)權限,才可以刪除非空目錄。

(6)什麼時候會出現強制保存的選項?什麼時候可以強制保存,什麼時候不能?
只有當用戶對文件沒有寫權限的時候,才會在保存時出現要你使用!強制保存的選項;比如上級目錄對user1沒有寫權限,目錄裡的文件對user1也沒有寫權限,那麼user1不能強制保存這個文件(--但是這個文件是屬於其它用戶的,才不能強制保存,如果這個文件就是屬於user1,文件和目錄都沒有寫權限,也可以強制保存)

而如果把上級目錄改為對user1有寫權限,就算是目錄裡的文件對user1沒有寫權限,user1也可以強制保存這個文件,並且保存後,屬主和屬組會變為user1;這種情況會比較混亂(特別是文件服務器的情況),所以目錄一般默認權限就是755,避免除開目錄屬主外的用戶能夠寫

--總結:
(1)只有當用戶對文件沒有寫權限的時候,才會在保存時出現要你使用!強制保存的選項
(2)你是文件的所有者,不管對上級目錄還是文件本身有何權限,都可以強制保存。
(3)你不是文件的所有者,對上級目錄有寫權限,就可以強制保存,並且強制保存後,owner和group改變成你自己這個用戶了。

2、特殊位導致權限變化一般有以下兩種
(1)特權位(s)
setuid s位在前三位
setgid s位在中間三位
特權位只針對文件有效,並且只能添加在權限位的前三位和中間三位;一個可執行文件擁有s位並且在前三位時,當別的用戶來執行此文件,使用的權限是此可執行文件屬主權限;如果一個可執行文件擁有s位並且在中間三位時,當別人的用戶來執行此文件,使用的權限是此可執行文件屬組的權限
[root@localhost test]# ll /etc/shadow
-r-------- 1 root root 1425 Mar 7 16:42/etc/shadow
[root@localhost test]# ll /usr/bin/passwd
-rwsr-xr-x 1 root root 22960 Jul 17 2006/usr/bin/passwd
--通過上面的權限可知,普通用戶修改密碼使用passwd能改自己的密碼,但是密碼是存放在/etc/shadow裡,也就是說普通用戶對/etc/shadow沒有寫的權限,但passwd可執行文件的前三位有s位,所以普通在調用passswd時是用的root的權限

(2)粘帖位(t)
當一個目錄共享給其他用戶使用並且用戶可以上傳文件和刪除文件,但是只能刪除自己的文件,那麼就必須用到粘帖位(t),特別用在/tmp目錄。只針對目錄有效。
有t位的目錄,任何用戶在有權限的情況下是可以創建文件和目錄,就算是有權限刪除別人的文件或目錄也不能刪除,同時互相也不能強制保存修改,自己只能刪除自己創建的目錄,用於一些共享上傳的文件服務器場合
[root@www test]# ll -ld /tmp/
drwxrwxrwt. 72 root root 12288 Aug 23 20:26 /tmp/

--s位和t位都是占用x位,那麼是否有x位,主要是看s或t的大小寫來判別;
大寫,表示沒有執行權限x位
小寫,表示有執行權限x位

3、隱藏屬性權限--
i 權限,具備i 權限的文件將無法刪除,修改,重命名等
命令查看隱藏權限和修改隱藏權限有以下命令
lsattr --listfile attributes on a Linux second extended file system
chattr --change file attributeson a Linux second extended file system

[root@localhost /]# lsattr /etc/shadow
------------- /etc/shadow
[root@localhost /]# chattr +i/etc/shadow ---添加i 權限
[root@localhost /]# lsattr /etc/shadow --有了i 權限後,此文件就不能改動,root用戶都不行
----i-------- /etc/shadow

4、修改權限,通常使用的命令
(1)chmod --change file access permissions
(2)chown --change file owner and group
(3)chgrp --change group

Copyright © Linux教程網 All Rights Reserved