Files
未設置執行位
我剛剛設置了一個 EC2 實例來使用並正在測試文件權限;但是,我注意到執行位沒有被傳遞到較低級別(讀取和寫入,只是不執行)。
[ec2-user@server www]$ touch web/hi [ec2-user@server www]$ ls -l web/ total 4 -rw-rw-r-- 1 ec2-user apache 0 May 27 19:02 hi -rwxrwxr-x 1 ec2-user apache 43 May 27 05:15 index.php [ec2-user@server www]$ getfacl --all-effective web/ # file: web/ # owner: ec2-user # group: apache # flags: -s- user::rwx group::rwx other::r-x default:user::rwx default:group::rwx default:other::r-x
我缺少什麼來傳遞執行位?
嘗試測試 mkdir,這是大多數人會擔心的嗎?
touch 不會創建執行檔。它將模式參數中的這些位屏蔽到 sys_open()。 原始碼:
133 /* Try to open FILE, creating it if necessary. */ 134 fd = fd_reopen (STDIN_FILENO, file, 135 O_WRONLY | O_CREAT | O_NONBLOCK | O_NOCTTY, MODE_RW_UGO)
請注意,模式參數中沒有 X。如果程序不允許,您不能強製程序創建可執行(或世界可讀等)文件。很多文件創建將看起來像這樣。安裝執行檔是不太常見的情況。
POSIX 標準也描述了觸摸使用的系統呼叫。