linux-許可權設定
-
為什麼需要許可權管理
計算機資源有限,我們需要合理的分配計算機資源。
Linux是一個多使用者系統,對於每一個使用者來說,個人隱私的保護是十分重要的。由於Linux的一切皆檔案的基本思想,對於許可權的管理更多的則體現在管理檔案許可權上。為了方便的指派許可權,在Linux中定義了檔案屬主,檔案屬組,其他人這三類人的許可權。
對於計算機來說,這三類都是一個識別符號。 -
檔案的許可權
通過 ls 命令我們可以看到檔案的具體許可權資訊。
drwxrwxr-x 2 wa wa 2020 Sep 27 15:29 .
drwxrwxr-x 5 wa wa 2020 Sep 227 16:38 …
-rw-rw-r-- 1 wa wa 0 Jun 5 02:29 file
將檔案的具體許可權可以分成八個內容來看
d | rwxrwxr-x| 2 | wa | wa| 2020| Sep2715:29 | file
[1] [2] [3] [4] [5] [6] [7] [8]
[1]檔案的型別
- ##空文字
d ##目錄
l ##軟連線
s ##socket套接字
b ##block塊裝置
c ##字元裝置
[2]檔案許可權資訊
rwx |rwx |r-x
檔案許可權資訊一共有9位,每3位一組,分別表示屬主,屬組,其他人的許可權資訊
許可權:r w x
對於檔案:
r:可讀,可以使用cat等命令檢視檔案內容
w:可寫,可以進行編輯修改,或刪除操作
x:可執行,可以在命令提示符下當做命令提交給核心執行
對於目錄:
r:可以對此目錄執行ls命令,列出內部所有檔案
w:可以在此目錄下建立檔案
x:可以使用cd命令切換進此目錄,也可以使用ls -l命令檢視內部檔案的詳細資訊
對於目錄來說,一般會有執行許可權,而對於檔案來說,一般預設沒有執行許可權。
[3]
對檔案:檔案硬連結個數
對目錄:目錄中子目錄的個數(不是檔案)
[4]
檔案所屬人
[5]
檔案所屬組
[6]
對檔案:檔案的大小
對目錄:目錄中子檔案元資料的大小
[7]
檔案內容被修改時間
[8]
檔名稱
修改檔案的所有人和所有組
chown username file|dir 修改使用者 chown user.group file|dir 修改組 chown -R user.group dir chgrp group file|dir charg -R group dir
示例:
修改檔案的許可權的方式
chmod <u|g|o><+|-|=><r|w|x> file|dir
有一種比較方便的修改方法,直接加二進位制數字。
|r |w |x
4 2 1
chomd 542 file ##意思就是 u(r-x) g(r--) o(-x-)
- umask 系統建立時預設保留的權力
當你建立一個新的檔案或目錄時,該檔案或目錄有預設許可權。umask的分數指的是該預設值需要減掉的許可權,在預設許可權的屬性上,目錄與檔案是不一樣的,檔案最大的許可權是666,目錄最大許可權是777。
-
臨時修改:umask值
umask 077 ##臨時設定系統預留許可權為077
-
永久修改:umask值
vim /etc/profile ##永久修改每個使用者建立檔案的umask值(系統配置檔案)
vim /etc/bashrc ##永久修改bash裡建立檔案的umask值(shell配置檔案)
source /etc/profile ##讓更改立即生效
source /etc/bashrc
注意:想要永久性的修改umask值,一定要重新讀取倆個配置檔案後,才能生效。
- 特殊許可權
- sticky粘制位
作用:
只針對目錄生效,當一個目錄上有sticky許可權時,所有使用者在該目錄下均可建立檔案,但只有檔案所有人刪除該目錄下的檔案。
設定方式:
chmod o+t dir
chmod 1xxx dir(1777)
- sgid 強制位
作用:
對檔案:只針對二進位制可執行檔案,當檔案上有sgid時,任何人執行此檔案產生的程序都屬於檔案的組
對目錄:當目錄上有sgid時,任何人在此目錄中建立的檔案都屬於目錄的所有組
設定方式:
chmod g+s file|dir
chmod 2xxx file|dir
- suid 冒險位
作用:
只針對二進位制可執行的檔案,當檔案上有suid時任何人執行這個檔案中的程式產生的程序都屬於檔案的所有人。
設定方式:
chmod u+s file
chmod 4xxx file
- 檔案訪問控制列表 ACL
- 作用:
讓特定的使用者對特定的檔案擁有特定的許可權 - acl列表檢視
-rw-rwxr–+ 1 root root 0 Oct 1 11:11 file - acl開啟
getfacl file ##檢視acl開啟的檔案的許可權
file:file ##檔名稱
owner: root ##檔案所有者
group:root ##檔案所有組
user ::rw- ##檔案所有人的許可權
user:tom:rwx ##指定使用者的許可權
group::r-- ##檔案所有組的許可權
mask::rwx ##能賦予使用者的最大權力閾值
other::r-- ##其他人的許可權
-
acl列表的管理
setfacl -m u:username:rwx file ##設定username對file擁有rwx許可權
setfavl -m g:group:rwx file ##設定的group組成員對file擁有的rwx許可權 -
mask值
在許可權列表中mask表示能生效的權力值,當用chmod減小開啟acl的檔案時,mask值會發生變化
chmod g-w westos ##看到減掉的mask值
恢復mask值:
setfacl -m m:rwx westos (westos是組)
-
acl預設許可權只針對目錄設定
setfacl -m d:u:student:rwx/mnt/westos
注意:
acl許可權只針對設定完成之後新建立的檔案或目錄生效,而已經存在的檔案是不會繼承預設許可權的