Linux系統命令許可權搜尋等練習題

flyingfishzxf發表於2016-02-29

1. rmdir -p 用來刪除一串目錄,比如 rmdir -p /tmp/test/1/2/3 如果 /tmp/1/2/ 下面除了3目錄外還有個4目錄,4目錄裡還有個5目錄,那麼是否可以成功刪除? rmdir -p 刪除一個不存在的目錄時是否報錯呢?

  • rmdir -p 不能成功刪除非空目錄,rmdir -p 刪除一個不存在的目錄時會報錯,提示“沒有那個檔案或目錄”

2. 刪除一個目錄或者檔案時,在刪除之前會先問一下我們是否刪除,如果直接回車,是否刪除呢?如果輸入的不是’y’ 也 不是’n’ 會發生什麼?

  • 直接回車不會刪除,如果輸入的不是’y’ 也 不是’n’也不會刪除

3. 我想建立一串目錄時如何建,比如/home/1/2/3/4.

  • mkdir -p /home/1/2/3/4

4. 使用mv命令時,如果目標檔案為非目錄且存在的檔案,會怎麼樣?

  • 會提示,是否要覆蓋那個檔案

5. 使用less 檢視檔案/etc/passwd 搜尋一下一共出現幾個‘root’, 按哪個鍵可以向上/向下一行一行的移動?

  • 一共出現了4次‘root’,按n可以向下一行一行的移動,按N可以向上移動。

6. 請想一想如果我們給某個目錄的許可權設定成rwxrw-rw-,那麼其他使用者能否ls該目錄下的內容,能否進入到該目錄下?

  • 因為其他使用者對該目錄的許可權是讀和寫,沒有執行許可權,所以ls裡面的內容是沒有問題的,但是不能進入到該目錄下,因為進入該目錄,就相當於在“執行”這個目錄。

7. 如果設定 umask 為 001 , 那麼使用者預設建立的目錄和檔案的許可權是什麼樣子的?

  • 通過umask計算預設許可權的公式是:
  • 1)目錄
    (rwxrwxrwx)-(umask)=(目錄許可權),本例中umask=001=(——–x),所以目錄的許可權是(rwxrwxrwx)-(——–x)=(rwxrwxrw-)=776
  • 2)檔案
    (rw-rw-rw-)-(umask)=(檔案許可權),本例中umask=001=(——–x),所以檔案的許可權是(rw-rw-rw-)-(——–x)=(rw-rw-rw-)=666
    所以得出結論,當umask為001時,目錄許可權是776,檔案許可權是666

8. 用find找出 /var/ 目錄下,最近一天內變更的檔案?再用find找出 /root/ 目錄下一小時內變更的檔案?

  • find /var/ -type f -mtime -1
  • find /root/ -type f -mmin -60

9. 用find找出 /etc/ 目錄下,一年內從未變更過的檔案?

  • find /etc/ -type f ! -mtime -365

10. 為什麼硬連結不能連結目錄? 硬連結的檔案是否佔用空間大小,硬連結檔案是否可以垮分割槽建立?

  • 因為每個目錄下面都會有一個.和..也就是說每個目錄下面的子目錄肯定會有它本身和它上一級目錄,那麼一旦設定了硬連結則會造成一種混亂,設定會導致死迴圈。硬連結的檔案並不會佔用空間大小,它只是複製了該檔案的一份inode資訊,硬連結檔案是不可以跨分割槽建立的。

11. Linux系統裡,分別用什麼符號表示: 普通文字檔案、二進位制檔案、目錄、連結檔案、塊裝置、套接字檔案以及串列埠裝置?

  • 普通檔案和二進位制檔案用-表示,目錄用d表示,連結檔案(應該說是軟連線)用l表示,塊裝置用b表示,套接字用s表示,串列埠裝置用c表示。

12. 如何把把dira目錄以及目錄下的所有檔案及目錄修改為所屬主為user1, 所屬組為users?

  • chown -R user1:users dira

13. Linux系統,預設目錄的許可權為什麼?文件的許可權是什麼?用三個數字表示。我們可以通過修改umask的值更改目錄和文件的預設許可權值,我們如何通過umask的值得到預設許可權值?

  • 預設目錄許可權是755,文件許可權是644,目錄預設許可權=(rwxrwxrwx)-(umask),檔案預設許可權=(rw-rw-rw-)-(umask)

14. 修改dirb目錄的許可權,使所屬主可讀可寫可執行,所屬組可讀可執行,其他使用者不可讀不可寫也不可執行,使用什麼命令?

  • chmod 750 dirb

15. 如何使檔案只能寫不能刪除? 如何使檔案不能被刪除、重新命名、設定連結接、寫入、新增資料?

  • chattr +a file 這樣就可以使檔案只能寫不能刪除
  • chattr +i file 使檔案不能被刪除、重新命名、設定連結接、寫入、新增資料

16. Linux 下一個點 ‘.’ 和兩個點 ‘..’ 分別表示什麼?

  • 一個點表示當前目錄,兩個點表示上級目錄。

17. cd - 表示什麼含義?

  • cd - 表示進入到上一次所在的目錄

18. 用ls 檢視目錄或者檔案時,第二列的數值表示什麼意思?如果一個目錄的這列的值為3,那麼這個3是如何得到的?

  • 第二列數值表示有幾個檔案使用相同的inode,如果一個目錄的這列為3,我們可以通過使用 ls -al dir/ |grep ‘^d’|wc -l 這條命令得到

19. 如果沒有locate命令,需要我們安裝哪個包?初次使用locate命令會報錯“can not open `/var/lib/mlocate/mlocate.db’: No such file or directory”, 需要我們如何做呢?

  • 沒有locate命令,需要安裝mlocate包,yum install -y mlocate, 初次使用報錯,是因為對應的資料庫檔案還沒有生成,手動生成的命令是:updatedb

20. 當拷貝一個檔案時,如果目標檔案存在會問我們是否覆蓋,如何做就不再詢問了?

  • 使用 /bin/cp 進行拷貝: /bin/cp a.txt b.txt

21. 如何動態顯示一個檔案的內容,假如這個檔案內容一直再增加。

  • tail -f file

22. 更改檔案讀寫執行許可權的命令是什麼?如何把一個目錄下的所有檔案(不含目錄)許可權改為644?

  • chmod 用來更改檔案許可權,find ./ -type f |xargs chmod 644

23. 如何檢視當前使用者的家目錄是什麼?

  • echo $HOME

24. 假如一個目錄可以讓任何人可寫,那麼如何能做到該目錄下的檔案只允許檔案的所有者更改?

  • chmod o+wt dir

25. 簡述軟連結和硬連結的區別?

  • 軟連線可以理解為,原始檔的快捷方式,軟連線檔案記錄的是原始檔的路徑,佔用空間非常小。當把原始檔刪除後,那麼軟連線檔案也就變成一個壞檔案了,不能使用了。
  • 硬連結和原始檔的inode資訊是一模一樣的,可以說硬連結檔案只是複製了一份原始檔的inode資訊,在我們看來硬連結檔案和原始檔沒有什麼區別,刪除任何一個檔案對方都不受影響,唯一的是少了一份inode,硬連結只能在同一個分割槽下建立,而軟連線不受限制。硬連結檔案和原始檔雖然看起來像是兩個檔案,但是隻佔用一個檔案的磁碟空間。

26. cat a.txt 會更改a.txt的什麼時間? chmod 644 a.txt 會更改a.txt的什麼時間? vim呢? 直接touch呢?

  • cat 修改atime,
  • chmod 會更改ctime,
  • vim會更改atime,ctime,mtime,
  • touch也會更改三個時間。

擴充套件部分:

1. 簡單描述inode是什麼,不超過100字。

  • inode是用來記錄Linux系統裡面檔案的屬性資訊的一個容器,它會記錄檔名、檔案的大小、屬主屬組、檔案的許可權、檔案的訪問時間、修改/建立時間以及更改時間(更改inode資訊)等等資訊。在Linux系統裡,每一個檔案都會有一個唯一的inode.

2. 描述 suid sgid的作用
suid:用於二進位制可執行檔案,使使用者在執行該檔案時臨時擁有該檔案屬主的許可權,典型檔案為/usr/bin/passwd,它更改使用者的密碼時是會更改這些檔案的:/etc/passwd和/etc/shadow等,這些檔案預設普通使用者沒有寫許可權。
sgid:用於目錄,使用者在該目錄下建立的檔案都擁有與該目錄相同的屬組。

3. linux中的atime, ctime, mtime 如何區分呢?
atime為檔案最後的訪問時間;
ctime為最後一次更改inode資訊的時間,比如更改檔名、檔案許可權、寫入新內容(改變了檔案大小)等就會更改這個時間;
mtime為最後一次更改檔案內容的時間;

4. 簡述selinux是什麼?
selinux是RedHat/CentOS系統特有的安全機制,它提供強制訪問控制,限制程式只能訪問那些在它的任務中所需要檔案。SELinux是2.6版本的Linux核心中提供的強制訪問控制(MAC)系統。對於目前可用的 Linux安全模組來說,SELinux 是功能最全面,而且測試最充分的。SELinux 在型別強制伺服器中合併了多級安全性或一種可選的多類策略,並採用了基於角色的訪問控制概念。

5. 查詢當前目錄設定過set_uid的檔案,為了使該題更加簡單,設定要查詢的檔案許可權為4644,請參考上面的9。
find . -perm 4644

相關文章