1. 程式人生 > >Linux(十一) 文件目錄權限 chmod umask chown

Linux(十一) 文件目錄權限 chmod umask chown

mar chan 擁有 term 套接字 分享圖片 文件類型 直接 bae

一 文件目錄權限定義

首先我們先認識一下文件目錄的權限定義,請看下面ls -l的結果
技術分享圖片
我們發現一個文件或者目錄的前面有10位的信息,第一位表示文件類型,大概有一下幾種類型:d 表示目錄 - 普通文件 b 塊設備 (sda,sda1)l 鏈接文件 c 字符文件 p 管道文件 s 套接字文件 我們熟悉前四種即可。
後面的9位,沒3位一組,分別表示用戶(擁有者/屬主),用戶組(擁有組/屬組),其他用戶的權限.符號表示為u(user),g(group),o(others)
每組裏面有3個權限r,w,x 分表表示讀,寫,執行。數字記法為rwx=421=7
rw=42=6依次類推
三種權限對於文件和目錄的詳細含義見以下表格

技術分享圖片
註意文件權限在root賬戶下失效,登陸普通賬戶驗證

二 屬主屬組修改 chown

含義為:change owner 更改文件所屬用戶
格式 chown 用戶 filename
也可以 chown 用戶:用戶組 filename 同時修改屬主跟屬組
-R 參數可以級聯

三 文件目錄權限修改

chmod 更改文件權限有三種辦法:
1 chmod u=rwx filename
2 chmod u+r filename 或者 chmod u-r filename
備註:u可以換作g,o,也可以用逗號隔開,同時賦值,後面的權限自定義
3 chmod 770 filename 直接給u,g,o 修改權限
4 -R 參數可以給目錄級聯修改權限

四 umask

umask 可以說是一個文件權限的開放標準, 我們新建一個文件或者目錄都會有一個默認權限,比如在普通用戶下,新建一個文件權限為664,目錄為775, 此時我們查看umask 發現為0002, 默認四位,第一位0為補位,後三位分別表示u,g,o的參考權限, 簡單求和 我們發現,
對於普通文件滿權限為 664+002=666
對於目錄文件滿權限為 775+002=777
那麽意味著我們對普通文件默認不給x權限,盡量限制普通用戶權限,目錄則無法從源頭控制,默認最大權限。
我們可以修改umask值,來修改預設權限
命令格式為 umask xxx xxx為三個數字表示的基準權限

五 隱藏權限 chattr lsattr

下面介紹兩個隱藏權限 i 權限 和 a 權限
命令 chattr:
chattr [+-=] [i,a] [文件或目錄名] 例 chattr +a test.txt
‘+-=’ : 分別為增加、減少、設定
‘a’ : 增加該屬性後,只能追加不能刪除,非root用戶不能設定該屬性;
‘i’ : 增加後,使文件不能被刪除、重命名、設定鏈接接、寫入、新增數據;
我們舉例說明,給一個目錄怎家i權限看下效果:
技術分享圖片
我們對test目錄增加i權限後,即使root用戶也不能再裏面創建或刪除文件
下面我們給目錄增加a權限 ,看下結果
技術分享圖片
我們發現給目錄增加a權限後可以在裏面創建文件,但不能刪除
下面我們給文件增加i和a權限,看下結果
技術分享圖片
技術分享圖片
命令 : lsattr
該命令用來讀取文件或者目錄的特殊權限,語法為 lsattr [-aR] [文件/目錄名]
‘-a’ : 類似與ls 的-a 選項,即連同隱藏文件一同列出;
‘-R’ : 連同子目錄的數據一同列出
技術分享圖片

Linux(十一) 文件目錄權限 chmod umask chown