つまり、これは状況です。
Web開発者向けのサーバーを入手しました。多くの開発者がいます。すべてのdevelopers
+ PHP
+ Apache
www
に属しています グループ。開発ディレクトリがあります–development
。
目標は、development
内のすべてのファイルです ディレクトリには755
があります 権限と、開発者が作成するたびに、development
でファイルを変更します ディレクトリ、ファイルにはまだ755
があります 。
だから私はいくつかのacl
を読みました チュートリアル、ガイド、ハウツーですが、それでも希望する結果が得られません。
- 私のディスクは
acl
でマウントされています -
chown -R www:www development
を取得しました -
chmod g+s development
を追加しました -
acl
の数を設定しましたdevelopment
に関するルール ディレクトリとこれを取得しました:$ getfacl development # file: development # owner: www # group: www # flags: -s- user::rwx user:www:rwx group::rwx group:www:rwx mask::rwx other::r-x default:user::rwx default:user:www:rwx default:group::rwx default:group:www:rwx default:mask::rwx default:other::r-x p.s. I know its messy, was doing a number of tests
-
ACL
の私の考えによると 、ディレクトリにそのようなルールがある場合、私のタスクは達成されるはずですが、development
でファイルを作成しようとすると dir、私は得る:-rw-rw-r--+ 1 www www 0 Nov 21 09:14 newfile
なぜrw-
が作成されるのか理解できないようです 代わりにrwx
。
おそらく、私が見逃した単純なものか、理解できない一般的な概念です。
承認された回答:
デフォルトのACLは、 defaultではないことを指定するumaskを置き換えます。 権限、ただし最大 新しいファイルを作成するための権限。この場合、rwxrwxr-x
。
次に、アプリケーションはopen
を呼び出します またはcreat
必要な権限で。ほぼすべてのアプリケーションがrw-rw-rw-
を要求します ファイル用。
これは、strace
を実行することで確認できます。 、例:
$ strace -e trace=file touch newfile
...
open("newfile", O_WRONLY|O_CREAT|O_NOCTTY|O_NONBLOCK, 0666) = 3
(0666
rw-rw-rw-
と同じです 。)
2つの権限は、ビットごとのANDを使用して結合され、rw-rw-r--
を提供します。 。
rwxrwxr-x # default ACL
rw-rw-rw- # permission requested (e.g. by touch, vim, etc.)
& _________
rw-rw-r-- # effective permissions
別の説明については、POSIXアクセス制御リスト—「デフォルトのACLの例」を参照してください。
したがって、本当の問題は、ファイルを実行可能にする必要があるのはなぜですか?