Bilgisayarımda birden fazla kişi oturum açtıysa, Ubuntu bilgisayarı kapatırken süper kullanıcı doğrulaması gerektirir. Bunu, herhangi bir kullanıcının parola sorulmadan bilgisayarı kapatması için nasıl yapabilirim?
Bilgisayarımda birden fazla kişi oturum açtıysa, Ubuntu bilgisayarı kapatırken süper kullanıcı doğrulaması gerektirir. Bunu, herhangi bir kullanıcının parola sorulmadan bilgisayarı kapatması için nasıl yapabilirim?
Yanıtlar:
Bir geçici çözüme ihtiyacınız yoktur, kapanma için yönetici olarak kimlik doğrulaması yapmadan kapatmanıza izin vermek için politikayı değiştirmeniz ve birden fazla kullanıcı oturum açtığında yeniden başlatmanız yeterlidir.
/Usr/share/polkit-1/actions/org.freedesktop.consolekit.policy dosyasını favori metin editörünüzü kullanarak düzenleyin. Kök izinlerine ihtiyacınız olacak.
Başkaları tarafından oturum açıldığında kapatma ile ilgili bölümü değiştirin.
<action id="org.freedesktop.consolekit.system.stop-multiple-users">
<description>Stop the system when multiple users are logged in</description>
<message>System policy prevents stopping the system when other users are logged in</message>
<defaults>
<allow_inactive>no</allow_inactive>
<allow_active>auth_admin_keep</allow_active>
</defaults>
</action>
için
<action id="org.freedesktop.consolekit.system.stop-multiple-users">
<description>Stop the system when multiple users are logged in</description>
<message>System policy prevents stopping the system when other users are logged in</message>
<defaults>
<allow_inactive>no</allow_inactive>
<allow_active>yes</allow_active>
</defaults>
</action>
ve başkaları tarafından oturum açıldığında yeniden başlatmayla ilgili bölüm
<action id="org.freedesktop.consolekit.system.restart-multiple-users">
<description>Restart the system when multiple users are logged in</description>
<message>System policy prevents restarting the system when other users are logged in</message>
<defaults>
<allow_inactive>no</allow_inactive>
<allow_active>auth_admin_keep</allow_active>
</defaults>
</action>
için
<action id="org.freedesktop.consolekit.system.restart-multiple-users">
<description>Restart the system when multiple users are logged in</description>
<message>System policy prevents restarting the system when other users are logged in</message>
<defaults>
<allow_inactive>no</allow_inactive>
<allow_active>yes</allow_active>
</defaults>
</action>
Bu, birden fazla kullanıcı oturum açtığında bilgisayarı kapatmanıza ve yeniden başlatmanıza izin verir. Bunu yapmak isteyip istemediğiniz farklı bir sorudur.
Richard Holloway'ın cevabı aslında PolickKit yetkilendirmelerinin verilmesi gereken bir yol değil. Altında kurulu olan dosyalar /usr/share/polkit-1/actions
değiştirilmemiştir. Bunun yerine, altındaki yetkilileri değiştirmelisiniz /etc/polkit-1/localauthority/50-local.d/
.
İşte bu soru için nasıl yaptığınız:
/etc/polkit-1/localauthority/50-local.d/allow_all_users_to_shutdown.pkla
Buna sudoedit
benzemek için adlı bir dosya oluşturun ve düzenleyin :
[Allow all users to shutdown]
Identity=unix-user:*
Action=org.freedesktop.consolekit.system.stop-multiple-users
ResultInactive=no
ResultActive=yes
Sonra .pkla
aynı dizinde başka bir dosya oluşturun . .pkla
Örneğin, bitirmek istediğiniz herhangi bir adı kullanın allow_all_users_to_restart.pkla
ve bu içerikleri aşağıdakilerle doldurun:
[Allow all users to restart]
Identity=unix-user:*
Action=org.freedesktop.consolekit.system.restart-multiple-users
ResultInactive=no
ResultActive=yes
/var/lib/polkit-1/localauthority/50-local.d
ek satır ResultAny=yes
gerekliydi. Şimdi aldığım tek uyarı mesajı Failed to set wall message, ignoring: Interactive authentication required.
, ancak kapatma ve yeniden başlatma şimdi düzgün çalışıyor.
sysctl poweroff -i
gerekli olan org.freedesktop.login1.power-off-multiple-sessions
, bu yüzdenAction=org.freedesktop.login1.power-off-multiple-sessions
Daha iyi bir yol var. Eğer dbus-send'iniz kurulu ise, root haklarına tırmanmaya gerek kalmadan dbus üzerinden kapatabilirsiniz .
Belgelerin bulunduğu sayfayı hatırlayamıyorum, ancak bir Archlinux kullanıcısı bunu çözdü.
Kapat:
dbus-send --system --print-reply --dest=org.freedesktop.Hal \
/org/freedesktop/Hal/devices/computer \
org.freedesktop.Hal.Device.SystemPowerManagement.Shutdown
Yeniden Başlatma:
dbus-send --system --print-reply --dest=org.freedesktop.Hal \
/org/freedesktop/Hal/devices/computer \
org.freedesktop.Hal.Device.SystemPowerManagement.Reboot
Askıya:
dbus-send --system --print-reply --dest=org.freedesktop.Hal \
/org/freedesktop/Hal/devices/computer \
org.freedesktop.Hal.Device.SystemPowerManagement.Suspend int32:1
Hazırda:
dbus-send --system --print-reply --dest=org.freedesktop.Hal \
/org/freedesktop/Hal/devices/computer \
org.freedesktop.Hal.Device.SystemPowerManagement.Hibernate
Saygılarımızla.
HAL şimdi kaldırıldı ve en son Ubuntu sürümlerinde kurulmadı gibi görünüyor.
Güç durumunu yönetmek için ConsoleKit ve UPower dbus servislerini kullanmalısınız
Kapat:
dbus-send --system --print-reply --dest="org.freedesktop.ConsoleKit" /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Stop
Tekrar başlat:
dbus-send --system --print-reply --dest="org.freedesktop.ConsoleKit" /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Restart
Askıya:
dbus-send --system --print-reply --dest="org.freedesktop.UPower" /org/freedesktop/UPower org.freedesktop.UPower.Suspend
Hazırda:
dbus-send --system --print-reply --dest="org.freedesktop.UPower" /org/freedesktop/UPower org.freedesktop.UPower.Hibernate
Arch Linux forumlarına teşekkürler .
Bu şu an için Precise ve Quantal'da çalışıyor, ancak Freedesktop odağının ConsoleKit'ten sisteme ne kadar süre geçtiğini bilmiyorsunuz. Kanonik umrunda mı?
Bu 14.04 tarihinde çalışır. Bir önceki, IMO, Flimm tarafından doğru cevabın güncellenmiş bir varyasyonu .
sudo mkdir -p /etc/polkit-1/localauthority/50-local.d
sudoedit /etc/polkit-1/localauthority/50-local.d/allow_all_users_to_shutdown_reboot_suspend.pkla
Bunu içine yapıştırın:
[Allow all users to shutdown]
Identity=unix-user:*
Action=org.freedesktop.login1.power-off-multiple-sessions
ResultActive=yes
[Allow all users to reboot]
Identity=unix-user:*
Action=org.freedesktop.login1.reboot-multiple-sessions
ResultActive=yes
[Allow all users to suspend]
Identity=unix-user:*
Action=org.freedesktop.login1.suspend-multiple-sessions
ResultActive=yes
[Allow all users to ignore inhibit of shutdown]
Identity=unix-user:*
Action=org.freedesktop.login1.power-off-ignore-inhibit
ResultActive=yes
[Allow all users to ignore inhibit of reboot]
Identity=unix-user:*
Action=org.freedesktop.login1.reboot-ignore-inhibit
ResultActive=yes
[Allow all users to ignore inhibit of suspend]
Identity=unix-user:*
Action=org.freedesktop.login1.suspend-ignore-inhibit
ResultActive=yes
Diğer kullanıcılar bir terminal penceresi açmak ve reboot
komutunu root olarak vermek yerine oturum açarken yeniden başlatırken bir süper kullanıcı şifresi istemini atlamanın bir yolu yoktur :
sudo reboot
Yine de, kullanıcı hesabınızı isteyen şifreyi atlayacak şekilde yapılandırılmadıysa bile, sudo
sizden şifrenizi isteyecektir.
Endişelenme, bunlar İYİ şeyler. Yeniden başlatma nadir olmalı ve basit bir yönetici parolası istemi yanlışlıkla kendinizi hosing kaydeder!
Bu görevi gerçekleştirmek için izin vermek istediğiniz gruba / kullanıcıya atanan sudoers dosyasına durdur ve / veya yeniden başlat. Bu şekilde, kimin kapanabileceğini, ancak makineye tam erişim izni vermeden kontrol edebilirsiniz.
http://linux.byexamples.com/archives/315/how-to-shutdown-and-reboot-without-sudo-password/
Görünüşe göre, GUI'den root kullanmadan kapatabilirsiniz, çünkü gdm root olarak çalışıyor. Gnome, gdm'ye kapanmasını söyler ve gdm yapar.
Senaryo ile benzer bir şeyler yapabilirsin. BASH ile ne kadar kullanışlı olduğunuzdan emin değilim, ancak birinin root olarak çalışan bir komut dosyası yazabileceğine ve belirli bir sinyal aldığında kapatma komutunu çalıştıracağına inanıyorum.
Bunun bir güvenlik sorunu oluşturabileceğini unutmayın.