나는 PAM 모듈을 작성했습니다. 이 PAM 모듈은 gdm-password 및 gnome-screensaver 프로세스(RHEL 6.4에 있음)에 의해 로드됩니다. pam 모듈은 사용자의 홈 디렉터리인 /home/USER/appdir/data.db에 있는 db 파일에 일부 로그를 기록하려고 합니다. 그러나 SELinux는 이러한 액세스를 차단합니다. SELinux를 비활성화하여 이를 확인했습니다.
액세스를 허용하도록 FILE_TYPE을 변경할 수 있다는 내용을 읽었지만 이 경우 어떤 파일 형식이 적용되는지는 확실하지 않습니다.
SELinux is preventing /usr/libexec/gdm-session-worker from lock access on the file /home/USER/.appname/0.db.
***** Plugin catchall (100. confidence) suggests ***************************
If you believe that gdm-session-worker should be allowed lock access on the 0.db file by default.
Then you should report this as a bug.
You can generate a local policy module to allow this access.
Do
allow this access for now by executing:
# grep gdm-session-wor /var/log/audit/audit.log | audit2allow -M mypol
# semodule -i mypol.pp
Additional Information:
Source Context system_u:system_r:xdm_t:s0-s0:c0.c1023
...
SELinux가 액세스를 차단하는 다른 파일이 있습니다. 제안한 대로 FILE_TYPE을 pam_var_run_t로 변경했고 작동했습니다. 이 파일 형식에 대한 세부정보를 찾고 올바른 파일 형식을 선택했는지 확인하려고 합니다.
SELinux is preventing /usr/libexec/gdm-session-worker from write access on the file /var/cache/mysharedstore/mydatastores.reg.
***** Plugin catchall_labels (83.8 confidence) suggests ********************
If you want to allow gdm-session-worker to have write access on the mydatastores.reg file
Then you need to change the label on /var/cache/mysharedstore/mydatastores.reg
Do
# semanage fcontext -a -t FILE_TYPE '/var/cache/mysharedstore/mydatastores.reg'
where FILE_TYPE is one of the following: etc_runtime_t, pam_var_run_t, xdm_var_lib_t, xdm_var_run_t, pcscd_var_run_t, xkb_var_lib_t, anon_inodefs_t, gconf_home_t, xdm_rw_etc_t, user_cron_spool_t, xdm_home_t, xdm_lock_t, pam_var_console_t, cgroup_t, locale_t, var_auth_t, wtmp_t, afs_cache_t, xdm_t, user_fonts_t, user_tmpfs_t, user_tmp_t, xdm_spool_t, xserver_tmpfs_t, fonts_cache_t, xauth_home_t, auth_cache_t, xdm_tmpfs_t, security_t, xserver_log_t, proc_afs_t, faillog_t, puppet_tmp_t, xdm_tmp_t, lastlog_t, xdm_log_t, gnome_home_type, initrc_var_run_t, krb5_host_rcache_t, nfs_t, security_t.
Then execute:
restorecon -v '/var/cache/mydatastore/myatastores.reg'...