root olduğunda systemctl erişimi reddedildi


16

Koştuğumda

sudo systemctl disable avahi-daemon.socket

alırım

Failed to execute operation: Access denied

Ancak kök olarak çalıştırılır, erişim nasıl engellenebilir? (CentOS 7)


Docker veya LXC veya LXD gibi bir kapta mı çalışıyorsunuz? Eğer Do Emin sen ya bir kap içinde değil mi?
allquixotic

VirtualBox'ta yeni bir CentOS kurulumu çalıştırıyorum. Bu bir konteyner olarak sayılıyor mu?
spraff

Hayır, VirtualBox bir kap değil, sanal bir makine. Temelde farklılar. Büyük olasılıkla journalctl -xebunun neden olduğunu anlamak için koşmanız gerekiyor.
allquixotic

1
Bu hata iletisinin ("İşlem yürütülemedi: Erişim reddedildi"), zorlama modunda varolmayan bir hizmete erişmeye çalışırken de oluşabileceğini unutmayın. İzin verilen modda, "İşlem yürütülemedi: Böyle bir dosya veya dizin yok" iletisini alırsınız.
danmichaelo

Yanıtlar:


23

Ben de CentOS 7 üzerinde çalışıyorum ve benzer bir sorun vardı:

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

İnkar SELinux ile ilgilidir. SELinux'u enforcingmodda çalıştırıyorsanız, durumunuz bu olabilir :

# getenforce
Enforcing

Benim durumumda, systemctlhata USER_AVCSELinux günlük dosyasında bir reddetme üretmişti /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=?'

Çözüm

Bu makalede , bunun systemd'deki bir hatadan kaynaklandığı belirtilir ve geçici bir çözüm sağlanır:

systemctl daemon-reexec

İkincil çözüm

Yukarıdakiler işe yaramadıysa, SELinux modunu şu şekilde ayarlayabilirsiniz permissive:

setenforce 0

ve iyi çalışmalı. Ancak, bu 2. çözümün güvenlik sonuçları vardır.


Bunun yerine çıktı Removed symlinksystemctl disable avahi-daemon.socketaudit.log
almıyorum

Selinux zorlama modunu devre dışı bırakmayı deneyebilir misiniz? setenforce 0
Elouan Keryell-Even

1
systemctl disable avahi-daemon.socketsonra setenforce 0olmadan başarılı systemctl daemon-reexec(ve şimdi unmaskbenim değil, senin emrinin olduğunu anlıyorum :-)) Sadece bunu yapmak ve setenforce 1sonra tamam mı ?
16:14

@spraff Bilmiyorum, ben bir SELinux acemi ha ha. O zaman cevabımda bahsedeceğim setenforce 0.
Elouan Keryell-Even

1
Lütfen yapma setenforce 0. Bu, üretim ortamında kötü bir uygulamadır. Lütfen systemctl daemon-reexecbunun yerine kullanın.
Younes

10

Benim durumumda, yeni sürüme geçtim systemdve herhangi bir systemctlkomut başarısız oldu:

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

Ancak, initmantaja göre , aynı şeyi SIGTERMPID 1 olarak çalışan arka plana göndererek de yapabilirsiniz :

kill -TERM 1

Bu, arka plan programını yeniden yükledi, ardından tüm systemctlkomutlar tekrar çalışmaya başladı.


1
Teşekkürler. Uzun bir süre sonra bir archlinux dağıtımını yükselttikten sonra yaşadığım sorun çözüldü.
buergi

1
Ubuntu 18.10 üzerinde çalıştı - Teşekkürler!
Roy Shilkrot

1

Hiçbir çözüm benim için işe yaramadı. .Service dosyamdaki satırlardan birinde eksik = işareti olduğu ortaya çıktı. Ben / var / log / mesajlar bakarak bu keşfetti ve orada daha açıklayıcı bir hata gördüm. Bu yüzden Erişim Reddedildi yanıltıcıydı. Bu gerçekten bir güvenlik sorunu değildi.


3
Bu soruyu nasıl çözeceğiniz hakkında daha ayrıntılı bilgi vermelisiniz. Örneğin, daha ayrıntılı bir hata mesajından bahsediyorsunuz, ancak hata mesajının tam olarak ne olduğunu belirtmiyorsunuz. Bu bilgi olmadan, bu daha iyi bir yorum olarak sunulacaktır, çünkü bu bilgi içermeyen bu cevap eksiktir.
Ramhound

hangi günlük dosyası mesajı gösterdi?
rogerdpack
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.