GNU/Linux >> Belajar Linux >  >> Linux

Mendapatkan File Baru Untuk Mewarisi Izin Grup Di Linux?

Saya mengalami masalah dengan izin di server Linux. Saya sudah terbiasa dengan BSD. Ketika direktori dimiliki oleh grup, pengguna yang tidak memilikinya seperti www-data, file yang dibuat di dalamnya akan dimiliki oleh grup itu. Ini penting karena saya ingin file dapat dibaca oleh server web (yang tidak akan saya jalankan sebagai root) tetapi agar pengguna tetap dapat meletakkan file baru di direktori. Saya tidak dapat menempatkan pengguna di www-data karena mereka dapat membaca setiap situs web pengguna lain.

Saya ingin server web membaca semua situs web, saya ingin pengguna dapat mengubah situs mereka sendiri.

Izin diatur seperti ini pada folder saat ini….

drwxr-x--- 3 john www-data 4096 Feb 17 21:27 john

Ini adalah perilaku standar pada BSD untuk izin untuk bekerja dengan cara ini. Bagaimana saya membuat Linux melakukan ini?

Jawaban yang Diterima:

Sepertinya Anda menggambarkan fungsionalitas bit setgid di mana ketika direktori yang telah disetel, akan memaksa file baru yang dibuat di dalamnya agar grupnya disetel ke grup yang sama yang disetel di direktori induk.

Contoh

$ whoami
saml

$ groups
saml wheel wireshark

mengatur direktori dengan izin + kepemilikan

$ sudo mkdir --mode=u+rwx,g+rs,g-w,o-rwx somedir
$ sudo chown saml.apache somedir
$ ll -d somedir/
drwxr-s---. 2 saml apache 4096 Feb 17 20:10 somedir/

sentuh file sebagai saml di direktori ini

$ whoami
saml

$ touch somedir/afile
$ ll somedir/afile 
-rw-rw-r--. 1 saml apache 0 Feb 17 20:11 somedir/afile

Ini akan memberi Anda kira-kira seperti apa yang Anda inginkan. Jika Anda benar-benar menginginkan apa yang telah Anda jelaskan, saya pikir Anda harus menggunakan fungsionalitas Access Control Lists untuk mendapatkan itu (ACL).

ACL

Jika Anda ingin mendapatkan sedikit lebih banyak kontrol atas izin pada file yang dibuat di bawah direktori, somedir , Anda dapat menambahkan aturan ACL berikut untuk mengatur izin default seperti itu.

sebelum

$ ll -d somedir
drwxr-s---. 2 saml apache 4096 Feb 17 20:46 somedir

setel izin

$ sudo setfacl -Rdm g:apache:rx somedir
$ ll -d somedir/
drwxr-s---+ 2 saml apache 4096 Feb 17 20:46 somedir/

Perhatikan + di akhir, itu berarti direktori ini memiliki ACL yang diterapkan padanya.

$ getfacl somedir
# file: somedir
# owner: saml
# group: apache
# flags: -s-
user::rwx
group::r-x
other::---
default:user::rwx
default:group::r-x
default:group:apache:r-x
default:mask::r-x
default:other::---

setelah

$ touch somedir/afile
$ ll somedir/afile 
-rw-r-----+ 1 saml apache 0 Feb 17 21:27 somedir/afile
$ 

$ getfacl somedir/afile
# file: somedir/afile
# owner: saml
# group: apache
user::rw-
group::r-x              #effective:r--
group:apache:r-x        #effective:r--
mask::r--
other::---

Perhatikan dengan izin default (setfacl -Rdm ) diatur sehingga izinnya adalah (r-x ) secara default (g:apache:rx ). Ini memaksa file baru untuk hanya memiliki r sedikit diaktifkan.

Terkait:Lembar Cheat ShellScript
Linux
  1. Cara Menggunakan Rsync untuk Menyinkronkan File Baru atau Berubah/Dimodifikasi di Linux

  2. Cara Menemukan File Dengan Izin SUID dan SGID di Linux

  3. Jadikan Semua File Baru Dalam Direktori Dapat Diakses Oleh Grup?

  1. Paksa Izin Baru Pada File Setelah Rsync Dari Seedbox?

  2. Linux – Mendapatkan File Untuk Tanggal Saat Ini Di Linux?

  3. Daftar anggota grup di Linux

  1. Saya Menambahkan Pengguna Ke Grup, Tetapi Izin Grup Pada File Masih Tidak Berpengaruh?

  2. Linux – Bagaimana Cara Mengatur Izin File Default Untuk Semua Folder / File Di Direktori?

  3. Linux – Masalah Izin Untuk Direktori Bersama Di Server?