權限管理:
程序安全上下文: 程序對檔案的通路權限應用模型:
程序的屬主與檔案的屬主是否相同,如果相同,則應用屬主權限,否則則檢查程序的屬主(發起者)是否屬于檔案的屬組,如果是,則應用屬組權限,否則,就隻能應用other的權限
權限:
r:readable,讀
w:writeable,寫
x:excuteable,執行
檔案:
r:可擷取檔案的資料
w:可修改檔案的資料
x:可将此檔案運作為程序
目錄:
r:可使用ls指令擷取其下的所有檔案清單
w:可修改此目錄下的檔案清單,即建立或删除檔案
x:可cd至此目錄中,且可使用ls -l 來擷取所有檔案的詳細屬性
mode:rwxrwxrwx
ownership:user,group
權限管理指令
- chmod指令
- chmod [OPTION]... MODE[,MODE]... FILE..
- chmod [OPTION]... OCTAL-MODE FILE...
- chmod [OPTION]... --reference=RFILE FILE...
- chmod [OPTION]... MODE[,MODE]... FILE...
MODE表示法:
賦權表示法:直接操作一類使用者的所有權限為rwx
u=
g=
o=
a=
授權表示法:直接操作一類使用者的一個權限rwx
u+
g+
o+
a+
chmod [OPTION]... OCTAL-MODE FILE... (octal=八進制)
數字表示
chmod [OPTION]... --reference=RFILE FILE...
--reference=RFILE 類似改檔案權限
選項:
-R --recursive:遞歸修改
注意:使用者僅能修改屬主為自己的那些檔案的權限
- 從屬關系管理指令:chown,chgrp
chown指令:
chown [OPTION]... [OWNER][:[GROUP]] FILE...
chown [OPTION]... --reference=RFILE FILE...
選項:
-R 遞歸修改
- chgrp指令:
- chgrp [OPTION]... GROUP FILE...
chgrp [OPTION]... --reference=RFILE FILE...
注意:僅管理者可修改檔案的屬主和屬組
思考:使用者對目錄有寫權限,但對目錄下的檔案沒有寫權限,能否修改此檔案内容,能否删除檔案
umask:檔案的權限反向掩碼,遮罩碼
檔案: 666-umask 目錄: 777-umask
注意:之是以檔案用666去減,表示檔案預設不能擁有執行權限,如果減得的結果加1
umask:023
666-023=644
777-023=754
umask指令:
umask:檢視目前umask
umask UMASK:設定umask
注意:此類設定僅對目前shell程式有效
練習:完成以下任務 1. 建立系統組mariadb,建立系統使用者mariadb屬于mariadb組,要求其沒有家目錄,且shell為/sbin/nologin,嘗試root切換至使用者,檢視其指令提示符
- 複制目錄/var/log 至 /tmp/目錄,修改/tmp/log及其内部的所有檔案的屬組為mageedu,并讓屬組對目錄本身擁有寫權限
- install指令: install - copy files and set attributes (copy并設定屬性)
單源複制:
install [OPTION]... [-T] SOURCE DEST
多源複制
install [OPTION]... SOURCE... DIRECTORY
install [OPTION]... -t DIRECTORY SOURCE...
建立目錄
install [OPTION]... -d DIRECTORY...
常用選項:
-m --mode:設定目标檔案權限,預設為755
-o --owner=OWNER:設定檔案屬主
-g --group=GROUP:設定檔案屬組
- mktemp指令:建立臨時檔案或目錄
mktemp [option] [template] mktemp /etc/temp.XXXX(随機生成)
常用選項:
-d:建立臨時目錄
-u:提示但并不建立
注意:mktemp會将建立的臨時檔案名直接傳回,是以,可直接通過指令引用儲存起來