Diretórios iniciais criados com contexto Selinux errado

2
[root@tst-01 home]# ls -Z
drwxr-xr-x. ujjain   users          system_u:object_r:home_root_t:s0 ujjain
drwxr-xr-x. johndoe   users          system_u:object_r:home_root_t:s0 johndoe

O contexto do selinux deve ser object_r: user_home_dir_t.

[root@tst-01 ~]# sesearch -T -t home_root_t
Found 10 semantic te rules:
   type_transition oddjob_mkhomedir_t home_root_t : dir user_home_dir_t;
   type_transition automount_t home_root_t : dir automount_tmp_t;
   type_transition lsassd_t home_root_t : dir user_home_dir_t;
   type_transition useradd_t home_root_t : dir user_home_dir_t;
   type_transition firstboot_t home_root_t : dir user_home_dir_t;
   type_transition smbd_t home_root_t : dir user_home_dir_t;
   type_transition quota_t home_root_t : file quota_db_t;
   type_transition sysadm_t home_root_t : dir user_home_dir_t;
   type_transition cups_pdf_t home_root_t : dir user_home_dir_t;
   type_transition postfix_virtual_t home_root_t : dir user_home_dir_t;

[root@tst-01 ~]# 

Novos diretórios home são criados com o contexto errado do Selinux. Eu posso consertar o contexto do selinux com chcon, mas isso cria problemas em vários servidores.

Qual pode ser a razão pela qual o contexto foi colocado errado em primeiro lugar?

    
por ujjain 09.07.2013 / 15:15

3 respostas

3

O problema parece estar aqui:

[root@tst-01 ~]# grep homedir /etc/pam.d/system-auth
session     optional      pam_mkhomedir.so skel=/etc/skel

Como a pilha de pam não deve estar fazendo homedirs, o módulo de trabalho ímpar deve ser usado para fazer o trabalho pesado com o módulo pam_oddjob_mkhomedir, pois ele requer menos permissões e funciona bem com o SELinux.

    
por 22.07.2013 / 16:31
4

No caso dos diretórios $HOME do usuário, geralmente em /home/$USER , você não precisa usar chcon , que altera o contexto de segurança dos arquivos e diretórios, no sentido de desviá-los da diretiva, e, pelo que vale, não sobreviverá a uma reclassificação do sistema. Em vez disso, você precisa descobrir qual é o contexto de segurança esperado dos diretórios:

# matchpathcon /home/ujjain
# matchpathcon /home/johndoe

E se o contexto não corresponder à saída de ls -lrtZ , restaure o contexto:

# restorecon -v /home/ujjain
# restorecon -v /home/johndoe

Observe que restorecon pode ser usado recursivamente -R .

Com relação à sua pergunta, o motivo pelo qual esses diretórios têm um rótulo incorreto depende do procedimento usado para criá-los (que você não especificou) e do local do diretório /home (sistema de arquivos local vs. NFS, por exemplo )

    
por 09.07.2013 / 18:54
3

Somando-se a essa pergunta para pessoas futuras que podem se deparar com isso. Se você está colocando diretórios home em um compartilhamento NFS, você precisará definir o contexto correto do SELinux. Supondo que seu diretório pessoal do nfs seja / nfshome, faça o seguinte:

[root@host /]# semanage fcontext -a -e /home /nfshome
[root@host /]# restorecon -vR /nfshome
    
por 13.06.2015 / 21:11