Skip to content

antony@notes:~/misc$ cat "檔案目錄與權限之練習解答.md"

檔案目錄與權限之練習解答

2022-05-05· misc ·Linux

檔案目錄與權限之練習解答

練習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,

  1. 建立一個名為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
  1. 並在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:問題與討論

  1. 請將使用者切換為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不能讀,所以失敗。

  1. 在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可以讀取檔案內容,所以可以複製到自己的家目錄

  1. 最後將使用者切換為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目錄下的內容

tags: Linux