1.文件屬性的查看
ls -l filename
-|rw-r--r--. |1| root | root| 46 |Oct 1 05:03 |filename
- ———— - —— —— —— ———— ————
1 2 3 4 5 6 7 8
s##套節字
b##塊設備
c##字符設備
創建一個文件後,ls -l file查出的文件屬性如下圖所示。
(1)”-“:文件類型
- ##普通文件
d ##目錄
c ##字符設備
s ##套接字
p ##管道
b ##快設備
l ##連接
(2)”rw-r–r–”:文件讀寫權限
rw-|r--|r--
* $ @
r:ls
w:刪除
x:cd
*所有人的權限
$所有組的權限
@其他人的權限
(3)”1”:
對文件:文件內容被系統記錄的次數
對目錄:目錄中文件屬性的字節數(子目錄的個數)
(4)”root”:文件所有人
(5)”root”:文件所有組
(6)”46”:文件內容的大小
##對於目錄表示(元數據文件屬性)的大小
(7)”Oct 1 05:03”:文件最後一次被修改的時間
(8)”filename”:文件名字
2.文件所有人所有組的管理
chown username file|dir ##更改文件的所有人
chown username.groupname file|di ##更改所有人所有組
chown -R username dir ##更改目錄本身及裏面所有內容的所有人
chgrp -R groupname dir ##更改目錄本身及裏面所有內容的所有組
監控命令:watch -n 1 ls -lR /mnt
監控文件file,然後使用chown username.groupname file,得到的結果如下圖所示。
新建目錄linux,並進行監控,然後使用chown -R 和chgrp -R修改目錄的所有人和所有組。如下圖所示。
3.文件普通權限
rw-|r--|r--
u g o
u:文件所有人對文件可以讀寫
g:文件組成員對文件可讀
o:其他人對文件可讀
u優先匹配,g次優先,o當u,g不匹配時匹配
(1)r
對文件:可以查看文件中的字符
對目錄:可以查看目錄中文件的信息
(2)w
對文件:可以更改文件內字符
對目錄:可以在目錄中添加刪除文件
(3)x
對文件:可以運行文件內記錄的程序動作
對目錄:可以進入目錄中
(4)字符方式修改該文件權限
chmod [-R] <u|g|o><+|-|=><r|w|x> file|dir
chmod u-x file1 ##file1擁有者去掉x權限
chmod g+w file1 ##file1擁有組添加w權限
chmod u-x,g+w file1 ##file1擁有者去掉x權,file1擁有組添加w權限
chmod ugo-r file2 ##file2的用戶組其他人去掉r權限
chmod ug+x,o-r file3 ##file3用戶和組添加x權限,其他人去掉r權限
使用字符方式修改文件file權限,如下圖所示。
(5)數字方式修改該文件權限
在linux中
r=4
w=2
x=1
文件權限數字表示方式
rw-|r--|r--
u g o
u=rw-=4+2+0=6
g=r--=4+0+0=4
o=r--=4+0+0=4
所以文件權限表示爲644
chmod 修改後權限值 file
chmod 777 file
7=rwx
6=rw-
5=r-x
4=r--
3=-wx
2=-w-
1=--x
0=---
使用數字方式修改文件權限,如下圖所示。
4.系統默認權限的設定
從系統存在角度來說,開放權力越大,系統存在意義越高;從系統安全角度來說,開放權力越少,系統安全性越高。所以系統設定新建文件或目錄會去掉一些權限。
設定方式:
umask ##查看系統保留權限默認爲022
umask 077 ##修改該系統保留權限爲077,此設定爲臨時設定,只當前shell中生效
如下圖所示,直接輸入umask可查看系統保留權限,umask 077則修改該系統保留權限爲077
永久設定方式:
vim /etc/bashrc ##shell
70 if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then
71 umask 002 ##普通用戶umask
72 else
73 umask 077 ##超級用戶umask
74 fi
執行 vim /etc/bashrc,進入文件進行修改,如下圖所示。
vim /etc/profile ##系統
59 if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then
60 umask 002 ##普通用戶umask
61 else
62 umask 077 ##超級用戶umask
63 fi
執行 vim /etc/profile,進入文件進行修改,如下圖所示。
以上兩個文件umask設定值必須保持一致
source /etc/bashrc
source /etc/profile
讓設定立即生效
如下圖所示。
5.文件的訪問控制(acl列表)
(1)acl定義
acl = access control
指定特殊用戶對特殊文件有特殊權限
drwxrwx---+ 2 root root 17 Jul 18 01:39 /westos/
^
表示/westos目錄時有權限列表
getfacl /westos/
file: westos/ ##文件名稱
owner: root ##文件所有人
group: root ##文件所有組
user::rwx ##擁有者權限
user:student:rwx ##特殊用戶權限
group::--- ##組權限
mask::rwx ##權限掩碼
other::--- ##其他人權限
注意:當文件上有權限列表時,ls -l 能看到的權限是假的
(2)設定acl列表
設定方法爲:
setfacl -m <u|g>:<username|groupname>:權限 文件|目錄
-m #設定
u #用戶
g #組
d ##默認設定權限,只對該目錄內新建的文件和目錄有效,對本目錄及目錄內原有的文件和目錄無效。
如下圖所示,setfacl這隻acl列表後,ls -l 查詢文件權限,權限中帶有+,此時應使用getfacl 文件名,可查看文件詳細完整的權限(ls -l查詢的權限是不完整的)。
(3)刪除列表中的用戶或者組
setfacl -x <u|g>:<username|groupname> 文件|目錄
刪除列表中的用戶,在使用getfacl查看就發現列表中沒之前添加的用戶了。如下圖所示。
關閉列表
setfacl -b 文件|目錄
如下圖所示。
6.acl mask值
(1)mask 權限掩碼
mask用來標實能夠賦予用戶最大權限
當用chmod改變文件普通權限時可能會被破壞
修復
setfacl -m m:rwx 文件名稱
用戶westos的權限是rwx,設定mask爲rw,getfacl則提示westos的有效權限爲rw。如下圖所示。
(2)acl 默認權限
當我們需求某個目錄對於student可寫,並且目錄中新建的子目錄對student也可寫
就要設定默認默認權限
setfacl -m d:u:student:rwx /westos
注意:
默認權限只對目錄中新建立的文件或者目錄生效,對已經建立的文件無效,對於目錄本身也無效
如下圖所示,對目錄linux設置默認權限後,切換到westos用戶,刪除linux中原有的文件時,系統報錯:無權限。
7.特殊權限
(1)suid ##冒險位
只針對二進制可執行文件,文件內記錄的程序產生的進程的所有人爲文件所有人,和進程發起人身份無關
suid=4
設定方式:
chmod u+s file
或
chmod 4xxx file
如下圖所示,設置suid權限後,切換到student用戶可使用touch新建文件。
如下圖所示,去掉suid權限後,切換到student用戶使用touch新建文件系統報錯:無權限。
(2)sgid ##強制位
對文件:只針對二進制可執行文件,任何人運行二進制文件程序時程序產生的進程的所有組都是文件的所有組,和程序發起人組的身份無關
對目錄:當目錄有sgid權限後,目錄中新建的所有文件的所有組都自動歸屬到目錄的所有組之中,和文件建立者所在的組無關
sgid=2
設定方式:
chmod g+s file|dir
或
chmod 2xxx file|dir
如下圖所示。沒對目錄設置sgid權限,新建的文件che屬於文件建立者所在的組,即root。設置sgid權限後,新建的文件che1屬於組westos。
(3)sticky ##粘制位
t權限: 只針對與目錄,當一個目錄上有t權限,那麼目錄中的文件只能被文件的擁有者刪除
t=1
設定方式:
chmod o+t direcotry
或
chmod 1777 direcotry
如下圖所示,未設置t權限,westos可以刪除linux目錄中的文件。
如下圖所示,當設置t權限之後,westos刪除linux目錄中的文時會報錯:無權限
查看有多少個bash結尾的,bash$
查看有bash開頭的,角號bash