一:普通權限
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


