Linux與命令列基礎
touch 以 666、mkdir 以 777 去掉 umask 的位元,作為新檔案與新目錄的權限。在 umask 為 027 的 shell 中建立新檔案與新目錄時,兩者權限的組合何者正確?
- A檔案 637、目錄 750
- B檔案 640、目錄 750
- C檔案 750、目錄 750
查看答案與解析
正確答案:B. 檔案 640、目錄 750
umask 表示從新建立的檔案或目錄「去掉」的權限位元。027 從群組去掉寫入(2),從其他人去掉讀取、寫入、執行(7),因此檔案從 666 成為 rw-r-----(640),目錄從 777 成為 rwxr-x---(750)。這不是八進位的減法,而是逐位元去掉的計算(666 AND NOT 027)。常用的 umask 022 以同樣的計算,檔案為 644,目錄為 755。
- A. 這是以八進位從 666 減去 027 的值。umask 是逐位元去掉的運作,結果可能與減法不同(若是 022,兩者都是 644)。
- B. 正確。檔案從 666 成為 640,目錄從 777 成為 750。
- C. 檔案是以 666 而不是 777 為基礎建立的,所以新檔案不會有執行權限。