Diagnosticando a saída do erro do rsync

3

Eu herdei um sistema Centos 6.5 que está emitindo várias linhas de erros ao executar um rsync . O rsync está sendo sincronizado com uma unidade conectada localmente, montada como /storage . O comando é:

rsync -aAXv /* /storage/backup/ --exclude={/dev/*,/proc/*,/sys/*,/tmp/*,/run/*,/mnt/*,/media/*,/lost+found,/storage/*}

Existem três tipos diferentes de erros observados após # Error concern 1, # Error concern 2, # Error concern 3 na saída abaixo:

rsync -aAXv /* /storage/backup/ --exclude={/dev/*,/proc/*,/sys/*,/tmp/*,/run/*,/mnt/*,/media/*,/lost+found,/storage/*}
sending incremental file list
etc/cron.d/
root/
root/.bash_history
root/.viminfo
selinux/booleans/abrt_anon_write
selinux/booleans/abrt_handle_event
selinux/booleans/allow_console_login

[...]

# Error concern 1: There are probably 80 or more of these mkstemp errors, but I've shortened it:

rsync: mkstemp "/storage/backup/selinux/class/x_pointer/perms/.setfocus.0C5BYW" failed: Permission denied (13)
rsync: mkstemp "/storage/backup/selinux/class/x_pointer/perms/.use.iRMquA" failed: Permission denied (13)
rsync: mkstemp "/storage/backup/selinux/class/x_pointer/perms/.write.rHXg0d" failed: Permission denied (13)
rsync: mkstemp "/storage/backup/selinux/class/x_property/.index.Zwc8vR" failed: Permission denied (13)
rsync: mkstemp "/storage/backup/selinux/class/x_property/perms/.append.tTK01u" failed: Permission denied (13)
rsync: mkstemp "/storage/backup/selinux/class/x_property/perms/.create.KGNUx8" failed: Permission denied (13)
rsync: mkstemp "/storage/backup/selinux/class/x_property/perms/.destroy.IiUP3L" failed: Permission denied (13)

[...]

# Error concern 2:

tmp/
rsync: rsync_xal_clear: lremovexattr("storage","security.selinux") failed: Permission denied (13)
var/cache/man/whatis    

[...]

# Error concern 3:

var/run/utmp
rsync: set_acl: sys_acl_set_file(var/run/cups/certs/0, ACL_TYPE_ACCESS): Operation not supported (95)
var/run/postgresql/.s.PGSQL.5432.lock

[...]

# Finishing output:

sent 4288406721 bytes  received 52199 bytes  86635533.74 bytes/sec
total size is 22337384552  speedup is 5.21
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1039) [sender=3.0.6]

Notas

O rsync parece rodar normalmente até atingir uma parte específica do diretório /selinux com arquivos ocultos. Quando o SELinux está configurado como permissivo, setenforce 0 , esses erros não ocorrem. Embora # Error concern 2 e # Error concern 3 ainda ocorram.

O contexto do SELinux dos diretórios /selinux e /storage é o seguinte:

drwxr-xr-x. root root system_u:object_r:security_t:s0  selinux
drwxr-xr-x. root root system_u:object_r:file_t:s0      storage
# /storage/backup directory
drwxr-xr-x. root root unconfined_u:object_r:public_content_t:s0 backup

Até agora, para # Error concern 2 e # Error concern 3 , não tenho leads.

Por favor, deixe-me saber se estou perdendo alguma coisa. Eu não estou tão bem familiarizado com o CentOS 6.5 como estou com 7 como eu não estou ciente por que existe um /selinux diretório fora de / . Eu tenho um servidor CentOS 7.2 que está fazendo o mesmo rsync para uma unidade de armazenamento anexada sem problemas. Qualquer ajuda ou sugestão seria muito apreciada.

Atualização 1

Alterei o contexto do SELinux em /storage/backup para public_content_rw_t via:

semanage fcontext -a -t public_content_rw_t "/storage/backup(/.*)?"
restorecon -Rv /storage/backup

Vou executar o rsync novamente em breve e informar se isso mudou alguma coisa.

Atualização 2

Eu executei o rsync novamente após o novo contexto de segurança e estou obtendo os mesmos resultados de erro. Eu estou querendo saber se rsyncing o diretório /selinux é realmente valeu a pena desde que o sistema deve ter /etc/selinux backup de qualquer maneira que teria todos os contextos se o sistema necessário para remarcar-se. Alguém pode falar sobre isso?

Atualização 3

Estou inclinado a não fazer o backup do diretório /selinux . O sestatus mostra essas diferenças entre o CentOS 6.5 e o CentOS 7.2:

CentOS 6.5
SELinux status:                    enabled
SELinuxfs mount:                   /selinux
Current mode:                      enforcing

CentOS 7.2
SELinux status:                    enabled
SELinuxfs mount:                   /sys/fs/selinux
SELinux root directory:            /etc/selinux
Loaded policy name:                targeted
Current mode:                      enforcing

Pelo que eu entendi, o diretório /selinux está sendo usado como um ponto de montagem para o sistema de arquivos do SElinux? Eu me pergunto se esta é a causa dos erros.

    
por hashwagon 15.12.2016 / 21:03

1 resposta

1

A diferença entre /selinux e /etc/selinux (no RHEL / CentOS 6) é que o primeiro é um "pseudo flesystem para exportar a API da política de segurança " (lembre-se de que o Mandatory Access Control é aplicado pelo kernel); enquanto o último "contém arquivos de configuração que são locais para a máquina" .

Você não deve incluir o pseudo sistema de arquivos /selinux (ou qualquer outro) ao sincronizar.

Há um bom Q / A em Unix & Linux sobre este assunto, com documentação vinculada muito útil.

    
por 30.12.2016 / 21:38