web-dev-qa-db-ja.com

16.04で/ sbin / shutdown、/ sbin / rebootなどにSudoを再度要求するにはどうすればよいですか?

何らかの理由で、/sbin/shutdown/sbin/rebootなどを実行するためにroot(またはSudoを使用)する必要はなくなりました。

これは、これらの実行可能ファイルが、通常のユーザーとしてすべてを処理する/bin/systemctlへのシンボリックリンクになったためと思われます。

ただし、shutdownおよびrebootにルート認証を再度要求する場合はどうなりますか?どうすればこれを達成できますか?

18
Byte Commander

Systemdは、実際にshutdownrebootおよびその他のコマンドを処理します。また、 デフォルトの割り当てられた特権 は許容されます。これを変更するには、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-offorg.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>

アクティブなユーザーが電源を切ったり、再起動したりできるようになります。

5
muru

As Linuxシステムでのシンボリックリンクのアクセス許可の変更 は、リンクのアクセス許可を変更しませんが、代わりにリンクが指すファイルを変更します(少なくともUbuntuでは)。これを達成する最も安全な方法は、リンクを削除し、必要な mask でリンクを再作成して、希望する結果を取得することだと思います。

別の関連する投稿を見つけることができます here

0
Elder Geek

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アカウントにログインする必要がある場合があります

0
Yakusho