SELinux로 인해 httpd가 폴더 / 파일에 쓸 수 없습니다


30

누구든지 / home / user / html에 httpd 쓰기 액세스를 허용하는 sebool을 알고 있습니까? SELinux를 비활성화하면 echo 0 > /selinux/enforce쓸 수 있으므로 SELinux와 관련이 있습니다. 큰 구멍을 열지 않고 어느 것이 올바른지 알지 못하며 Google 은별로 도움이되지 않습니다.

#[/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
좋은 목록을 찾았습니다. wiki.centos.org/TipsAndTricks/SelinuxBooleans
Christian

답변:


32

그들 중 적어도 하나는 아닙니다. 디렉토리 구조에 컨텍스트를 httpd_sys_rw_content_t제공하거나 컨텍스트 public_content_rw_t및 활성화 allow_httpd_anon_write및 / 또는 컨텍스트를 제공해야합니다 allow_httpd_sys_script_anon_write. 자세한 내용은 httpd_selinux(8)매뉴얼 페이지를 참조하십시오.


5
글쎄, 나는 달렸다 chcon -R -t httpd_sys_rw_content_t user. 내가 교체했기 때문에 조금 걱정 user_home_dir_t하고 그 의미.
Christian

2
기존 컨텍스트를 대체합니다. 그러나 엄격한 정책을 실행하지 않으면 사용자 프로세스가에서 실행되므로 문제가되지 않습니다 unconfined_t. 적절한 * nix 권한이 주어지면 모든 컨텍스트에 액세스 할 수 있습니다.
Ignacio Vazquez-Abrams

안녕하세요 이나시오. 지금은 아무 문제없이 웹 사이트를 실행할 수 있어요 있지만, 본인은 설정하지 않는 한 FTP를 통해 업로드 할 수없는 생각 chcon에 다시 user_home_dir_t. 다른 아이디어 :) 사용하고 vsftpd있습니다.
Christian

1
restorecon 명령을 실행하고 이제 작동합니다 :)
Christian

16
내가 실행 chcon -R -t httpd_sys_rw_content_t /path하고 일 후가와 지속적인 변화 만든 semanage fcontext -a -t httpd_sys_rw_content_t "/path(/.*)?"CentOS의 문서
DWils

9

httpd_sys_rw_content_t필요한 곳에 파일과 폴더에 레이블을 붙이는 것이 좋지만, 완전성 httpd_unified을 위해 seLinux 를이 특정 컨텍스트 요구 사항을 무시하도록 seboolean 을 1로 변경할 수 있다고 언급했습니다 .SELinux 를 비활성화하는 것보다 훨씬 낫습니다 인터넷에있는 많은 사람들이 조언 할 것입니다.

매뉴얼 페이지에서 :

httpd는 컨텍스트에 따라 파일 제어를 차별화하지 않도록 구성 할 수 있습니다. 즉, httpd 컨텍스트로 레이블이 지정된 모든 파일을 읽기 / 쓰기 / 실행할 수 있습니다. 이 부울을 false로 설정하면 하나의 httpd 서비스가 다른 서비스를 방해 할 수 없도록 보안 정책을 설정할 수 있습니다.

setsebool -P httpd_unified 0


0

selinux의 RedHat에서 다운로드 할 수있는 180 페이지 .pdf 매뉴얼을 참조하십시오. 그러나 selinux 문제를 처리하는 가장 좋은 방법은 터미널을 열고 자동화 된 도구를 사용하여 입력하는 것입니다.

시험:

아우 레포트 -a (루트)

그런 다음 문제를 일으키는 문제를 반복하십시오. 문제와 문제 해결 방법을 잘 보여줍니다 (제 경우에는 아파치가 쓸 수없는 폴더였습니다).

aureport는보고 프로그램을 시작하여 문제가 발생했을 때 몇 가지 대안을 제공합니다. 영어를하는 사람들이 명확하게 설명합니다. 나는 selinux 문제에 몇 시간을 보냈고 redhat 문서 에서이 작은 보석을 얻었고 30 초 안에 문제가 해결되었습니다. 선택 중 하나가 발견되었습니다.

/ 렌


-3
semanage permissive -a httpd_t

나를 위해 트릭을 했어


3
U & L SE에 오신 것을 환영합니다. 좀 더 설명하기 위해 답을 편집 해 주 시겠습니까? 어떻게 작동 했습니까? 약간의 정보, 특히 나중에 답을 찾는 다른 사람들에게 유용 할 것입니다.
roaima

아파치에 대한 보안을 해제하는 것입니다. 스크래치 환경에서 작업하지 않는 한 나쁜 생각입니다.
gbtimmon
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.