1. 程式人生 > >目錄與檔案許可權的設定

目錄與檔案許可權的設定

一、檔案許可權

1.目錄與檔案屬性的檢視
ls -l -d dir =ll -d dir
ls -l file =ll file
-rw-r–r--. 1 root root 0 Dec 31 09:55 file

1.“-” :檔案型別
-:##普通檔案
l:##軟連結
d:##目錄
c:##字元裝置
s:##套接檔案
p:##管道
b:##塊裝置

2.“rw-r–r--.”:目錄或檔案讀寫許可權
<1> rw- <2> r-- <3> r–
<1> :檔案擁有者擁有的權利
<2> :檔案所屬組擁有的權利
<3>:其他人擁有的權利
r:可讀 w:可寫 x:可執行

3.“1”
對檔案:檔案內容被系統記錄的次數
對目錄:二級子目錄的個數(目錄中可能有隱藏目錄)

4.“root” 檔案的擁有者

5.“root” 檔案的所屬組

6.“0” 檔案的內容大小

7.“Dec 31 09:55” 檔案最後一次被修改的時間

8.“file” 檔案的名字

二、檔案擁有者和所屬組的改變

chown username file|dir
chgrp groupname file|dir
chown username.groupname file|dir
chown -R username file|dir (遞迴)
chgrp -R groupname file|dir (遞迴)


在這裡插入圖片描述

三、檔案和目錄普通許可權

u :表示檔案或目錄擁有者
g :表示檔案或目錄的所屬組
o :表示檔案或目錄的其他人

r
對檔案:可以檢視檔案的字元(內容)
對目錄:可以檢視目錄中檔案/目錄的資訊

w
對檔案:可以更改檔案內的字元
對目錄:在目錄中增刪改查

x
對檔案:可以執行檔案中記錄的程式動作
對目錄:可以進入目錄

四、檔案擁有者,所屬組,其他人的許可權的管理

chmod ug+r file :表示給file的擁有者和所屬組新增可讀的許可權
chmod u+rw, o-r file :表示給file的擁有者新增可讀可寫的許可權,其他人取消可讀的許可權
chmod 744 file

:表示將file的擁有者,所屬組,其他人的許可權分別改為可讀可寫可執行(7=4+2+1),可讀(4),可讀(4
在這裡插入圖片描述

     (注:## r=4, w=2 ,x=1)

五、系統預設許可權的設定

系統設定新建檔案或目錄會去掉一些許可權
臨時設定
umask(普通使用者和超級使用者) # 檢視系統減掉的許可權
umask xxx #修改該系統預設許可權減掉xxx,此設定是臨時設定,只在當前shell生效
umask 421=(umask u=r,g=w,o=x)
在這裡插入圖片描述

永久設定
vim /etc/bashrc
{ 70 if [ $UID -gt 199 ] && [ “id -gn” = “id -un” ]; then
71 umask 002 #普通使用者的umask
72 else
73 umask 022 #超級使用者的umask
74 fi}

vim /etc/profile
{59 if [ $UID -gt 199 ] && [ “id -gn” = “id -un” ]; then
60 umask 077
61 else
62 umask 022
63 fi}

(注:以上兩個檔案的umask值必須保持一致)

source /etc/bashrc
source /etc/profile

    讓系統重新載入配置檔案,讓設定立即生效

六、檔案的訪問控制(acl列表)

1.acl的定義
acl=access control
指定特殊的使用者對特殊的檔案有特殊的許可權

ls -dl /home/kiosk/
drwx–x—+ 44 kiosk kiosk 4096 Dec 31 08:59 /home/kiosk/

“+”表示標示開啟了acl訪問控制列表
##注意:當檔案/目錄有許可權列表時,ls-l能看到的許可權是假的(不完整的)

acl列表許可權的檢視
getfacl /home/kiosk
在這裡插入圖片描述
#file: home/kiosk ##目錄/檔案的名稱
#owner: kiosk ##目錄/檔案 的擁有者
#group: kiosk ##目錄/檔案 的所屬組
user::rwx ##擁有者的許可權
user:qemu:–x ##acl列表中(特殊使用者)的許可權
group::— ##特殊組的許可權
mask::–x ##許可權掩碼
other::— ##其他人的許可權

2.設定acl列表
setfacl -m u:student:rwx file :表示給acl列表中對file檔案新增使用者student許可權為rwx
-m :設定
u :使用者
g :組
在這裡插入圖片描述

3.刪除列表中的使用者或組
setfacl -x u:student file
u:表示使用者
g:表示所屬組
在這裡插入圖片描述

4.關閉列表
setfacl -b file

在這裡插入圖片描述

5.acl mask的意義
mask用來標示實際能夠賦予使用者最大許可權
setfacl -m m:rw- file :表示把檔案file的acl mask更改為rw-
在這裡插入圖片描述

(注:可能:當你用chmod改變檔案普通許可權的時候可能會破壞acl mask)

6.acl的預設許可權
當我們需要普通使用者對屬於root的某個目錄擁有寫的許可權時,目錄中新建的子目錄對普通使用者生效,就要設定acl預設許可權

(注:預設許可權只對目錄中新建的目錄或檔案生效,對已經建立的目錄和檔案無效,對目錄本身也無效)

setfacl -m d:u:student:rwx /westos/ :表示給予student使用者對/westos/目錄中新建目錄有rwx的許可權
在這裡插入圖片描述
在這裡插入圖片描述

七、特殊許可權位
1.suid ##冒險位
只針對二進位制可執行檔案
檔案內記錄的程式產生程序的擁有者為檔案的擁有者
和程序的發起人沒關係
chmod u+s /usr/bin/touch == chmod 4755 /usr/bin/touch
-rwsr-xr-x. 1 root root 62432 Jan 25 2014 /usr/bin/touch
在這裡插入圖片描述
在這裡插入圖片描述
2.sgid ##強制位
對檔案:只針對二進位制可執行檔案,
任何人執行二進位制檔案程式時程式產生的程序的所屬組都是檔案的所有組
和程式發起人組的身份無關
chmod g+s /usr/bin/touch ==chmod 2755 /usr/bin/touch
在這裡插入圖片描述

對目錄:當目錄有sgid許可權後,目錄中新建的所有檔案的所有組
都自動歸屬到目錄的所有組之中,和檔案建立者所在的組無關

設定方式
chmod g+s file|dir
sgid=2
chmod 2xxx file|dir
-rwxr-sr-x. 1 root root 62432 Jan 25 2014 /usr/bin/touch

3.sticky ##粘制位
t許可權:
只針對於目錄,當一個目錄上有t許可權,那麼目錄中的檔案只能被檔案的擁有者刪除

設定方式:
chmod o+t direcotry
t=1
chmod 1777 direcotry
drwxrwxrwt. 2 root root 6 Dec 31 17:04 /pub/
在這裡插入圖片描述