Kapatmayı yönetici şifresi gerektirmeden nasıl yapabilirim?


49

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?


3
+1 Kapatmak için bir şifre girmekten şüpheleniyorum, ev tabanlı bir bilgisayarda birçok kullanıcıyı rahatsız ediyor.
Richard Holloway

7
Diğerleri oturum açtığında bilgisayarı kapatırsanız, açık pencerelerine ne olur? Açık belgeleri? Bence otomatik olarak kurtarılmayan bir şey kayboluyor. Bu dikkate değer.
Torben Gundtofte-Bruun,

"Ubuntu, bilgisayarı kapatırken süper kullanıcı kimlik doğrulaması gerektiriyor", Ubuntu 11.10’da, süper kullanıcı yetkilendirmesi istenmiyor , menüyü kullanarak kapatırken, yalnızca çıkış olarak çalışıyor ve bu sorudaki gibi giriş sayfasına geliyor: askubuntu.com/ q / 64073/11995 , Ubuntu'yu benden süper kullanıcı şifresi isteyecek şekilde nasıl yapılandıracağımla ilgileniyorum?
Mikl

Yanıtlar:


27

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.



4
Polkit her yeniden kurulduğunda veya yükseltildiğinde değişiklikleriniz silinmeyecek mi?
Ryan Thompson,

3
@Ryan göre wiki.ubuntu.com/SecurityTeam/PolicyKitPermissions/12.04 içeride bir .pkla dosyası / etc / polkit-1 / localauthority yazabilirim ama onun sözdizimi :) (bazı burada bilgi hakkında emin değilim wiki. archlinux.org/index.php/PolicyKit#Authorities )
Joril

1
Aşağıda Flimm tarafından verilen yanıt daha iyi, bir güncelleme sırasında yazılmayacak askubuntu.com/a/251942/7472
Konstigt

1
Kuralları yeniden başlatmadan nasıl yeniden yükleyebilirim?
Suncatcher

33

Richard Holloway'ın cevabı aslında PolickKit yetkilendirmelerinin verilmesi gereken bir yol değil. Altında kurulu olan dosyalar /usr/share/polkit-1/actionsdeğ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.pklaBuna sudoeditbenzemek 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 .pklaaynı dizinde başka bir dosya oluşturun . .pklaÖrneğin, bitirmek istediğiniz herhangi bir adı kullanın allow_all_users_to_restart.pklave 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

Referanslar:


Bu çok garip bir sorunun çözümü olduğu ortaya çıktı. PowerBroker'ı yükledikten sonra 12.04'te (Active Directory'ye kimlik doğrulaması yapmak için), kullanıcılar bir bilgisayarı GUI ile başlatamaz veya kapatamazlar (ne lightdm ne de gösterge oturumu çalıştı. Giriş ekranına geri dönecektir.) Bu izinleri ekledikten sonra ilke seti, her şey çalıştı.
korylprince

man pklocalauthority Ubuntu'da bilgi var
Konstigt

4
İsimlerin şimdi değiştiğini unutmayın! Bu 14.04'ten itibaren: / usr / share / polkit-1 / actions $ grep multiple * org.freedesktop.login1.policy: <action id = "org.freedesktop.login1.power-off-çoklu oturumlar"> org.freedesktop .login1.policy: <action id = "org.freedesktop.login1.reboot-çoklu oturumlar"> org.freedesktop.login1.policy: <action id = "org.freedesktop.login1.suspend-çoklu oturumlar"> org .freedesktop.login1.policy: <action id = "org.freedesktop.login1.hibernate-çoklu oturumları">
Konstigt

1
16.04 için, @ Konstigt’in değişikliklerine ek olarak, benim için dosyaların içeri girmesi gerekiyordu ve her iki dosya için /var/lib/polkit-1/localauthority/50-local.dek satır ResultAny=yesgerekliydi. Ş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.
sigalor

@ sigalor'un yorumu benim için çalıştı, buna ek olarak sysctl poweroff -igerekli olan org.freedesktop.login1.power-off-multiple-sessions, bu yüzdenAction=org.freedesktop.login1.power-off-multiple-sessions
wickedchicken

16

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.


Vay bu ... hacky. Müthiş, henüz hack ...
jathanizm

1
Kapatma ve Yeniden Başlatma artık
11.10'da

@Mikl kurulum halini deneyin (sudo apt-get kurulum halini)
Epeli

12

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ı?


4

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

1

Diğer kullanıcılar bir terminal penceresi açmak ve rebootkomutunu 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, sudosizden ş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!


Ayrıca visudo'yu düzenleyebilir ve sudo yazarken, kullanıcıdan parola istememesini sağlayabilirsiniz.
Da1T

0

Bunun sadece komut satırından geçerken bir sorun olduğuna inanıyorum.

Eğer öyleyse, burada sorununuza yardımcı olabilecek bir link var.


Hayır, kapattığınızda oturum açan başka bir kullanıcı olup olmadığını yönetici şifresini isteyen bir açılır pencere vardır. Gui kullanımı.
İşaya


-1

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.


Bence karşılaşması muhtemel olan problem, başkalarının hala giriş yapmış olduklarını bildiren ve kapatma / yeniden başlatmayı etkinleştirmek için sudo şifresi gerektiren bir bilgi istemi olduğunu düşünüyorum.
David Thomas
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.