Go to main content
Guía del usuario del software de la arquitectura de gestión de fallos de Oracle® Linux

Salir de la Vista de impresión

Actualización: Octubre de 2015
 
 

Es posible que el daemon de fmd no se inicie si SELinux está en ejecución

Es posible que el daemon de fmd no se inicie si SELinux está en ejecución. SELinux protege el acceso a ciertos directorios y archivos. En particular, es probable que se deniegue el acceso a los archivos log en /var/opt/fma/fm/fmd.

El problema aparece cuando se intentan ejecutar los comandos de fmadm. Por ejemplo, verá el siguiente error:

fmadm: failed to connect to fmd: RPC: Program not registered

Además, aparecerán mensajes de error en el log del sistema, como el siguiente:

May 28 03:07:14 sca05-0a81e7e6 setroubleshoot: SELinux is preventing logrotate from read access on the directory /var/opt/fma/fm/fmd. For complete SELinux messages. run sealert -l 9eb4cb40-9d2b-4428-980f-c4e46606aec1

  1. Siga las instrucciones para ejecutar sealert como se especifica en el archivo log. Por ejemplo:

    sealert -l 9eb4cb40-9d2b-4428-980f-c4e46606aec1

    La salida es similar a la siguiente:

    [root@testserver16 ~]# sealert -l 9eb4cb40-9d2b-4428-980f-c4e46606aec1
    SELinux is preventing logrotate from read access on the directory /var/opt/fma/fm/fmd.
    
    *****  Plugin catchall_labels (83.8 confidence) suggests  ********************
    
    If you want to allow logrotate to have read access on the fmd directory
    Then you need to change the label on /var/opt/fma/fm/fmd
    Do
    # semanage fcontext -a -t FILE_TYPE '/var/opt/fma/fm/fmd'
    where FILE_TYPE is one of the following: abrt_var_cache_t, var_lib_t, configfile, domain, 
    var_log_t, var_run_t, cert_type, configfile, net_conf_t, inotifyfs_t, logrotate_t, 
    sysctl_kernel_t, mailman_log_t, sysctl_crypto_t, admin_home_t, varnishlog_log_t, 
    openshift_var_lib_t, user_home_dir_t, var_lock_t, bin_t, device_t, devpts_t, locale_t, 
    etc_t, tmp_t, usr_t, proc_t, abrt_t, device_t, lib_t, logrotate_var_lib_t, root_t, 
    etc_t, usr_t, sssd_public_t, sysfs_t, httpd_config_t, logrotate_tmp_t, logfile, 
    pidfile, named_cache_t, munin_etc_t, mysqld_etc_t, acct_data_t, security_t, var_spool_t, 
    nscd_var_run_t, sysctl_kernel_t, nfs_t.
    Then execute:
    restorecon -v '/var/opt/fma/fm/fmd'
    
    *****  Plugin catchall (17.1 confidence) suggests  ***************************
    
    If you believe that logrotate should be allowed read access on the fmd directory 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 logrotate /var/log/audit/audit.log | audit2allow -M mypol
    # semodule -i mypol.pp
  2. Ejecute los siguientes comandos, como se sugiere en el archivo log:

    grep logrotate /var/log/audit/audit.log | audit2allow -M name

    semodule -i name.pp

    Donde name es el nombre del archivo del módulo de política personalizada.

  3. Repita los pasos 1 y 2 para todos los errores de acceso a archivos de SELinux. Asigne nombres diferentes a cada uno de los archivos .pp.
  4. Cuando termine, reinicie el sistema.

    La ejecución de los comandos fmadm ahora debería devolver una salida adecuada, sin ningún mensaje de error.