実行ビットが設定されていません。

実行ビットが設定されていません。

使用する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

実行ビットを渡すために何が欠けていますか?

ベストアンサー1

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規格

おすすめ記事