Linux下文件權限管理輕微總結
此文對linux下文件的權限及其如何管理權限進行介紹,涉及到讀“r”寫“w”執行“x”三個權限,特殊權限SUID、SGID、STICKY、ACL、attr的使用。同時對更改文件的指令chmod、getfacl、setfacl、chattr、lsattr等進行說明。
在linux里,使用“ls –l file” 命令便可查看一個文件的權限,如上圖,是bin目錄的權限查看圖,紅圈中就是文件的權限,表明文件用戶可對文件進行讀寫執行操作,文件的所屬組成員可對文件進行讀和執行操作,其他用戶可對文件進行讀和執行操作,具體解釋如下。
一、一個文件的一般權限組成由“– – – – – – – – – –”10個位組成,如下圖:
第1位表示文件的類型:
一般文件(–)、目錄文件(d)、鏈接文件(l)、 塊文件(b)、字管設備文件(c)、套接字設備文件(s)、管道文件(p)
第2-4位表示一個文件的所屬主(u)的權限:
第2位為讀權限位,屬主有讀權限,用“r”表示,無讀權限,用“-”表示;
第3位為寫權限位,屬主有寫權限,用“w”表示,無寫權限,用“-”表示;
第4位為執行權限位,屬主有執行權限,用“x”表示,無執行權限,用“-”表示;
第5-7位是文件屬組(g)的權限位:
第5位為讀權限位,屬組成員有讀權限,用“r”表示,無讀權限,用“-”表示;
第6位為寫權限位,屬組成員有寫權限,用“w”表示,無寫權限,用“-”表示;
第7位為執行權限位,屬組成員有執行權限,用“x”表示,無執行權限,用“-”表示;
第8-10位是文件其他用戶(o)的權限位:
第8位為讀權限位,其他成員有讀權限,用“r”表示,無讀權限,用“-”表示;
第9位為寫權限位,其他成員有寫權限,用“w”表示,無寫權限,用“-”表示;
第10位為執行權限位,其他成員有執行權限,用“x”表示,無執行權限,用“-”表示;
二、除了以上說到的文件權限外,linux文件還有其他幾種特殊的權限:
1、 SUID權限位,set user ID,它的作用是讓不是此文件的所有者在運行此文件時,能臨時擁有文件的權限,該命令只對二進制文件有效。用命令“chmod u+s file”可增加用戶的s權限,當文件的本身有執行權限時,增加s權限后,執行權限位變為小寫“s” ;文件沒有執行權限而增加s權限時,執行權限位變為大寫的“S”
。
2、 SGID權限位,set group ID,
A:當對二進制文件設置“s”權限時,用戶能臨時擁有文件所屬組的權限;
B:當對目錄設置“s”權限時,用戶在此目錄下創建文件,文件的所屬組會自動變為該文件所的有組。
3、 sticky權限,此權限只對目錄有效,用“chmod g+t file”可以給目錄添加sticky權限,當目錄擁有sticky權限時,用戶在此目錄下創建文件或者目錄后,只有文件或目錄的所有者與root用戶才能執行修改刪除等操作。
三、除了上述權限之外,還有一個ACL權限
ACL權限,即Access Control List訪問控制列表。使用setfacl命令可以對單獨的用戶或者組設置權限,如:當一個文件只想增加一個特定的用戶的讀寫權限而不想讓更多的用戶對文件進行操作,就可以使用此權限。增加權限后,用戶的權限屬性后面會多了個“+”號,
常用的設置命令有:
1) 查看文件是否有acl權限設置:getfacl file
2) 設置文件只對某個單獨的用戶有讀寫權限:setfacl –m u:username:rw file
3) 設置文件只對指定的組有權限:setfacl –Rm u:groupname:rw file|directory
4) 用腳本對文件進行批量增加權限:setfacl –M file.acl file|directory
5) 給目錄增加權限:setfacl –m –d:u:username:rx directory
6) 刪除文件facl權限:setfacl –x u:username file|directory
7) 使用腳本刪除facl權限: setfacl –X file.acl directory
四、兩個特殊權限設定命令(chattr、lsattr)
能對一個文件進行鎖定操作,當一個文件設置了attr權限后,root用戶都不能更改此文件。這條命令能很好的保護文件不被誤刪
1) chattr +i file ,用了此命令后,文件不能被修改;
2) lsattr file ,查看文件是否增加了attr權限
原創文章,作者:yaoqin.liang,如若轉載,請注明出處:http://www.www58058.com/58385