何らかの理由で、/sbin/shutdown
、/sbin/reboot
などを実行するためにroot(またはSudo
を使用)する必要はなくなりました。
これは、これらの実行可能ファイルが、通常のユーザーとしてすべてを処理する/bin/systemctl
へのシンボリックリンクになったためと思われます。
ただし、shutdown
およびreboot
にルート認証を再度要求する場合はどうなりますか?どうすればこれを達成できますか?
Systemdは、実際にshutdown
、reboot
およびその他のコマンドを処理します。また、 デフォルトの割り当てられた特権 は許容されます。これを変更するには、Polkitルールを作成する必要があります。 .pkla
に/etc/polkit-1/localauthority/50-local.d
ファイルを作成します(たとえば、confirm-shutdown.pkla
):
[Confirm shutdown]
Identity=unix-user:*
Action=org.freedesktop.login1.*
ResultActive=auth_admin_keep
さまざまなシャットダウン、再起動などのコマンドは、Polkitの用語では、org.freedesktop.login1
のアクションです。たとえば、org.freedesktop.login1.power-off
、org.freedesktop.login1.reboot
などです。ここでの特定の問題は、デフォルトの構成です。 /usr/share/polkit-1/actions/org.freedesktop.login1.policy
にあります:
<action id="org.freedesktop.login1.power-off">
<description>Power off the system</description>
...
<defaults>
<allow_any>auth_admin_keep</allow_any>
<allow_inactive>auth_admin_keep</allow_inactive>
<allow_active>yes</allow_active>
</defaults>
アクティブなユーザーが電源を切ったり、再起動したりできるようになります。
As Linuxシステムでのシンボリックリンクのアクセス許可の変更 は、リンクのアクセス許可を変更しませんが、代わりにリンクが指すファイルを変更します(少なくともUbuntuでは)。これを達成する最も安全な方法は、リンクを削除し、必要な mask でリンクを再作成して、希望する結果を取得することだと思います。
別の関連する投稿を見つけることができます here
chmod
コマンドを使用できます。
ルートのみにアクセスを許可する場合は、次のように記述できます。
chmod 700 directory/to/the/file
ルートとSudoグループに許可を与えたい場合は、次のように記述できます。
chmod 770 directory/to/the/file
ファイルのグループをSudoから別のグループ(ユーザーや管理者など)に変更する場合は、次のように入力する必要があります。
chown owner:group directory/to/the/file
元に戻すには、次を実行します。
chown root:Sudo filedirectory
注:これらのコマンドにSudo
を使用するか、rootアカウントにログインする必要がある場合があります