Bagaimana cara mengatur izin file default untuk semua folder / file dalam direktori?


254

Saya ingin mengatur folder sehingga apa pun yang dibuat di dalamnya (direktori, file) mewarisi izin dan grup default.

Mari kita panggil grup "media". Dan juga, folder / file yang dibuat dalam direktori harus memiliki g + rw secara otomatis.


1
Bukankah itu dikendalikan oleh pengguna yang membuat file / folder baru, dan umask-nya?
— Wadih M.

umask memang berhubungan dengan perizinan tapi saya tidak percaya itu melakukan apa-apa dengan menetapkan grup default yang bukan pengguna sendiri.
— Chris

1
OS apa? Tag dibutuhkan. setfacldan ACL default tidak ada pada AIX.
— Amit Naidu

Jawaban:


269

Saya menemukannya: Menerapkan izin default

Dari artikel:

chmod g+s <directory>  //set gid 
setfacl -d -m g::rwx /<directory>  //set group to rwx default 
setfacl -d -m o::rx /<directory>   //set other

Selanjutnya kita dapat memverifikasi:

getfacl /<directory>

Keluaran:

# file: ../<directory>/
# owner: <user>
# group: media
# flags: -s-
user::rwx
group::rwx
other::r-x
default:user::rwx
default:group::rwx
default:other::r-x

5
Yay untuk sedikit lengket!
— gabe.

22
Mari kita tidak membingungkan gid dengan sedikit lengket.
— Amit Naidu

10
g + s akan memastikan bahwa konten baru di direktori akan mewarisi kepemilikan grup. setfacl hanya mengubah chmod, dalam kasus Anda menetapkan izin untuk o = rx
— Steen Schütt

10
Perhatikan bahwa ACL harus diaktifkan (termasuk sebagai salah satu opsi pemasangan untuk sistem file yang dipasang) untuk izin file yang akan diwarisi.
— sg23

11
Anda mungkin ingin mempertimbangkan untuk menggunakan 'X' sebagai gantinya sehingga hanya akan menetapkan izin eksekusi pada direktori bukan filesetfacl -d -m g::rwX /<directory>
— Adrian Gunawan

27

Ini adalah tambahan untuk jawaban Chris, ini berdasarkan pengalaman saya di rig Arch Linux saya.

Menggunakan sakelar default (-d) dan sakelar ubah (-m) hanya akan memodifikasi izin default tetapi membiarkan yang sudah ada tetap utuh:

setfacl -d -m g::rwx /<directory>

Jika Anda ingin mengubah seluruh struktur izin folder termasuk yang sudah ada (Anda harus melakukan baris tambahan dan membuatnya rekursif -R:

setfacl -R -m g::rwx /<directory>

misalnya.

setfacl -R -m g::rwx /home/limited.users/<directory> // gives group read,write,exec permissions for currently existing files and folders, recursively
setfacl -R -m o::x /home/limited.users/<directory> //revokes read and write permission for everyone else in existing folder and subfolders 
setfacl -R -d -m g::rwx /home/limited.users/<directory> // gives group rwx permissions by default, recursively
setfacl -R -d -m o::--- /home/limited.users/<directory> //revokes read, write and execute permissions for everyone else. 

( KREDIT untuk menandaidwite dalam komentar untuk sintaks dari baris mencabut semua hak istimewa)


2
Untuk mencabut hak istimewa grup (sebagai contoh): sudo setfacl -d -mg :: --- / path
— markdwhite

1
Apakah itu hanya salah ketik yang menentukan setfacl -R -m g::rwx /<directory>dua kali dalam jawaban Anda?
— Shane Rowatt

0

Tambahkan diri Anda / pengguna login ke grup www-data, sehingga kami dapat bekerja dengan file yang dibuat oleh server www-data

sudo usermod -a -G www-data $USER

Perlu memulai ulang / login kembali agar grup yang baru ditambahkan berlaku

cd /var/www

Tambahkan www-data sebagai anggota grup dari folder html, dan pengguna Anda sebagai pemilik, jadi kami memilikinya serta anggota grup

sudo chown -R $USER:www-data html

Masukkan nama pengguna Anda di tempat USER

Atur baca, tulis, jalankan izin seperti yang diperlukan, (ugo) u = pengguna, g = grup, o = orang lain

sudo chmod 750 html

Atur GID html, sekarang, file yang baru dibuat dalam html akan mewarisi izin kepemilikan:

sudo chmod g+s html

Ini menciptakan aturan default untuk file / dir yang baru dibuat dalam direktori html dan sub direktori.

sudo setfacl -R -d -m u::rwX -m g::rX -m o::000 html

Buat SELinux jika terinstal, abaikan persyaratan konteks data-www sehingga memungkinkan izin menulis

sudo setsebool -P httpd_unified 1

daftar direktori untuk melihat izin baru diterapkan

ls -ld html

Mengembalikan ini

drwxrwsr-x+   3 html www-data

Trailing + menandakan bahwa ACL, Access Control List, diatur pada direktori.

Referensi : Tautan ke forum


Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.