第6章 Linux 文件與目錄管理 練習題

什麼是絕對路徑與相對路徑。

答:絕對路徑是從根目錄"/“寫起的路徑,相對路徑是相對於當前目錄寫起的路徑,不以”/"開頭

如何更改一個目錄的名稱?例如由 /home/test 變爲 /home/test2

cd /home
mv test test2

PATH 這個環境變量的意義?

答:記錄可執行文件(命令)的路徑

umask 有什麼用處與優點?

答:umask 用於指定當前用戶在建立文件或者目錄時候的權限默認值
優點:可以動態地調整新建文件與目錄的默認權限

當一個用戶的 umask 分別爲 033 與 044,它所建立的文件和目錄的權限是什麼?

答:文件默認最大權限:(-rw-rw-rw-)
目錄默認最大權限:(drwxrwxrwx)
umask 是 033 時,
文件默認權限:(-rw-r–r--)
目錄默認權限:(drwxr–r--)
umask 是 044 時,
文件默認權限:(-rw–w--w-)
目錄默認權限:(drwx-wx-wx)

什麼是 SUID

答:當 s 這個標誌出現在用戶組的 x 權限上時,此時就被稱爲 Set GID,簡稱爲 SGID 的特殊權限,代表用戶在這個目錄下面新建文件的用戶組都會與該目錄的組名相同

當我要查詢 /usr/bin/passwd 這個文件的一些屬性時(1)傳統權限(2)文件類型與(3)文件的隱藏屬性,可以使用什麼命令來查詢

ll /usr/bin/passwd		// 查看傳統權限
file /usr/bin/passwd	// 查看文件類型
lsattr /usr/bin/passwd	// 查看隱藏屬性

嘗試用 find 找出目前 Linux 系統中,所有具有 SUID 的文件有哪些?

find / -perm -4000

找出 /etc 下面,文件大小介於 50KB 到 60KB 之間的文件,並且將權限完整地列出

find /etc -size +50k -size -60k -exec ls -l {} \;

找出 /etc 下面,文件容量大於 50KB 且文件所屬人不是 root 的文件名,且將權限完整地列出

find /etc -size +50k ! -user root -exec ls -l {} \;

找出 /etc 下面,容量大於 1500KB 以及容量等於 0 的文件

find /etc -size +1500k -o -size 0k

情景模擬題

假設系統中有兩個賬號,分別是 alex 和 arod,這兩個人除了自己用戶組之外還共同支持一個名爲 project 的用戶組。假設這兩個用戶需要共同擁有 /srv/ahome/ 目錄的使用權,且該目錄不許其他人進入查看。請問該目錄的權限設置應是什麼?請先以傳統權限說明,再以 SGID 的功能說明。

  • 目標:瞭解到爲何項目開發時,目錄最好需要設置 SGID 的權限;
  • 前提:多個賬號支持同一用戶組,且共同擁有目錄的使用權;
  • 需求:需要使用 root 的身份來進行 chmod、chgrp 等幫用戶設置好它們的開發環境纔行,這也是管理員的重要任務之一。

首先我們得要先製作出這兩個賬號的相關數據,賬號和用戶組的管理在後續我們會介紹,您這裏先照着下面的命令來製作即可:

groupadd project	// 增加新的用戶組
useradd -G project alex	// 建立 alex 賬號,且支持 project
useradd -G project arod	// 建立 arod 賬號,且支持 project
id alex				// 查看 alex 賬號的屬性
id arod				// 查看 arod 賬號的屬性

然後開始來解決我們所需要的開發環境。

  1. 首先建立所需要開發的項目目錄:
mkdir /srv/ahome
ll -d /srv/ahome
  1. 從上面的輸出結果可發現 alex 和 arod 都不能在該目錄內建立文件,因此需要進行權限與屬性的修改。由於其他人均不可進入此目錄,因此該目錄的用戶組應爲 project,權限應爲 770 才合理。
chgrp project /srv/ahome
chmod 770 /srv/ahome
ll -d /srv/ahome
  1. 實際分別以兩個用戶來測試看看,情況會是如何呢?先用 alex 建立文件,然後用 arod 去處理看看。
su - alex	// 先切換身份成爲 alex 來處理
cd /srv/ahome 	// 切換到用戶組的工作目錄去
touch abcd	// 建立一個空文件出來
exit		// 退出 alex 用戶
su - arod
cd /srv/ahome
ll abcd		// 用戶組是 alex ,因此 arod 只是其他人
exit
  1. 加入 SGID 的權限在裏面,並進行測試看看:
chmod 2770 /srv/ahome
ll -d /srv/ahome
// 測試:使用 alex 去建立一個文件,並且查看文件權限看看
su -alex
cd /srv/ahome
touch 1234
ll 1234		// 用戶組是 project , 這樣 arod 也可以修改了
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章