GNU/Linux >> Belajar Linux >  >> Linux

Izin ditolak karena izin pencarian tidak ada pada komponen jalur, setelah chmod dan chgrp

Akhirnya menemukan perbaikan. Saya menjalankan 2 fungsi ini untuk mengarsipkan folder dan izin file dari www dan di dalamnya secara rekursif.

find /var/www -type d -exec chmod 755 {} \;
find /var/www -type f -exec chmod 644 {} \;

Saya membaca halaman ini di sini:https://wiki.apache.org/httpd/13PermissionDenieddan pada dasarnya menjelaskan dan mengingatkan saya bahwa izin diwariskan, "lakukan hal yang sama untuk direktori dan setiap direktori induk." Jadi saya menjalankan 2 itu dan semuanya berfungsi kembali.


Biasanya izin eksekusi untuk satu jalur tidak disetel, seperti di pertanyaan ini. Cara termudah untuk menyelesaikan ini adalah perintah berikut:

chmod a+rX -R /var/www

Tetapi saat menggunakan CentOS7 atau RHEL7 Anda mungkin mengalami masalah dengan SELinux. Jika izin file benar dan Anda masih mendapatkan kesalahan, lihat log berikut:

tail -f /var/log/audit/audit.log

Jika Anda mendapatkan pesan seperti ini:

type=AVC msg=audit(1464350432.916:8222): avc:  denied  { getattr } for  pid=17526 comm="httpd" path="/var/www/app/index.html" dev="sda1" ino=42021595 scontext=system_u:system_r:httpd_t:s0 tcontext=unconfined_u:object_r:var_t:s0 tclass=file
type=SYSCALL msg=audit(1464350432.916:8222): arch=c000003e syscall=4 success=no exit=-13 a0=7fde4e450d40 a1=7ffd05e79640 a2=7ffd05e79640 a3=7fde42e43792 items=0 ppid=17524 pid=17526 auid=4294967295 uid=48 gid=48 euid=48 suid=48 fsuid=48 egid=48 sgid=48 fsgid=48 tty=(none) ses=4294967295 comm="httpd" exe="/usr/sbin/httpd" subj=system_u:system_r:httpd_t:s0 key=(null)

Artinya:SELinux memblokir akses ke root dokumen Anda. Anda dapat mencoba perintah seperti ini (Recursive dan verbose pada opsi -Rv ):

chcon  --user system_u --type httpd_sys_content_t -Rv /var/www/app/public

Untuk menemukan setelan yang tepat, lihat direktori kerja seperti /var/www/html dengan ini:

ls -laZ /var/www/

Seharusnya terlihat seperti:

drwxr-xr-x. server server system_u:object_r:httpd_sys_content_t:s0 .
drwxr-xr-x. root   root   system_u:object_r:var_t:s0       ..
drwxr-xr-x. server server system_u:object_r:httpd_sys_script_exec_t:s0 cgi-bin
drwxr-xr-x. server server system_u:object_r:httpd_sys_content_t:s0 html
drwxrwxr-x. server server unconfined_u:object_r:var_t:s0   app

Untuk orang-orang yang mungkin telah mencoba hal di atas dan masih mengalami masalah, pastikan tidak ada direktori di jalur yang memiliki ACL yang menghalangi akses apache.

Anda dapat menggunakan:

getfacl <directoryname>

untuk mendapatkan izin pada direktori yang mungkin telah diatur menggunakan ACL. Anda akan melihat sesuatu seperti berikut yang pada dasarnya mengatakan pengguna memiliki semua izin dan grup telah membaca dan mengeksekusi (atau mencari) tetapi tidak menulis:

# file: <directoryname>
# owner: username
# group: username
user::rwx
user:1000:rwx
group::---
group:username:r-x
mask::rwx
other::rwx

Untuk memberikan akses apache atau grup untuk menggunakan ACL, gunakan yang berikut ini:

setfacl -m g:<groupname>:rx <directoryname>

pastikan direktori induk memiliki yang sama. Anda dapat menggunakan tombol -R untuk melakukan perubahan secara rekursif pada direktori teratas.

Saya mengalami masalah izin apache yang sama dan membenturkan kepala mencoba mencari tahu mengapa chmod dan chown tidak berpengaruh sebelum saya ingat saya telah menyetel ACL pada direktori saat menggunakan Samba beberapa waktu lalu.


Linux
  1. [CentOS 7 Apache]:Izin ditolak:izin file menolak akses server

  2. Apa manfaat CloudLinux?

  3. Chmod 777 ke folder dan semua isinya

  1. Apakah tar.gz dan tgz hal yang sama?

  2. JAVA_HOME dan PATH sudah disetel tetapi Java -version masih menunjukkan yang lama

  3. Izin ditolak saat mengakses folder bersama VirtualBox saat menjadi anggota grup vboxsf

  1. Salin dan chmod/chown secara bersamaan

  2. Menghapus dan menambahkan izin menggunakan notasi numerik pada baris yang sama

  3. Bagaimana cara mengatur izin untuk folder NFS dengan benar? Izin ditolak di ujung pemasangan.