28.linux文件權限討論

一:普通權限

1.umask查看缺省權限,一般默認為0022

根據(jù)缺省權限來配置件的權限,777-022=755。

1.1所以,創(chuàng)建目錄的默認權限是755,rwxr_xr_x;

ls -ld aaa ?//查看當前目錄aaa的信息

ls -i ? //查看節(jié)點號iNode

1.2創(chuàng)建文件的默認權限是644,rw_r__r__;(為安全考慮,默認文件不具有可執(zhí)行權限)

1.3如何來理解這幾種讀寫權限呢?r意味著對文件具有讀權限,w意味著對文件具有寫權限,x意味著對文件具有執(zhí)行權限。所以對文件和目錄分別來說,具體可執(zhí)行的命令如下:

對文件來說,

r: cat ?/more ?/head ?/tail ?/less

w: vim

x: script ?command

對目錄來說,

r: ls

w: touch ?/mkdir ?/rmdir ?/rm

x: cd

2.關于權限幾個小問題

問:某用戶建立的文件,另一個用戶可不可以對其進行刪除呢?

答:可以的,刪除一個文件的前提是,對這個文件所在的目錄具有寫權限,如果一個目錄的權限是777,那么任何用戶都對當前目錄下的文件進行刪除操作。


問:某用戶創(chuàng)建一個文件后,想將其所有者改為root,可不可以?

答:不可以,只有root可以改變文件的所有者,文件的創(chuàng)建者都不可以。

如下例,dazhutizi建立的abcd文件,只有root才可以將所有者改為root

切換到root下,將剛剛普通用戶創(chuàng)建的文件abcd的所有者改為root。


刪除一個非空目錄時,雖然被終止了刪除操作,但是終止之前的操作已經(jīng)完成了,所以如下圖我們可以看到文件a3和目錄a4已經(jīng)被刪除了。



二:特殊權限:ACL權限

用處:身份不夠用時(身份包括,所有者所屬組合其他人三種),需用ACL權限

1.查看acl權限是否開啟

2.可以看到本系統(tǒng)是默認開啟的,如果沒有開啟,有兩種方式來開啟ACL權限

2.1.mount -o remount,acl //用mount命令將根分區(qū)重新掛載,掛載的時候開啟ACL權限,這種方法是臨時生效的

2.2.vi /etc/fstab ?//在根分區(qū)的掛載行,defaults后面加,acl

mount -o remount ?//重新掛載文件系統(tǒng)或重啟,使修改生效。


3.設置acl權限

實驗:

3.1新建兩個普通用戶,一個組,然后將這兩個用戶加入到新組里

3.2創(chuàng)建本次測試的目錄,觀察其初始權限為755,將其權限改為770,此時作為當前目錄的所有者root對目錄具有7的權限,所屬組root有7的權限,其他人沒有任何權限

3.3修改/tmp/project的所有者和所屬組,使得剛剛新建的用戶user1和user2(在組aclgroup里)能夠擁有7的權限,此時其他人仍沒有權限

3.4新建一個其他人用戶,因為他對這個/tmp/project目錄沒有任何權限。但其需要對目錄進行讀和執(zhí)行的訪問,所以為他設定acl權限。

3.5查看/tmp/project目錄的權限,可以看到所有者root具有7,普通用戶dazhutizi有5,所屬組aclgroup有7的權限,其他人沒有權限。

4.刪除acl權限

setfacl -b +目錄 //刪除當前目錄的所有acl權限

setfacl -x +目錄 //刪除當前目錄的指定用戶acl權限

setfacl -g +目錄 //刪除當前目錄的指定組acl權限

5.遞歸與默認ACL權限

setfacl -m u:user:rx -R /tmp/project ?//遞歸,對子文件和子目錄也生效

setfacl -m d:u:user:rx /tmp/project ?//設置默認參數(shù),目錄內(nèi)的子文件繼承父文件的acl權限

6.mask:最大有效權限,一般設為rwx

上圖中出現(xiàn)了mask權限,mask為最大有效權限,它限制其他用戶的權限

acl與所屬組對當前文件設定的權限,與mask相與之后,才是真正的權限。



三:特殊權限:SetUID,SetGID...

SetUID設置chmod 4755 xx,4表示SetUID

只針對可執(zhí)行文件,

執(zhí)行者需要有x的權限

比如passwd命令,passwd命令修改密碼時,會修改/etc/shadow文件,可以看到shadow文件的權限是000,只有root能對其進行讀寫執(zhí)行操作,

但是有passwd權限下suid,所以passwd命令在普通用戶下執(zhí)行時,普通用戶相當于暫時變成超級用戶,故能修改/etc/shadow文件。

但cat命令是不具有suid的,所以它在普通用戶下都不能查看/etc/shadow。

給它加一個suid,那么普通用戶在使用cat命令時會變身超級用戶,此時可以查看/etc/shadow文件了。

結束后刪除suid權限

定期查看系統(tǒng)中有哪些SUID和SGID文件:

find / -type f \( -perm -4000 -o -perm -2000 \) -ls


四、特殊權限:文件系統(tǒng)屬性權限Chattr,用+-=來設置

-i ?——文件,只能查看文件,不能刪除修改重命名

? ????? ——目錄,不能在目錄下建立和刪除文件,但可以修改目錄中的文件

-a ——文件,可以用echo追加文件內(nèi)容,不能刪除和修改文件內(nèi)容

? ? ——目錄,可以在目錄中建立和修改文件,不允許刪除

查看文件的chattr權限,用lsattr命令


五、特殊權限:sudo+操作命令

visudo ?//通過配置/etc/sudoers文件,來實現(xiàn)sudo命令

sudo+操作命令

特殊用法:可以授權普通用戶有重啟服務器的權限,visudo命令在文件內(nèi)寫入

user1 ?ALL=/sbin/shutdown -r now

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容