web-dev-qa-db-ja.com

ユーザーがネットワークの状態と接続を変更するためのポリシーを設定するにはどうすればよいですか?

ユーザーがネットワーク接続と状態を変更するための許可を設定するにはどうすればよいですか?たとえば、ユーザーが新しいワイヤレスネットワークに接続することを許可/禁止するにはどうすればよいですか?ユーザーがネットワークをオフにすることを許可/禁止するにはどうすればよいですか?

7
HarlemSquirrel

1人以上のユーザーのローカルポリシーを作成できます。

設定が保存されるドキュメントを作成します...

 touch /var/lib/polkit-1/localauthority/50-local.d/10-network-manager.pkla

1つ以上のポリシーを追加...

 [fooがネットワークのシステム設定を変更できるようにする] 
 Identity = unix-user:foo 
 Action = org.freedesktop.NetworkManager.settings.modify.system 
 ResultAny = no 
 ResultInactive = no 
 ResultActive = yes 
 
 [fooによるネットワークの有効化/無効化を許可しない] 
 Identity = unix-user: foo 
 Action = org.freedesktop.NetworkManager.settings.enable-disable-network 
 ResultAny = no 
 ResultInactive = no 
 ResultActive = no 

キーはResultActive要素で、yes、no、auth_admin、またはauth_admin_keepに設定できます。後者の2つでは、Sudo特権を持つ別のユーザーのパスワードが必要になります。

Action要素は、許可または禁止するアクション、またはパスワードによる認証を要求するアクションを定義します。ネットワークを有効/無効として切り替えるためのorg.freedesktop.NetworkManager.enable-disable-networkなどのオプションがあります。 /usr/share/polkit-1/actions/org.freedesktop.NetworkManager.policyファイルには他のオプションがあります。<action id="org.freedesktop.NetworkManager.enable-disable-network">のようなものを探して、その説明を読んでください。

*ワイルドカードを使用してすべての値を設定することもできます...

 [fooが管理者パスワード以外のすべてのネットワーク状態と設定を変更しないようにします] 
 Identity = unix-user:foo 
 Action = org.freedesktop.NetworkManager。* 
 ResultAny = no 
 ResultInactive = no 
 ResultActive = auth_admin_keep 

これには、ネットワーク設定または状態を変更するためのパスワードが必要です。

スクリプトに含めることができる単一のコマンドでこれを行うことができます...

 Sudo su -c 'printf "[fooがすべてのネットワーク状態と設定を変更しないようにする]\nIdentity = unix-user:foo\nAction = org.freedesktop.NetworkManager。*\nResultAny = no\nResultInactive = no\nResultActive = auth_admin "> /var/lib/polkit-1/localauthority/50-local.d/10-network-manager.pkla'

参照:

5
HarlemSquirrel