1. 程式人生 > >Linux文件和目錄權限:chmod、更改所有者和所屬組:chown,umask命令,隱藏權限:lsattr/chattr

Linux文件和目錄權限:chmod、更改所有者和所屬組:chown,umask命令,隱藏權限:lsattr/chattr

chmod chown umask

文件和目錄權限chmod

我們使用ls -l可以看到文件的詳細信息,也知道第一列的第一個符號(字母)表示文件的類型,在表示文件的類型符號的後面的九個符號則表示的是文件的權限,這些權限和文件的所有者和所屬組都有關系:

技術分享

技術分享

技術分享

技術分享

技術分享


文件權限有三個屬性:是否可讀用r表示、是否可寫用w表示、是否可執行用x表示。

權限可以用數字表示,r=4w=2x=1-=0rwx=(r+w+x=7rw-=(r+w+-)=6

所以一個權限可以用數字這麽表示:

技術分享

技術分享



chmod命令:

chmodchange mode的縮寫,mode就是權限的意思,此命令可以修改權限,下面我們將a.txt的權限改為rwx,用數字表示就是700

技術分享


我們會發現文件的第一列除了表示文件類型符號,和表示權限符號之外還有一個 . 字符,這個點 . 表示的意義是此文件受制於selinux防火墻,只有修改配置文件永久關閉selinux防火墻之後,新創建的文件就不會帶有這個 . 了:

技術分享


使用chmod 命令更改目錄權限的時候,只會更改目標目錄本身,目標目錄下的子目錄權限不會隨著更改。chmod -R命令則是可以批量更改目標目錄和下目標目錄的子目錄權限,這就是-R選項的作用:

技術分享


chmod還有更直觀的用法,可以不用數字表示,可以直接用權限字符表示,u表示所有者,g表示所屬組,o表示其他用戶:

技術分享


chmod還有一種用法,chmod a+x 這個a表示全部,x則是權限符號,使用此命令能讓此目錄的所有者、所屬組和其他用戶都擁有x權限:

技術分享


chmod a-x則效果相反,可以把x命令全部去掉:

技術分享

除此之外還可以使用chmod u-xchmod g-xchmod o-xchmod u+xchmod +xchmod o+x


更改所有者和所屬組chown

chownchange owner的縮寫,此命令可以更改文件的所有者和所屬組,passwd文件裏可以查看系統有哪些用戶:

技術分享


更改某個文件的所有者:

技術分享


chown命令同時更改用戶和所屬組的用法:chown 用戶:組 文件,需要在中間用冒隔開:

技術分享


chown命令更改所屬組的用法:chown :組 文件,用戶名不寫即可:

技術分享


chown命令加了-R選項後,目標目錄的子目錄和文件的用戶和所屬組都會隨著目標目錄更改:

技術分享


chgrpchange group的縮寫,此命令可以更改某個文件所屬組:

技術分享



umask命令:

在創建了文件和目錄後,會發現文件的默認權限是644,而目錄默認權限是755,系統有個概念叫umask,運行這個umask命令能看到用戶的umask值,通過這個值就可以確定文件和目錄的默認權限是什麽:

技術分享

技術分享


更改umask值就可以更改文件和目錄的默認權限,更改了umask值就能發現文件和目錄的默認權限和之前不一樣了:

技術分享

技術分享


更改了umask值為0002後(一般看作002),文件的默認權限變成了664,目錄默認權限變成了775。因為目錄是必須有權限的,不然無法進入、打開目錄,這其中是有規律可循的。

umask值為偶數的計算公式:

777 - umask= 目錄的默認權限

666 - umask= 文件的默認權限

例如:

技術分享


umask值為奇數的計算公式:

umask值為奇數的情況要一位一位的減,- 的值為0,不能使用偶數的計算方式計算:

技術分享


隱藏權限lsattr/chattr

chattr是設置隱藏權限的命令,例如把123.txt修改一下:

技術分享

技術分享


修改完後編輯一下這個文件,會發現有個紅字提示說你正在更改只讀文件。即便是編寫了內容想要保存退出或者強制保存退出也是不能成功的:

技術分享


這時候查看這個文件的詳情也會發現沒有寫入權限:

技術分享


lsattr命令就是用來查看這種文件的權限的:

技術分享


這個i權限不僅不能編輯這個文件,而且刪除和重命名還有創建也不可以。

減掉i權限要使用chattr -i命令:

技術分享


除了i權限之外還有一個常用的權限是a權限,這個權限只能追加和創建,不能刪除、重命名還有不能更改文件內容:

技術分享


同樣的-a可以減掉a權限:

技術分享


lsattr只能查看目標目錄的子目錄,要加-d選項才能查看目標目錄本身:

技術分享


使用chattr 命令給一個目錄加上i權限的話,那麽此目錄下的子目錄和文件都不能刪除和重命名,當然創建文件或目錄也不可以,但是裏面的文件內容可以編輯、追加:

技術分享


使用chattr 命令給一個目錄加上a權限的話,此目錄下的子目錄和文件都不能刪除和重命名,但是創建目錄和文件是可以的,同樣的裏面的文件內容可以編輯、追加:

技術分享


lsattr-R選項可以查看到所有的目錄下的多層子目錄:

技術分享


lsattr-a可以看到隱藏文件:

技術分享



本文出自 “12831981” 博客,請務必保留此出處http://12841981.blog.51cto.com/12831981/1972123

Linux文件和目錄權限:chmod、更改所有者和所屬組:chown,umask命令,隱藏權限:lsattr/chattr