Linux文件和目錄權限:chmod、更改所有者和所屬組:chown,umask命令,隱藏權限:lsattr/chattr
文件和目錄權限chmod:
我們使用ls -l可以看到文件的詳細信息,也知道第一列的第一個符號(字母)表示文件的類型,在表示文件的類型符號的後面的九個符號則表示的是文件的權限,這些權限和文件的所有者和所屬組都有關系:
文件權限有三個屬性:是否可讀用r表示、是否可寫用w表示、是否可執行用x表示。
權限可以用數字表示,r=4,w=2,x=1,-=0。rwx=(r+w+x)=7,rw-=(r+w+-)=6。
所以一個權限可以用數字這麽表示:
chmod命令:
chmod是change 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-x,chmod g-x,chmod o-x或chmod u+x,chmod +x,chmod o+x。
更改所有者和所屬組chown:
chown是change owner的縮寫,此命令可以更改文件的所有者和所屬組,passwd文件裏可以查看系統有哪些用戶:
更改某個文件的所有者:
chown命令同時更改用戶和所屬組的用法:chown 用戶:組 文件,需要在中間用冒隔開:
chown命令更改所屬組的用法:chown :組 文件,用戶名不寫即可:
chown命令加了-R選項後,目標目錄的子目錄和文件的用戶和所屬組都會隨著目標目錄更改:
chgrp是change 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