httpd không thể ghi vào thư mục / tập tin vì SELinux


30

Có ai biết đó là sebool nào để cho phép truy cập ghi httpd vào / home / user / html không? Khi tôi vô hiệu hóa SELinux echo 0 > /selinux/enforcetôi có thể viết, vì vậy vấn đề của tôi chắc chắn liên quan đến SELinux. Tôi chỉ không biết cái nào là đúng mà không cần mở một lỗ hổng lớn và Google sẽ không giúp được gì nhiều.

#[/home]ls -Z
drwxr-x---. user       apache     unconfined_u:object_r:user_home_dir_t:s0 user

#sestatus -b
Policy booleans:
abrt_anon_write                             off
abrt_handle_event                           off
allow_console_login                         on
allow_cvs_read_shadow                       off
allow_daemons_dump_core                     on
allow_daemons_use_tcp_wrapper               off
allow_daemons_use_tty                       on
allow_domain_fd_use                         on
allow_execheap                              off
allow_execmem                               on
allow_execmod                               on
allow_execstack                             on
allow_ftpd_anon_write                       off
allow_ftpd_full_access                      off
allow_ftpd_use_cifs                         off
allow_ftpd_use_nfs                          off
allow_gssd_read_tmp                         on
allow_guest_exec_content                    off
allow_httpd_anon_write                      off
allow_httpd_mod_auth_ntlm_winbind           off
allow_httpd_mod_auth_pam                    off
allow_httpd_sys_script_anon_write           off
allow_java_execstack                        off
allow_kerberos                              on
allow_mount_anyfile                         on
allow_mplayer_execstack                     off
allow_nsplugin_execmem                      on
allow_polyinstantiation                     off
allow_postfix_local_write_mail_spool        on
allow_ptrace                                off
allow_rsync_anon_write                      off
allow_saslauthd_read_shadow                 off
allow_smbd_anon_write                       off
allow_ssh_keysign                           off
allow_staff_exec_content                    on
allow_sysadm_exec_content                   on
allow_unconfined_nsplugin_transition        off
allow_user_exec_content                     on
allow_user_mysql_connect                    off
allow_user_postgresql_connect               off
allow_write_xshm                            off
allow_xguest_exec_content                   off
allow_xserver_execmem                       off
allow_ypbind                                off
allow_zebra_write_config                    on
authlogin_radius                            off
cdrecord_read_content                       off
clamd_use_jit                               off
cobbler_anon_write                          off
cobbler_can_network_connect                 off
cobbler_use_cifs                            off
cobbler_use_nfs                             off
condor_domain_can_network_connect           off
cron_can_relabel                            off
dhcpc_exec_iptables                         off
domain_kernel_load_modules                  off
exim_can_connect_db                         off
exim_manage_user_files                      off
exim_read_user_files                        off
fcron_crond                                 off
fenced_can_network_connect                  off
fenced_can_ssh                              off
ftp_home_dir                                on
ftpd_connect_db                             off
ftpd_use_passive_mode                       off
git_cgit_read_gitosis_content               off
git_session_bind_all_unreserved_ports       off
git_system_enable_homedirs                  off
git_system_use_cifs                         off
git_system_use_nfs                          off
global_ssp                                  off
gpg_agent_env_file                          off
gpg_web_anon_write                          off
httpd_builtin_scripting                     on
httpd_can_check_spam                        off
httpd_can_network_connect                   off
httpd_can_network_connect_cobbler           off
httpd_can_network_connect_db                on
httpd_can_network_memcache                  off
httpd_can_network_relay                     off
httpd_can_sendmail                          on
httpd_dbus_avahi                            on
httpd_enable_cgi                            on
httpd_enable_ftp_server                     off
httpd_enable_homedirs                       on
httpd_execmem                               off
httpd_manage_ipa                            off
httpd_read_user_content                     off
httpd_setrlimit                             off
httpd_ssi_exec                              off
httpd_tmp_exec                              off
httpd_tty_comm                              on
httpd_unified                               on
httpd_use_cifs                              off
httpd_use_gpg                               off
httpd_use_nfs                               off
httpd_use_openstack                         off
icecast_connect_any                         off
init_upstart                                on
irssi_use_full_network                      off
logging_syslogd_can_sendmail                off
mmap_low_allowed                            off
mozilla_read_content                        off
mysql_connect_any                           off
named_write_master_zones                    off
ncftool_read_user_content                   off
nscd_use_shm                                on
nsplugin_can_network                        on
openvpn_enable_homedirs                     on
piranha_lvs_can_network_connect             off
pppd_can_insmod                             off
pppd_for_user                               off
privoxy_connect_any                         on
puppet_manage_all_files                     off
puppetmaster_use_db                         off
qemu_full_network                           on
qemu_use_cifs                               on
qemu_use_comm                               off
qemu_use_nfs                                on
qemu_use_usb                                on
racoon_read_shadow                          off
rgmanager_can_network_connect               off
rsync_client                                off
rsync_export_all_ro                         off
rsync_use_cifs                              off
rsync_use_nfs                               off
samba_create_home_dirs                      off
samba_domain_controller                     off
samba_enable_home_dirs                      off
samba_export_all_ro                         off
samba_export_all_rw                         off
samba_run_unconfined                        off
samba_share_fusefs                          off
samba_share_nfs                             off
sanlock_use_nfs                             off
sanlock_use_samba                           off
secure_mode                                 off
secure_mode_insmod                          off
secure_mode_policyload                      off
sepgsql_enable_users_ddl                    on
sepgsql_unconfined_dbadm                    on
sge_domain_can_network_connect              off
sge_use_nfs                                 off
smartmon_3ware                              off
spamassassin_can_network                    off
spamd_enable_home_dirs                      on
squid_connect_any                           on
squid_use_tproxy                            off
ssh_chroot_rw_homedirs                      off
ssh_sysadm_login                            off
telepathy_tcp_connect_generic_network_ports off
tftp_anon_write                             off
tor_bind_all_unreserved_ports               off
unconfined_login                            on
unconfined_mmap_zero_ignore                 off
unconfined_mozilla_plugin_transition        off
use_fusefs_home_dirs                        off
use_lpd_server                              off
use_nfs_home_dirs                           on
use_samba_home_dirs                         off
user_direct_dri                             on
user_direct_mouse                           off
user_ping                                   on
user_rw_noexattrfile                        on
user_setrlimit                              on
user_tcp_server                             off
user_ttyfile_stat                           off
varnishd_connect_any                        off
vbetool_mmap_zero_ignore                    off
virt_use_comm                               off
virt_use_fusefs                             off
virt_use_nfs                                off
virt_use_samba                              off
virt_use_sanlock                            off
virt_use_sysfs                              on
virt_use_usb                                on
virt_use_xserver                            off
webadm_manage_user_files                    off
webadm_read_user_files                      off
wine_mmap_zero_ignore                       off
xdm_exec_bootloader                         off
xdm_sysadm_login                            off
xen_use_nfs                                 off
xguest_connect_network                      on
xguest_mount_media                          on
xguest_use_bluetooth                        on
xserver_object_manager                      off

2
Tìm thấy một danh sách tốt wiki.centos.org/TipsAndTricks/SelinuxBooleans
Christian

Câu trả lời:


32

Không ai trong số họ, ít nhất là không phải bởi chính nó. Bạn phải cung cấp cho cấu trúc thư mục một bối cảnh httpd_sys_rw_content_thoặc cung cấp cho chúng một bối cảnh public_content_rw_tvà kích hoạt allow_httpd_anon_writevà / hoặc allow_httpd_sys_script_anon_write. Xem httpd_selinux(8)trang người đàn ông để biết chi tiết.


5
Vâng, tôi đã chạy chcon -R -t httpd_sys_rw_content_t uservà nó hoạt động. Chỉ cần một chút lo lắng vì tôi đã thay thế user_home_dir_tvà những tác động.
Christian

2
Nó thay thế bối cảnh hiện có. Nhưng trừ khi bạn đang chạy chính sách nghiêm ngặt, điều này không thành vấn đề vì các quy trình người dùng chạy vào unconfined_t, có thể truy cập tất cả các bối cảnh được cấp quyền * nix thích hợp.
Ignacio Vazquez-Abrams

Xin chào Inacio. Mặc dù bây giờ tôi có thể chạy trang web mà không gặp sự cố nào, tôi không thể tải lên qua FTP trừ khi tôi đặt chconlại user_home_dir_t. Bất kỳ ý tưởng nào khác :) Tôi đang sử dụng vsftpd.
Christian

1
đã chạy lệnh restorecon và giờ nó đã hoạt động :)
Christian

16
Tôi đã chạy chcon -R -t httpd_sys_rw_content_t /pathvà nó hoạt động, sau đó thực hiện các thay đổi liên tục semanage fcontext -a -t httpd_sys_rw_content_t "/path(/.*)?"theo Tài liệu Centos
DWils

9

Mặc dù tốt hơn là gắn nhãn các tệp và thư mục ở những httpd_sys_rw_content_tnơi cần thiết, nhưng để hoàn thiện tôi đã đề cập rằng tôi cũng có thể thay đổi seboolean httpd_unifiedthành 1 để làm cho SELinux bỏ qua yêu cầu ngữ cảnh cụ thể này, điều này vẫn tốt hơn nhiều so với việc vô hiệu hóa Selinux như nhiều người trên mạng sẽ khuyên.

Từ trang người đàn ông:

httpd có thể được cấu hình để không phân biệt các điều khiển tệp dựa trên ngữ cảnh, tức là tất cả các tệp được gắn nhãn là bối cảnh httpd có thể được đọc / ghi / exe- cute. Đặt boolean này thành false cho phép bạn thiết lập chính sách bảo mật sao cho một dịch vụ httpd không thể can thiệp vào dịch vụ khác.

setsebool -P httpd_unified 0


0

Bạn sẽ tìm thấy tài liệu rất tốt tại RedHat trên selinux một hướng dẫn .pdf 180 trang bạn có thể tải xuống, nhưng cách tốt nhất để xử lý các vấn đề về selinux là mở một thiết bị đầu cuối và nhập như sử dụng các công cụ tự động.

Thử:

aureport -a (là root)

Sau đó lặp lại hành vi gây ra vấn đề. Bạn sẽ có một màn hình đẹp về vấn đề và những cách bạn có thể muốn xem xét khắc phục nó (trong trường hợp của tôi đó là một thư mục mà apache không thể ghi vào).

aureport bắt đầu một chương trình báo cáo, sẽ cung cấp cho bạn một số lựa chọn thay thế khi có sự cố. Chúng được giải thích rõ ràng bởi những người nói tiếng Anh. Tôi đã dành hàng giờ cho một vấn đề selinux, sau đó tìm đến viên ngọc nhỏ này trong tài liệu redhat và tôi đã khắc phục vấn đề này sau 30 giây. Một trong những lựa chọn là tại chỗ.

/ Len


-3
semanage permissive -a httpd_t

đã lừa tôi


3
Chào mừng bạn đến với U & L SE. Xin vui lòng bạn có thể chỉnh sửa câu trả lời của bạn để giải thích thêm. Làm thế nào mà làm việc? Một ít thông tin sẽ hữu ích, đặc biệt cho những người khác gặp câu trả lời của bạn sau này.
roaima

Mà chỉ là tắt an ninh cho apache. Ý tưởng tồi trừ khi bạn đang làm việc trong môi trường đầu.
gbtimmon
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.