Di server web saya, saya memiliki direktori 'www' yang memiliki izin drwxrwxr--
dan grup pengguna: root:www-data
sehingga Apache dapat mengaksesnya.
Sekarang saya telah menambahkan akun saya ke grup www-data dengan
sudo usermod -g www-data myuser
dan jika saya lakukan groups
maka www-data
ada 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?
sumber
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 -ln
Anda 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
id
ataugetent
) Apache dimulai sebagai root, kemudian beralih ke pengguna yang dikonfigurasi dan menjatuhkan izin. Pengguna beralih ke didefinisikan/etc/httpd/conf/httpd.conf
olehUser
parameter. Inilah masalahnya - grup (GID) yang prosesnya akan berjalan karena BUKAN grup utama pengguna itu. Grup didefinisikan dalam file konfigurasi yang sama denganGroup
parameter.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
Group
dalam 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.
sumber