Tidak dapat mengakses direktori saya anggota grup

9

Di server web saya, saya memiliki direktori 'www' yang memiliki izin drwxrwxr--dan grup pengguna: root:www-datasehingga Apache dapat mengaksesnya.

Sekarang saya telah menambahkan akun saya ke grup www-data dengan

sudo usermod -g www-data myuser

dan jika saya lakukan groupsmaka www-dataada di antara mereka, tetapi ketika saya mencoba hanya cd ke dalamnya saya mendapatkan 'Izin ditolak'.

Jika saya mengubah pengguna menjadi 'pengguna saya' atau mengatur grup ke grup lain yang saya anggota, saya bisa masuk.

Apakah saya melewatkan sesuatu?

menyilaukan
sumber

Jawaban:

14

Proses Anda memiliki daftar grup yang ditetapkan pada waktu login, jadi Anda harus masuk lagi agar perubahan diterapkan.

Saya juga menyarankan agar Anda menambahkan www-datasebagai kelompok pelengkap daripada yang utama (yang ditetapkan untuk grup saja Anda adalah anggota. Anda harus dapat melakukan ini dengan perintah berikut:

# Reset to your original primary group
sudo usermod -g myuser myuser
# Add an extra supplementary group
sudo usermod --append -G www-data group

Jika Anda ingin file yang Anda buat dapat dibaca oleh anggota www-datagrup lainnya, sesuaikan umask Anda sesuai:

umask 002

Karena keanggotaan grup utama Anda adalah grup pribadi, ini seharusnya tidak mempengaruhi keamanan file yang Anda buat.

Anda juga perlu mengatur setgidbit pada direktori tempat Anda akan membuat file: ini akan menyebabkan file mewarisi kepemilikan grup dari direktori induk:

chmod g+s www/
James Henstridge
sumber
1
masuk kembali melakukan trik, sangat bodoh. Juga serverfault.com/questions/6895/…
dazz
Terima kasih telah menyebutkan Dazz itu. Saya tidak pernah mengerti mengapa itu tidak berhasil untuk saya xD. Sekarang saya bisa beristirahat dengan tenang.
f4der
0

Bagi saya itu adalah hal yang berbeda yang menghasilkan kesalahan ini

nama pengguna yang sama dengan dua UID yang berbeda

Saya memiliki "apache" pengguna yang dikonfigurasi secara lokal dengan UID = 123 dan dalam direktori NIS dengan nama yang sama ("apache") tetapi UID yang berbeda = 456. Bergantung pada urutan mulai dan ketergantungan layanan, pengguna lokal mungkin digunakan sebelum pengguna NIS tersedia. Itu juga berarti, ketika Anda menampilkan nama pengguna, ini akan membingungkan, keduanya akan muncul sebagai "apache". Hanya ketika Anda melihat UID numerik (misalnya dengan melakukan ls -lnAnda akan melihat perbedaannya. Contoh: [root@mymachine]# ls -l drwxr-x--- 4 apache ggg1 88 May 31 17:12 file1 drwxr-x--- 4 apache ppp2 88 May 31 17:12 file2 lihat UID berbeda untuk file2 (456 dan bukan 123): [root@mymachine]# ls -ln drwxr-x--- 4 123 48 88 May 31 17:12 file1 drwxr-x--- 4 456 48 88 May 31 17:12 file2

grup berbeda didefinisikan dalam konfigurasi Apache

Masalah lain yang saya miliki dengan ketidakcocokan pengguna dan menghasilkan kesalahan izin, adalah ketika saya membatasi akses ke file dengan menggunakan grup "httpd". Ini adalah grup utama pengguna "apache" (yang ditampilkan menggunakan idatau getent) Apache dimulai sebagai root, kemudian beralih ke pengguna yang dikonfigurasi dan menjatuhkan izin. Pengguna beralih ke didefinisikan /etc/httpd/conf/httpd.confoleh Userparameter. Inilah masalahnya - grup (GID) yang prosesnya akan berjalan karena BUKAN grup utama pengguna itu. Grup didefinisikan dalam file konfigurasi yang sama dengan Groupparameter.

Jadi dalam kasus saya adalah ( /etc/httpd/conf/httpd.conf ): User apache Group apache

Dan direktori diberi akses seperti ini: drwxr-x--- 4 someuser httpd 88 May 31 17:12 mydir

Karena httpd (GID = 444) adalah grup utama pengguna itu: [root@somemachine]# id apache uid=48(apache) gid=444(httpd) groups=444(httpd)

Itu mengakibatkan beberapa waktu dihabiskan untuk debug sampai saya menyadari bahwa Groupdalam file config adalah "apache" bukan "httpd".

Kesalahan dari / var / log / httpd / error_log : [Fri May 31 17:13:40.070343 2019] [authz_core:debug] [pid 2527] mod_authz_core.c(809): [client 11.22.32.21:53824] AH01626: authorization result of Require all granted: granted [Fri May 31 17:13:40.070367 2019] [authz_core:debug] [pid 2527] mod_authz_core.c(809): [client 11.22.32.21:53824] AH01626: authorization result of <RequireAny>: granted [Fri May 31 17:13:40.070396 2019] [core:error] [pid 2527] (13)Permission denied: [client 11.22.32.21:53824] AH00132: file permissions deny server access: /var/www/html/somedir/otherdir/css/file1.txt

Saya harap ini membantu.

Pik Master
sumber