複数の人が私のコンピューターにログインしている場合、Ubuntuはコンピューターをシャットダウンするときにスーパーユーザー認証を要求します。パスワードを要求されずにすべてのユーザーがコンピューターをシャットダウンできるようにするにはどうすればよいですか?
複数の人が私のコンピューターにログインしている場合、Ubuntuはコンピューターをシャットダウンするときにスーパーユーザー認証を要求します。パスワードを要求されずにすべてのユーザーがコンピューターをシャットダウンできるようにするにはどうすればよいですか?
回答:
回避策は不要です。ポリシーを変更するだけで、複数のユーザーがログインしているときにシャットダウンおよび再起動の管理者として認証せずにシャットダウンできるようになります。
お好みのテキストエディターを使用して、ファイル/usr/share/polkit-1/actions/org.freedesktop.consolekit.policyを編集します。ルート権限が必要になります。
他のユーザーがログインしたときのシャットダウンに関するセクションを変更します
<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>
に
<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>
他のユーザーがログインしたときの再起動に関するセクション
<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>
に
<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>
また、複数のユーザーがログインしているときにPCをシャットダウンして再起動することができます。それを行うかどうかは別の質問です。
リチャード・ホロウェイの答えは、実際にはPolickKitの承認が与えられる方法ではありません。下にインストールされたファイル/usr/share/polkit-1/actions
は変更されることを意図していません。代わりに、の権限を変更する必要があります/etc/polkit-1/localauthority/50-local.d/
。
この質問に対してどのように行うかを以下に示します。
という名前のファイルを作成し、次のように/etc/polkit-1/localauthority/50-local.d/allow_all_users_to_shutdown.pkla
編集sudoedit
します。
[Allow all users to shutdown]
Identity=unix-user:*
Action=org.freedesktop.consolekit.system.stop-multiple-users
ResultInactive=no
ResultActive=yes
次に.pkla
、同じディレクトリに別のファイルを作成します。で終わる任意の名前を使用します(.pkla
例allow_all_users_to_restart.pkla
:)、次の内容を入力します
[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
追加の行ResultAny=yes
が必要でした。現在表示される警告メッセージはのみですがFailed to set wall message, ignoring: Interactive authentication required.
、シャットダウンと再起動は正常に機能するようになりました。
sysctl poweroff -i
必要とする追加とともに私のために働いたorg.freedesktop.login1.power-off-multiple-sessions
ので、次を除いて同じ行で別のファイルを作成しましたAction=org.freedesktop.login1.power-off-multiple-sessions
より良い方法があります。dbus-sendがインストールされている場合は、root権限にエスカレートする必要なく、 dbus経由でシャットダウンできます。
ドキュメントのあるページは思い出せませんが、あるArchlinuxユーザーがこれを理解しました。
シャットダウン:
dbus-send --system --print-reply --dest=org.freedesktop.Hal \
/org/freedesktop/Hal/devices/computer \
org.freedesktop.Hal.Device.SystemPowerManagement.Shutdown
リブート:
dbus-send --system --print-reply --dest=org.freedesktop.Hal \
/org/freedesktop/Hal/devices/computer \
org.freedesktop.Hal.Device.SystemPowerManagement.Reboot
サスペンド:
dbus-send --system --print-reply --dest=org.freedesktop.Hal \
/org/freedesktop/Hal/devices/computer \
org.freedesktop.Hal.Device.SystemPowerManagement.Suspend int32:1
休止状態:
dbus-send --system --print-reply --dest=org.freedesktop.Hal \
/org/freedesktop/Hal/devices/computer \
org.freedesktop.Hal.Device.SystemPowerManagement.Hibernate
よろしく。
HALは現在、廃止されており、最新のUbuntuリリースにはインストールされていないようです。
電源状態を管理するには、ConsoleKitおよびUPower dbusサービスを使用する必要があります
シャットダウン:
dbus-send --system --print-reply --dest="org.freedesktop.ConsoleKit" /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Stop
再起動:
dbus-send --system --print-reply --dest="org.freedesktop.ConsoleKit" /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Restart
サスペンド:
dbus-send --system --print-reply --dest="org.freedesktop.UPower" /org/freedesktop/UPower org.freedesktop.UPower.Suspend
休止状態:
dbus-send --system --print-reply --dest="org.freedesktop.UPower" /org/freedesktop/UPower org.freedesktop.UPower.Hibernate
これは今のところPreciseとQuantalで機能しますが、FreedesktopのフォーカスがConsoleKitからsystemdに移行しているように見えるので、どれくらいの期間かわかりません。Canonicalが気にするかどうかわからない...
これは14.04で機能します。Flimmによる以前のIMO、正解のバリエーションの更新。
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
これを内側に貼り付けます:
[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
他のユーザーがターミナルウィンドウを開いreboot
てrootとしてコマンドを発行する前にログインしているときに、再起動時にスーパーユーザーパスワードのプロンプトを回避する方法はありません。
sudo reboot
それでも、ユーザーアカウントのパスワードプロンプトをバイパスするように構成されていないsudo
場合は、パスワードの入力も求められます。
心配しないでください、これらは良いものです。再起動はまれであり、単純な管理者パスワードプロンプトにより、誤って自分自身を選択する必要がなくなります。
このタスクの実行を許可するグループ/ユーザーに割り当てられたsudoersファイルに停止および/または再起動を追加します。このようにして、シャットダウンできるユーザーを制御できますが、マシンへの完全なルートアクセス権を付与する必要はありません。
http://linux.byexamples.com/archives/315/how-to-shutdown-and-reboot-without-sudo-password/
どうやら、gdmはrootとして実行されるため、GUIからrootなしでシャットダウンできます。Gnomeはgdmにシャットダウンするよう指示し、gdmがシャットダウンします。
スクリプトを使用して同様のことを行うことができます。BASHがどれほど便利かはわかりませんが、rootとして実行され、特定のシグナルを受信すると、shutdownコマンドを実行するスクリプトを作成できると思います。
これはセキュリティ上の問題を引き起こす可能性があることに注意してください。