systemctl access denied when root

13

Quando eu corro

sudo systemctl disable avahi-daemon.socket

Eu obtenho

Failed to execute operation: Access denied

Mas ele é executado como root, como o acesso pode ser negado? (CentOS 7)

    
por spraff 17.09.2016 / 00:54

2 respostas

18

Eu também trabalho no CentOS 7 e tive um problema semelhante:

# systemctl unmask tmp.mount
Failed to execute operation: Access denied

A negação tem a ver com o SELinux. Este pode ser o seu caso se você estiver executando o SELinux no modo enforcing :

# getenforce
Enforcing

No meu caso, o erro systemctl produziu uma USER_AVC de negação no arquivo de log do SELinux, /var/log/audit/audit.log :

type=USER_AVC msg=audit(1475497680.859:2656): pid=1 uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:init_t:s0 msg='avc:  denied  { enable } for auid=0 uid=0 gid=0 path="/dev/null" cmdline="systemctl unmask tmp.mount" scontext=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 tcontext=system_u:object_r:null_device_t:s0 tclass=service  exe="/usr/lib/systemd/systemd" sauid=0 hostname=? addr=? terminal=?'

Solução

Este artigo declara que é devido a um bug no systemd, e fornece uma solução:

systemctl daemon-reexec

Solução secundária

Se o acima não funcionar, você pode definir o modo SELinux como permissive :

setenforce 0

e deve funcionar bem. No entanto, esta segunda solução tem implicações de segurança.

    
por 03.10.2016 / 15:13
0

Nenhuma solução funcionou para mim. Acontece que havia um sinal de falta = em uma das linhas no meu arquivo .service. Eu descobri isso procurando / var / log / messages e vi um erro lá que era mais descritivo. Portanto, o acesso negado era enganoso. Não foi realmente um problema de segurança.

    
por 12.04.2017 / 16:50