Jadi beginilah situasinya:
mendapat server untuk pengembang web. Ada banyak pengembang. Semua developers
+ PHP
+ Apache
milik www
kelompok. Ada direktori pengembangan – development
.
Tujuannya adalah agar setiap file dalam development
direktori memiliki 755
izin dan setiap kali pengembang membuat, memodifikasi file di development
direktori, file akan tetap memiliki 755
.
Jadi saya telah membaca sejumlah acl
tutorial, panduan dan caranya tetapi saya masih belum bisa mendapatkan hasil yang saya inginkan.
- disk saya terpasang dengan
acl
- Saya mendapatkan
chown -R www:www development
- menambahkan
chmod g+s development
-
Saya menetapkan sejumlah
acl
aturan tentangdevelopment
direktori dan dapatkan ini:$ 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
-
Menurut ide saya tentang
ACL
, jika direktori memiliki aturan seperti itu, tugas saya harus tercapai, tetapi ketika saya mencoba membuat file didevelopment
dir, saya mendapatkan:-rw-rw-r--+ 1 www www 0 Nov 21 09:14 newfile
Sepertinya saya tidak mengerti mengapa itu membuat rw-
sebagai gantinya rwx
.
Mungkin sesuatu yang sederhana yang saya lewatkan atau beberapa konsep umum yang tidak saya mengerti.
Jawaban yang Diterima:
ACL default Anda menggantikan umask, yang menentukan bukan default izin, tetapi maksimum izin untuk membuat file baru. Dalam hal ini rwxrwxr-x
.
Kemudian aplikasi Anda memanggil open
atau creat
dengan izin yang diinginkan. Hampir semua aplikasi akan meminta rw-rw-rw-
untuk file.
Anda dapat melihat ini dengan menjalankan strace
, misalnya
$ strace -e trace=file touch newfile
...
open("newfile", O_WRONLY|O_CREAT|O_NOCTTY|O_NONBLOCK, 0666) = 3
(0666
sama dengan rw-rw-rw-
.)
Kedua izin digabungkan menggunakan bitwise DAN untuk memberikan rw-rw-r--
.
rwxrwxr-x # default ACL
rw-rw-rw- # permission requested (e.g. by touch, vim, etc.)
& _________
rw-rw-r-- # effective permissions
Untuk penjelasan lainnya, lihat Daftar Kontrol Akses POSIX — “Contoh ACL Default”.
Jadi pertanyaan sebenarnya adalah:mengapa Anda membutuhkan file agar dapat dieksekusi?