accesso systemctl negato quando root


16

Quando corro

sudo systemctl disable avahi-daemon.socket

ottengo

Failed to execute operation: Access denied

Ma viene eseguito come root, come si può negare l'accesso? (CentOS 7)


Stai correndo in un container, come Docker o LXC o LXD? Non si sa per certo siete o non siete in un contenitore?
allquixotic,

Sto eseguendo una nuova installazione CentOS in VirtualBox. Conta come un contenitore?
spruzzo

No, VirtualBox non è un contenitore, è una macchina virtuale. Sono fondamentalmente diversi. Molto probabilmente devi correre journalctl -xeper capire perché questo sta accadendo.
allquixotic,

1
Si noti che questo messaggio di errore ("Impossibile eseguire l'operazione: accesso negato") può verificarsi anche quando si tenta di accedere a un servizio inesistente in modalità di esecuzione. In modalità permissiva, si otterrà "Impossibile eseguire l'operazione: nessun file o directory".
danmichaelo,

Risposte:


23

Lavoro anche su CentOS 7 e ho avuto un problema simile:

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

Il rifiuto ha a che fare con SELinux. Questo può essere il tuo caso se esegui SELinux in enforcingmodalità:

# getenforce
Enforcing

Nel mio caso, l' systemctlerrore aveva prodotto un USER_AVCrifiuto nel file di registro 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=?'

Soluzione

Questo articolo afferma che è dovuto a un bug in systemd e fornisce una soluzione:

systemctl daemon-reexec

Soluzione secondaria

Se quanto sopra non ha funzionato, puoi impostare la modalità SELinux su permissive:

setenforce 0

e dovrebbe funzionare bene. Tuttavia, questa seconda soluzione ha implicazioni per la sicurezza.


Non ottengo output invece di Removed symlinke successivamente systemctl disable avahi-daemon.socketfallisce come prima, producendo la stessa riga inaudit.log
spraff

Puoi provare a disabilitare la modalità di applicazione selinux? setenforce 0
Elouan Keryell-Even

1
systemctl disable avahi-daemon.socketci riesce dopo setenforce 0senza systemctl daemon-reexec(e mi rendo conto ora che unmaskè il tuo comando, non il mio :-)) Va bene solo fare questo e setenforce 1dopo?
spruzzo

@spraff Non lo so, sono un principiante SELinux ah ah. setenforce 0Allora menzionerò nella mia risposta.
Elouan Keryell-Even

1
Per favore, no setenforce 0. Questa è una cattiva pratica nell'ambiente di produzione. Si prega di utilizzare systemctl daemon-reexecinvece.
Younes,

10

Nel mio caso, mi ero appena aggiornato systemde qualsiasi systemctlcomando non andava a buon fine:

# systemctl daemon-reexec
Failed to reload daemon: Access denied
# systemctl status
Failed to read server status: Access denied

Tuttavia, secondo la initmanpage, puoi fare la stessa cosa inviando SIGTERMal demone in esecuzione come PID 1, che ha funzionato:

kill -TERM 1

Ciò ha ricaricato il demone, dopo di che tutti i systemctlcomandi hanno ripreso a funzionare.


1
Grazie. Risolto il problema che avevo dopo aver aggiornato una distro di archlinux dopo molto tempo.
Buergi,

1
ha funzionato su Ubuntu 18.10 - Grazie!
Roy Shilkrot,

1

Nessuna soluzione ha funzionato per me. Si è scoperto che mancava un segno = su una delle righe nel mio file .service. Ho scoperto questo guardando / var / log / messaggi e ho visto un errore che era più descrittivo. Quindi l'accesso negato era fuorviante. Non è stato davvero un problema di sicurezza.


3
Dovresti fornire maggiori dettagli su come risolvere questa domanda. Ad esempio, parli di un messaggio di errore più dettagliato, ma non indichi quale fosse esattamente il messaggio di errore. Senza queste informazioni, sarebbe meglio servire come commento, perché questa risposta senza queste informazioni è incompleta.
Ramhound,

quale file di registro ha mostrato il messaggio?
rogerdpack,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.