![高級檔案權限以及如何正確讀取它們](https://rvso.com/image/178500/%E9%AB%98%E7%B4%9A%E6%AA%94%E6%A1%88%E6%AC%8A%E9%99%90%E4%BB%A5%E5%8F%8A%E5%A6%82%E4%BD%95%E6%AD%A3%E7%A2%BA%E8%AE%80%E5%8F%96%E5%AE%83%E5%80%91.png)
alisto@ubuntu:/projects/solarproj$ \ls -al
total 32
drwxrwsr-t 3 root solarproj 4096 Dec 8 16:02 .
drwxr-xr-x 3 root root 4096 Dec 8 15:29 ..
-rw-rw---- 1 boband boband 802 Dec 8 15:44 bearings.jpg
-rw-rw-r-- 1 boband solarproj 101 Dec 8 15:43 controller.c
drwxrwSr-x 2 alisto solarproj 4096 Dec 8 15:40 old
-------rwx 1 alisto solarproj 19 Dec 8 14:08 power
-rw-r--r-- 1 alisto solarproj 81 Dec 8 15:44 schedule.txt
-rw----r-- 1 boband solarproj 576 Dec 8 15:58 temp
lrwxrwxrwx 1 alisto solarproj 24 Dec 8 16:02 temp.sym -> ../solarproj/temp
兩個用戶都屬於 Solarproj 群組
Bob 可以更改文件中的內容
schedule.txt
嗎?為什麼?如果我正確地閱讀了這篇文章,答案是否定的,因為群組設定為僅讀取。
Alice 可以刪除該檔案
controller.c
嗎?為什麼?該檔案提供了讀寫權限,但由於黏性位,她無法刪除它/不太確定她
哪些使用者可以讀取該檔案
power
?為什麼?不屬於群組或 Alisto 的所有其他用戶
為什麼Alice可以列出old目錄中的內容,而Bob卻不能?
由於群組權限上的 S,x 不存在
Alice 可以讀取該檔案
temp.sym
嗎?為什麼?不,因為她不被允許。
我不知道我的答案是否正確,如果有人可以糾正我的錯誤答案並為我提供一些幫助,我會很高興。我很想測試一下並親眼看看,但我的虛擬機無法正常工作,我需要為幾天後即將進行的測試進行學習,然後再試一次!
答案1
當使用命令顯示權限時ls
,它遵循一定的結構。讓我們來看一個例子:
-rw-rw-r--
這第一的字元表示文件類型,稱為檔案描述符,接下來的三個字符表示創建該檔案的使用者的權限,下一組三個字符指示使用者群組的權限,以及最後三個字符指示其他人的權限。
在這個例子中:
- 這第一的字符,稱為文件描述符,指示文件的類型。在本例中
-rw-rw-r--
,它是開頭的破折號。 - 這接下來的三個字符指示建立該文件的使用者的權限。在這種情況下
-rw-rw-r--
,是的rw-
。 - 這接下來的三個字符指示前面提到的使用者群組的權限。
- 這最後三個字符顯示其他人的權限。
第一個字元或檔案描述符,一個破折號 ( -
),表示這只是一個普通檔案。另一方面,如果這是目錄的權限,則它將是單一權限d
。文件描述符可能值的非完整列表:
d
- 一個目錄-
- 一個「普通」文件l
- 符號連結s
- UNIX 套接字p
- 一條管道
其他三組三個字元遵循結構[read][write][exec]
,其中每個括號包含一個字元。
因此,在我們的範例中-rw-rw-r--
:
- 建立該文件的使用者的權限是
rw-
.這樣用戶可以讀取和寫入文件,但不能執行它。 - 使用者群組的權限也是
rw-
,這意味著該使用者群組也可以對其進行讀寫。 - 其他人的權限是
r--
;這意味著其他人只能讀取該文件,而不能寫入或執行它。
那麼,對於你的問題:
Bob 可以更改檔案schedule.txt 中的內容嗎?為什麼?
如果我正確地閱讀了此內容,答案是否定的,因為群組設定為僅讀取
-rw-r--r-- 1 alisto solarproj 81 Dec 8 15:44 schedule.txt
你是對的。boband
是該群組的一部分solarproj
,因此他的權限是r--
,這意味著他只能讀取該文件,而不能更改它。
Alice可以刪除檔案controller.c嗎?為什麼?
該檔案提供了讀寫權限,但由於黏性位,她無法刪除它/不太確定她
-rw-rw-r-- 1 boband solarproj 101 Dec 8 15:43 controller.c
是的她可以。她的權限是rw-
因為她是 Solarproj 群組的一部分,所以可以更改文件,包括刪除它。
哪些使用者可以讀取電源檔案?為什麼?
不屬於群組或 Alisto 的所有其他用戶
-------rwx 1 alisto solarproj 19 Dec 8 14:08 power
再說一遍,正確。只有 1) 不在該solarproj
群組中且 2) 不在該群組中的使用者alisto
才能夠讀取、變更或執行該檔案。
為什麼Alice可以列出old目錄中的內容而Bob卻不能?
由於群組權限上的 S,x 不存在
drwxrwSr-x 2 alisto solarproj 4096 Dec 8 15:40 old
沒有。表示S
該文件是執行檔和setguid 位元已設定。
Alice 可以讀取檔案 temp.sym 嗎?為什麼?
不,因為她不被允許
-rw----r-- 1 boband solarproj 576 Dec 8 15:58 temp
lrwxrwxrwx 1 alisto solarproj 24 Dec 8 16:02 temp.sym -> ../solarproj/temp
正確的。temp.sym
點文件temp
; whilealisto
可以讀取temp.sym
, 因為它指向temp
, 其中alisto
不能讀完後,她將被拒絕許可。