學習文件和目錄的權限管理,不僅在學習上對我們的幫助很大,而且在工作上幫助也很大,因為你對文件或目錄設置了權限,其他用戶只能根據你設置的權限對文件或目錄進行瀏覽,修改,刪除或執行,也正是如此,權限的管理很重要。下面我就對Linux的權限管理進行簡單的介紹。
Linux下的文件類型
-:普通文件
d:目錄文件
b : 塊設備
c : 字符設備
l : 符號鏈接文件
p : 管道文件pipe
s : 套接字文件socket
文件屬性
文件權限
文件的權限主要針對三類對象進行定義:
owner: 屬主, u
group: 屬組, g
other: 其他, o
每個文件針對每類訪問者都定義了三種權限:
r 讀(read) 4
w 寫 (write)2
x 執行 (execute) 1
— 000 0
–x 001 1
-w- 010 2
-wx 011 3
r– 100 4
r-x 101 5
rw- 110 6
rwx 111 7
三種普通權限分別在文件和目錄中顯示的含義不同
文件:
r: 可以查看文本中的內容
w: 可修改其內容,但不能刪除文件本身
x: 針對二進制和腳本
目錄:
r: 可以使用ls 查看此目錄中文件列表,但不能訪問文件,不能cd,也不能查看文件的元數據。
w: 可在此目錄中創建文件,也可刪除此目錄中的文件(只一個w什么也做不了)
x: 可以進入dir,也可以訪問dir中文件。(你要對目錄進行訪問,一般都要給r和x權限,或者都不給。)
X:大X是只給目錄x 權限,不給文件x 權限(如果文件本身就帶有x 權限,它就給)X只使用在目錄上。
修改文件權限
chmod [OPTION]… OCTAL-MODE FILE…
-R: 遞歸修改權限
chmod [OPTION]… MODE[,MODE]… FILE…
MODE: :
修改一類用戶的所有權限:
u= g= o= ug= a= u=,g=
修改一類用戶某位或某些位權限
u+ u- g+ g- o+ o- a+ a- + –
新建文件和目錄的默認權限
umask值可以用來保留在創建文件權限
新建FILE 權限: 666-umask 有奇數加一 , 偶數保留。
新建DIR 權限: 777-umask
如:
umask 125
666 110 110 110 777 111 111 111
125 001 010 101 125 001 010 101
642 110 100 010 652 110 101 010
一般默認為非特權用戶umask是 002
root 的umask 是 022
umask: 查看
umask #: 設定
umask 002
umask –S 模式方式顯示 (新建文件夾的默認)
umask –p 輸出可被調用 ,打印出來,
umask的配置文件,全局設置: /etc/bashrc 用戶設置:~/.bashrc或~/.bash_profile
修改umask值只當前終端有效,關機或重啟umask值將重認為是默認值,修改umask值,想一直有效,只有修改它的配置文件才可以永久生效。
安全上下文
前提:進程有屬主和屬組;文件有屬主和屬組
(1) 任何一個可執行程序文件能不能啟動為進程:取決發起者對程序文件是否擁有執行權限
(2) 啟動為進程之后,其進程的屬主為發起者;進程的屬組為發起者所屬的組
(3) 進程訪問文件時的權限,取決于進程的發起者
(a) 進程的發起者,同文件的屬主:則應用文件屬主權限
(b) 進程的發起者,屬于文件屬組;則應用文件屬組權限
(c) 應用文件“其它”權限
特殊的文件權限
s suid 4
s sgid 2
t sticky 1
SUID SGID STICKY
000 0
001 1
010 2
011 3
100 4
101 5
110 6
111 7
權限位映射
SUID: user, 占據屬主的執行權限位(root沒有執行權限,也能想干啥就干啥)
u+s 非常危險,不要輕易改動 , suid 只對二進制程序生效,如果不取消,會一直生效。
s: 屬主擁有x 權限
S:屬主沒有x 權限
權限設定:
chmod u+s FILE… (給屬主 s 的權限)
chmod u-s FILE… (取消給屬主的 s 權限)
SGID: group, 占據屬組的執行權限位(root組沒有x(執行權限),即使g+s也執行不了,root組有x,s,但對同屬一個組的二進制程序,這個二進制程序對組有什么權限,那么用戶就可以執行什么權限 )
(sgid :也可以作用于目錄上,將使在該目錄中新建文件或目錄將自動繼承該目錄所屬組。)
目錄上的SGID 權限
默認情況下,用戶創建文件時,其屬組為此用戶所屬的主組。
一旦某目錄被設定了SGID,則對此目錄有寫權限的用戶在此目錄中創建的文件所屬的組為此目錄的屬組。
通常用于創建一個協作目錄。
權限設定:
chmod g+s DIR… (給和屬主同一個屬組中的其他用戶 s 權限)
chmod g-s DIR… (取消給和屬主同一個屬組中的其他用戶的 s 權限)
s: group 擁有x 權限
S:group 沒有x 權限
當u+s和g+s都存在時只繼承一個權限, 優先繼承u+s,
Sticky 位
具有寫權限的目錄通常用戶可以刪除該目錄中的任何文件,無論該文件的權限或擁有權。
在目錄設置Sticky 位,只有文件的所有者或root可以刪除該文件。
Sticky: other, 占據other 的執行權限位(作用在目錄上,o+t后其他用戶只能在目錄中創建文件,不能刪除其他用戶的文件,只能刪除用戶本身建的文件)
權限設定:
chmod o+t DIR…
chmod o-t DIR…
t: other 擁有x 權限
T:other 沒有x 權
在工作或學習中,可能會不小心操作失誤刪除掉某些重要的文件,給我們造成一點損失,現在我給大家介紹一個可以讓我們能夠避免這種失誤的命令,它就是chattr命令,chattr是給文件設置特定的屬性,下面我來給大家介紹一下這個命令的使用。
chattr +A 鎖定時間的屬性2
chattr -A 解除+A的鎖定
lsatter 顯示特定屬性
chattr +i 不能更改
chattr -i 去掉 +i 的屬性
chattr +a 只能增加
chattr -a 去掉 +a 的屬性
原創文章,作者:AN0519,如若轉載,請注明出處:http://www.www58058.com/31169
文章整體思路清晰,通過模擬場景對特殊權限應用場景有有了深刻的理解和認識,