antony@notes:~/misc$ cat "檔案目錄與權限之練習解答.md"
檔案目錄與權限之練習解答
檔案目錄與權限之練習解答
練習1. 請做出以下目錄結構:
bigred@alp:~$ tree menu menu ├── Appetizer │ ├── Salads │ └── Soups │ └── Vegetable ├── Beverage │ └── Cappuccinols └── Dessert └── Cake └── Minestrone
bigred@alp:~$ mkdir -p menu/Appetizer/Salads
bigred@alp:~$ mkdir -p menu/Appetizer/Soups
bigred@alp:~$ touch menu/Appetizer/Soups/Vegetable
bigred@alp:~$ mkdir -p menu/Beverage
bigred@alp:~$ touch menu/Beverage/Cappuccinols
bigred@alp:~$ mkdir -p menu/Dessert/Cake
bigred@alp:~$ touch menu/Dessert/Cake/Minestrone
bigred@alp:~$ tree menu
menu
├── Appetizer
│ ├── Salads
│ └── Soups
│ └── Vegetable
├── Beverage
│ └── Cappuccinols
└── Dessert
└── Cake
└── Minestrone
6 directories, 3 files練習2.請將Minestrone搬到Soups目錄下
bigred@alp:~$ mv menu/Dessert/Cake/Minestrone menu/Appetizer/Soups/
bigred@alp:~$ tree menu
menu
├── Appetizer
│ ├── Salads
│ └── Soups
│ ├── Minestrone
│ └── Vegetable
├── Beverage
│ └── Cappuccinols
└── Dessert
└── Cake練習3: 問題與討論
請將使用者切換到bigred,
- 建立一個名為test的目錄,這個目錄的權限為711
bigred@alp:~$ mkdir -m 711 test
bigred@alp:~$ ls -al
total 32
drwxr-sr-x 6 bigred bigred 4096 Mar 3 15:42 .
drwxr-xr-x 6 root root 4096 Mar 3 14:58 ..
-rw------- 1 bigred bigred 766 Mar 3 12:51 .bash_history
drwxr-sr-x 2 bigred bigred 4096 Sep 5 2020 .cache
-rw------- 1 bigred bigred 7 Feb 17 10:09 .python_history
drwx--S--- 2 bigred bigred 4096 Jan 9 18:00 .ssh
drwxr-sr-x 2 bigred bigred 4096 Oct 6 20:48 bin
drwx--s--x 2 bigred bigred 4096 Mar 3 15:42 test- 並在test目錄下建立一個名為 change.txt 的空檔案,這個檔案的擁有者為 ybean,擁有群組為 bigred,檔案擁有者ybean 可讀可寫,bigred 群組成員可讀, 其他人不可讀不可寫不可執行。
bigred@alp:~/test$ touch change.txt
bigred@alp:~/test$ ls -al
total 8
drwx--s--x 2 bigred bigred 4096 Mar 3 15:42 .
drwxr-sr-x 6 bigred bigred 4096 Mar 3 15:42 ..
-rw-r--r-- 1 bigred bigred 0 Mar 3 15:42 change.txt
bigred@alp:~/test$ sudo chown ybean:bigred change.txt
bigred@alp:~/test$ sudo chmod 640 change.txt
bigred@alp:~/test$ ls -al
total 8
drwx--s--x 2 bigred bigred 4096 Mar 3 15:42 .
drwxr-sr-x 6 bigred bigred 4096 Mar 3 15:42 ..
-rw-r----- 1 ybean bigred 0 Mar 3 15:42 change.txt練習4:問題與討論
- 請將使用者切換為ybean,在家目錄下ls –al /home/bigred/test的指令,確認change.txt是否在test目錄下,如果有誤請說明原因。
ybean@alp:~$ ls -al /home/bigred/test
ls: cannot open directory '/home/bigred/test': Permission denied錯誤原因:因為/home/bigred/test的擁有者是bigred,ybean對於bigred來說是其他人,而其他人的權限只能執行,沒有r不能讀,所以失敗。
- 在ybean的家目錄,把在bigred家目錄下的test目錄下的change.txt複製到自己的家目錄,如果成功或是失敗都請說明為什麼?
ybean@alp:~$ cp /home/bigred/test/change.txt ~
ybean@alp:~$ ls -al
total 12
drwxr-sr-x 2 ybean ybean 4096 Mar 3 15:49 .
drwxr-xr-x 6 root root 4096 Mar 3 14:58 ..
-rw------- 1 ybean ybean 10 Mar 3 14:54 .bash_history
-rw-r----- 1 ybean ybean 0 Mar 3 15:49 change.txt成功的原因: 因為目錄只要有X的權限就能進入,所以如果一開始就知道change.txt在test目錄下的話,test目錄可以不用r的權限,而change.txt的擁有者是ybean,有r可以讀取檔案內容,所以可以複製到自己的家目錄
- 最後將使用者切換為bigred,在自己的家目錄複製change.txt到ybean的家目錄,如果成功或是失敗都請說明為什麼?
bigred@alp:~/test$ cp change.txt /home/ybean
cp: cannot create regular file '/home/ybean/change.txt': Permission denied失敗原因:因為對於/home/ybean來說,bigred是其他人,而/home/ybean對於其他人的權限只有 r-x,沒有w,不能新增/home/ybean目錄下的內容