Which of the following commands makes /bin/foo executable by everyone but writable only by its owner?
A.
chmod u=rwx,go=rx /bin/foo
B.
chmod o+rwx,a+rx /bin/foo
C.
chmod 577 /bin/foo
D.
chmod 775 /bin/foo
題解
若要讓「/bin/foo」檔案可以被任何人執行的話,需要讓擁有者自己、群組和其他人至少同時擁有讀取它和執行它的權限。若要讓它能被擁有者寫入,至少要讓擁有者擁有寫入權限。所以「/bin/foo」檔案的權限必須為「755」(-rwxr-xr-x)。使用「chmod」指令可以改變檔案的存取權限。
選項A,正確答案。
選項B,「+」會讓「chmod」指令基於目前檔案權限去新增權限,由於無法確保先前的檔案權限如何,要是原本權限就是「777」(rwxrwxrwx),指令執行後檔案權限也還是「777」(rwxrwxrwx),將不符合題目要求。
選項C,擁有者的權限只有「5」(r-x),缺少寫入權限。
選項D,群組的權限為「7」(rwx),會讓非擁有者但屬於同群組的使用者也擁有對「/bin/foo」檔案的寫入權限,應該要將指令改成:
chmod 755 /bin/foo