linux菜鳥基礎學習 (三) 文件權限

文件權限

1.文件屬性的查看

練習:
ls 查看當前目錄下的文件和目錄
ls -l 查看當前目錄下的文件和目錄屬性
ll 查看當前目錄下的文件和目錄屬性
stat test 查看文件或者目錄的詳細信息

linux菜鳥基礎學習 (三)  文件權限

ls -l filename
-|rw-r--r--.|1| root| root| 46 |Oct 1 05:03 |filename
— ————————— — ———— ———— —— ———————————— ————————
1 2 3 4 5 6 7 8

1."-":文件類型

  • ##普通文件
    d ##目錄
    c ##字符設備
    s ##套接字
    p ##管道
    b ##快設備
    l ##連接

2."rw-r--r--":文件讀寫權限
rw-|r--|r--

  • $ @

*所有人的權限
$所有組的權限
@其他人的權限

3."1":
對文件:文件內容被系統記錄的次數
對目錄:目錄中文件屬性的字節數

4."root":文件所有人

5."root":文件所有組

6."46":文件內容的大小

7."Oct 1 05:03":文件最後一次被修改的時間

8."filename":文件名字

2.文件所有人所有組的管理

chown username file|dir ##更改文件的所有人
chown username.groupname file|dir ##更改所有人所有組
chown -R username dir ##更改目錄本身及裏面所有內容的所有人
chgrp -R groupname dir ##更改目錄本身及裏面所有內容的所有組

監控命令
watch -n 1 ls -lR /mnt

linux菜鳥基礎學習 (三)  文件權限

3.文件普通權限

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權限

linux菜鳥基礎學習 (三)  文件權限

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=---

linux菜鳥基礎學習 (三)  文件權限

4.系統默認權限的設定

從系統存在角度來說,開放權力越大,系統存在意義越高
從系統安全角度來說,開放權力越少,系統安全性越高
所以系統設定新建文件或目錄會去掉一些權限
設定方式
umask 權限掩碼,系統默認是022
文件默認權限=666-umsak;666 -022 = 644 rw-r--r--
目錄默認權限=777-umask;777 -022 = 755 rwxr-xr-x
umask ##查看系統保留權限默認爲022
umask 077 ##修改該系統保留權限爲077,此設定爲臨時設定,只當前shell中生效
umask 000 設置umask只能暫時設置,關閉終端後失效.

linux菜鳥基礎學習 (三)  文件權限

永久設定方式:
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/profile ##系統
59 if [ $UID -gt 199 ] && [ "id -gn" = "id -un" ]; then
60 umask 002 ##普通用戶umask
61 else
62 umask 077 ##超級用戶umask
63 fi

linux菜鳥基礎學習 (三)  文件權限

linux菜鳥基礎學習 (三)  文件權限

以上兩個文件umask設定值必須保持一致
source /etc/bashrc
source /etc/profile
讓設定立即生效

linux菜鳥基礎學習 (三)  文件權限

5.文件的訪問控制(acl列表)

1.acl定義
理解:類似於qq用戶會員,通過修改acl列表,將qq普通用戶賦予特殊權限成qq會員。
作用:某個用戶既不屬於使用者也不屬於所屬的組,想賦予他某些權限,修改other全都修改了,所以需要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 能看到的權限是假的

linux菜鳥基礎學習 (三)  文件權限

2設定acl列表

###設定##
setfacl -m <u|g>:<username|groupname>:權限 文件|目錄
-m #設定
u #用戶
g #組

setfacl -m u:student:student:rwx file
當student 屬於other,不是擁有者或者組的時候,添加student用戶訪問file文件的rwx權限

linux菜鳥基礎學習 (三)  文件權限

setfacl -m d:u:student:rwx test
當student 屬於other,不是擁有者或者組的時候,添加student用戶訪問test目錄的rxx權限

linux菜鳥基礎學習 (三)  文件權限

##刪除列表中的用戶或者組####
setfacl -x <u|g>:<username|groupname> 文件|目錄

##關閉列表
setfacl -b 文件|目錄

####acl 默認權限######
當我們需求某個目錄對於student可寫,並且目錄中新建的子目錄對student也可寫
就要設定默認默認權限

注意: 默認權限只對目錄中新建立的文件或者目錄生效,對已經建立的文件無效,對於目錄本身也無效.

setfacl -m d:u:student:rwx /westos

練習:
##要用student用戶進行測試,所以在/mnt目錄下新建test目錄和file文件。
cd /mnt
mkdir test
touch file
setfacl -m u:student:rwx file
當student 屬於other,不是擁有者或者組,添加student用戶訪問file文件的rwx權限
getfacl file
#file: file
#owner: root
#group: root
user::rw-
user:student:rwx
group::---
mask::rwx
other::---
setfacl -m d:u:student:rwx test
#file: root
#owner: root
#group: root
user::rwx
user:student:rwx
group::r-x
mask::rwx
other::r-x
##測試student用戶可否對/mnt下的目錄進行rwx操作
su -student
cd /mnt
cd test
當你以student用戶的身份進入/mnt/test下建立文件或者目錄時發現沒有權限,明明給student設置了權限rwx。這是因爲setfacl -m d:u:student:rwx test
對當前目錄不生效,只對設置權限的目錄裏的文件和目錄生效。

linux菜鳥基礎學習 (三)  文件權限

linux菜鳥基礎學習 (三)  文件權限

6.特殊權限

1.suid ##冒險位
之針對二進制可執行文件,
文件內記錄的程序產生的進程的所有人爲文件所有人
和進程發起人身份無關

設定方式:
chmod u+s file
suid=4
chmod 4xxx file

linux菜鳥基礎學習 (三)  文件權限

2.sgid ##強制位
對文件:只針對二進制可執行文件,
任何人運行二進制文件
程序時程序產生的進程的所有組都是文件的所有組
和程序發起人組的身份無關
對目錄:當目錄有sgid權限後,目錄中新建的所有文件的所有組
都自動歸屬到目錄的所有組之中,和文件建立者所在的組無關

設定方式:

chmod g+s file|dir
sgid=2
chmod 2xxx file|dir

linux菜鳥基礎學習 (三)  文件權限

linux菜鳥基礎學習 (三)  文件權限

3.sticky ##粘制位
t權限:
只針對與目錄,當一個目錄上有t權限,那麼目錄中的文件只能被文件的擁有者刪除
理解:房子裏所有人可以做自己的事情,但是隻能動自己的東西,不能動別人的東西
設定方式:
chmod o+t direcotry
chmod 777 /pub/ 賦予所有人有對目錄pub所有的權力,不是文件擁有者也可以刪除文件
chmod o+t /pub/ pub 目錄裏的文件只能被文件的擁有者刪除
t=1
chmod 1777 direcotry

linux菜鳥基礎學習 (三)  文件權限

linux菜鳥基礎學習 (三)  文件權限

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章