說明
我看了很多文章,沒能完全明白 Linux 目錄許可權,然後想其實可以自己窮舉一下,也就只有 64 種組合。
另外,Linux 還有幾個特殊檔案許可權,這裡不考慮。
首先寫一個最簡單指令碼,並執行之
#/bin/bash
rm -rf /var/temp
mkdir /var/temp
touch /var/temp/700
touch /var/temp/701
touch /var/temp/702
touch /var/temp/703
touch /var/temp/704
touch /var/temp/705
touch /var/temp/706
touch /var/temp/707
chmod 700 /var/temp/700
chmod 701 /var/temp/701
chmod 702 /var/temp/702
chmod 703 /var/temp/703
chmod 704 /var/temp/704
chmod 705 /var/temp/705
chmod 706 /var/temp/706
chmod 707 /var/temp/707
意思是用 root 身份建立目錄,裡面加入 8 個檔案,涵蓋各種許可權。
然後用普通使用者去做一些事情。包括:
- 列出目錄的內容,
- 列印目錄下各個檔案的內容,
- 給目錄下新增一個檔案,
- 刪除目錄下各個檔案,
- 用 vi 編輯檔案。vi 文中沒寫,但我試過了。
窮舉的測試記錄
(1)目錄許可權(—)
root身份執行:chmod 700 /var/temp
切普通使用者
ls /var/temp 失敗
cat 全部失敗
touch /var/temp/123 失敗
rm 全部失敗
(2)目錄許可權(–x)
chmod 701 /var/temp
ls /var/temp 失敗
cat 前4失敗,後4成功。
touch /var/temp/123 失敗
rm 全部失敗
(3)目錄許可權(-w-)
chmod 702 /var/temp
ls /var/temp 失敗
cat 全部失敗
touch /var/temp/123 失敗
rm 全部失敗
(4)目錄許可權(-wx)
chmod 703 /var/temp
ls /var/temp 失敗
cat 前4失敗,後4成功。
touch /var/temp/123 成功
rm 全部成功
(5)目錄許可權(r–)
chmod 704 /var/temp
ls /var/temp 能看名字,不能看大小等資訊。
cat 全部失敗
touch 失敗
rm 全部失敗
(6)目錄許可權(r-x)
chmod 705 /var/temp
ls 全部成功
cat 前4失敗,後4成功。
touch 失敗
rm 全部失敗
(7)目錄許可權(rw-)
chmod 706 /var/temp
ls /var/temp 能看名字,不能看大小等資訊。
cat 全部失敗
touch 失敗
rm 全部失敗
(8)目錄許可權(rwx)
chmod 707 /var/temp
ls /var/temp 成功。
cat 前4失敗,後4成功。
touch 成功
rm 全部成功
總結
- 怎樣才能刪除一個檔案:其目錄同時具有wx許可權,與檔案自身無關。
- 怎樣才能給目錄新增檔案:目錄同時具有wx許可權。
- 怎樣才能修改一個檔案:檔案有w許可權,目錄具有x許可權。
- 怎樣才能列印一個檔案內容:檔案具有r許可權,目錄具有x許可權。
- 怎樣才能完全正確的列出目錄裡的全部檔案:目錄同時具有rx許可權。
- 注意到,以上全部5項都需要目錄具備x許可權。
Linux 真的好麻煩。。
本作品採用《CC 協議》,轉載必須註明作者和本文連結