Files

未設置執行位

  • May 27, 2015

我剛剛設置了一個 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 標準也描述了觸摸使用的系統呼叫。

引用自:https://unix.stackexchange.com/questions/205956