基礎權限
rwx
經過今天的洗禮,了解了文件的權限位(rwx),而權限對于目錄和文件有著不同的意義
使用ls -l 命令后可以看到
-rw-r–r–. 1 root root 10033 8月 2 03:44 install.log.syslog
橫線部分是十個位置,-代表文件類型,剩余九位,每三位為一組,從左到右分別是文件的屬主
(u)rwx,文件的屬組(g)rwx,其他用戶(o)rwx,
rwx:讀,寫,執行
rwx對文件
r,如果一個用戶對一個文件擁有“讀”權限后,代表此用戶可以瀏覽這個文件的內容
w,如果一個用戶對一個文件擁有“寫”權限后,代表此用戶可以修改和刪除這個文件的內容,但是不能刪除這個文件本身
x,如果一個用戶對一個文件擁有“執行”權限后,代表此用戶可以運行此文件(這個相當危險的,不建議隨便給用戶x權限)
rwx對目錄
r,如果一個用戶對一個目錄擁有“讀”權限后,代表此用戶可以瀏覽這個目錄中的文件列表
w,也不可以修改這個目錄中的文件內容
x,如果一個用戶對一個目錄擁有“寫”權限后,代表此用戶可以在這個目錄中創建新的文件與目錄;刪除已經存在的文件與目錄(不論該文
件的權限為何?。⒁汛嬖诘奈募蚰夸涍M行更名;搬移該目錄內的文件、目錄位置。對目錄來講不建議隨便給一個用戶用于w的權限
如果一個用戶對一個目錄擁有“執行”權限后,代表此用戶可以進入這個目錄中,并且在擁有讀,寫權限的情況下可以瀏覽目錄中的文件列
表,也可以在目錄中創建新文件,如果一個用戶對一個目錄沒有執行權限的話,那么這個用戶就無法cd進此目錄,而且也無法執行讀,寫,
即使是在對此目錄擁有讀寫權限的情況下也罷,對目錄來講建議給用戶x權限
相關操作命令:
賦權
chmod u=rwx,g=rw,o=x file
授權
chmod u+rwx,g+rwx,o+rwx file
八進制
每個權限組的r=4,每個權限組的w=2,每個權限組的x=1
chmod 660 file
默認權限
umask
umask是新建文件的默認權限,
umask
對文件來將666-umask(默認002)=文件的權限(普通用戶),666-umask(默認022)=文件的權限(管理員)
對目錄來講777-umask(默認002)=目錄的權限(普通用戶),777-umask(默認022)=目錄的權限(管理員)
相關操作命令
直接鍵入 umask 可以查看umask值
umask -S 模式方式顯示
[root@ali ~]# umask -S
u=rwx,g=rx,o=rx
umask -p 輸出,可被調用
[root@ali ~]# umask -p
umask 0022
修改方法
umask 數值(八進制)
umask u=rw,g=r,o=
全局設置:/etc/bashrc,用戶設置:~/.bashrc
如果所得結果某位存在執行權限(奇數),則將其權限加1
三種特殊權限
SUID
每個程序運行成進程時,這個進程以發起者身份運行,就是發起這個進程的用戶,而不是這個程序的屬主,應用在文件上,如果一個程序擁
有了suid權限,那么每個用戶運行此程序時都是以這個文件的屬主的身份運行的但是如果這個程序擁有SUID特權的時候,這個進程運行的身
份就不是發起這個進程的用戶了,而是這個程序文件的屬主。
相關命令:
chmod u+s file 增加suid
chmod u-s file 撤銷suid
占位在屬主的x權限位,如果屬主原來沒有x權限則表現為大寫S
SGID
用在目錄的屬組權限上,如果此目錄擁有SGID權限之后,用戶在此目錄下新創建的文件的屬組將會是這個目錄的屬組,而不是創建這個文件
的用戶的私有組,如果一個目錄擁有了sgid權限,那么每一個用戶進入到此目錄創建文件的屬組會是這個目錄的屬組,而不是創建文件的用
戶的屬組組
相關命令:
chmod g+s file 增加sgid
chmod g-s file 撤銷sgid
占位在屬組的x權限位,如果屬組原來沒有x權限則表現為大寫S
STICKY
也用在目錄上,如果此目錄擁有STICKY權限的話,用戶在此目錄只能刪除自己創建(自己為屬主)的文件,而不能刪除其他用戶創建的文
件,即便是用戶對此目錄有寫的權限也不行。
相關命令:
chmod o+t dir 增加sticky
chmod o-t dir 撤銷sticky
占位在其他用戶的x權限位,如果其他用戶原來沒有x權限則表現為大寫T
特殊權限的數字賦權法
chmod 4777 ,可以把每一個特殊權限位再看成rwx(及suid,sgid,sticky),操作在原有的傳統數字權限位前
mask和facl
mask是創建文件后修改文件的權限的高壓線,所有通過facl修改的文件的權限除了文件所有者和other以外,所有人都不能超過mask的權限
facl :訪問控制列表
如果文件的屬主,屬組,其他權限設置不能滿足你,假如你只想針對某一個或者多個用戶設定文件權限的話,facl可以滿足你,當一旦設置
facl權限后 屬組的權限將會變成mask的權限,但是mask不會給用戶添加原來沒有的權限(當文件的屬主的權限是讀,寫,而mask的權限是
讀,寫,執行,這種情況下mask不會給用戶添加執行權限的)
facl相關操作命令
facl
getfacl file 查看文件的facl列表
賦權給用戶
setfacl -m u:username:mode file
setfacl -M acl.txt file(批量添加)
賦權給組
setfacl -m g:groupname:mode file
撤銷賦權
setfacl -x u:username file
setfacl -x g:groupname file
setfacl -X acl.txt file(批量刪除)
setacl -b file 徹底清空所有facl信息
占位在其他用戶的x權限后,以+號表示
facl生效順序:所有者,自定義用戶,自定義組,其他人
facl的備份和恢復命令
先使用getfacl -R file|dir讀去列表然后>重定向保存到文件a.txt
然后setfacl -k 刪除原文件facl列表
再然后setfacl -R –set-file=a.txt讀會facl列表,完整命令示例如下
[root@ali /]# getfacl -R testdir/ > acl.txt
[root@ali /]# setfacl -k /testdir/
[root@ali /]# setfacl -R –set-file=acl.txt /testdir/
mask對facl的高壓控制
[root@ali ~]# getfacl /testdir/testdir
getfacl: Removing leading '/' from absolute path names
# file: testdir/testdir
# owner: root
# group: root
user::rw-
user:user1:rwx #effective:r–
group::r–
group:g1:rw- #effective:r–
mask::r–
other::— 此部分往上表示針對此目錄執行的ACL權限 ,操作命令setfacl -m m::rwx dir
default:user::rwx
default:user:user1:rw-
default:group::r-x
default:group:g1:—
default:mask::rwx
default:other::r-x 此部分表示默認針對此目錄下將要新建的文件執行ACL權限,操作命令 setfacl -m d:u:user1:rwx dir
文件的特定特殊屬性
chattr:功用是讓你的文件避免被誤操作
chattr +A file 鎖定文件的時間戳
+i file 不能刪除,更改,改名
+a file 只能增加
lsattr 可以查看文件被添加的特殊屬性
我們說的權限是有針對文件系統的,比如在vfat分區文件下,不支持linux的權限,很多命令對其不起作用
原創文章,作者:M20-1馬星,如若轉載,請注明出處:http://www.www58058.com/28562