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.

Chris
sumber
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
Chris
sumber
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)

aturan kebun
sumber
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

Bsienn
sumber
-2

Menggunakan perintah berikut Anda dapat mengatur izin default ke file:

chacl -R filename
pengguna240513
sumber
3
Bagaimana ini berbeda dari jawaban lain? Dan berikan beberapa contoh
Romeo Ninov
3
Apakah Anda yakin itulah fungsinya? linux.die.net/man/1/chacl menunjukkan bahwa ia akan menghapus ACL.
Jeff Schaller