nmcliを介してNetworkManagerを変更するときにrootを要求する「正しい」方法

nmcliを介してNetworkManagerを変更するときにrootを要求する「正しい」方法

何ですか正しい単一のコマンドを使用するか、小さなポケットを追加して、権限のないすべてのユーザーがnmcliを読み取り専用で使用するように制限できますか?

編集する:ルートに加えて、特権のあるUnixグループ(「netadmins」など)のみを許可することをお勧めします。ただし、主な問題は、権限のない一般ユーザーが読み取り専用以外のすべての変更をブロックすることです。

背景

私が知っているほとんどのシステム管理者と同様に、サーバー展開では、構成ファイルとネットワークスクリプトを使用してインターフェース、ブリッジ、バインディングなどを構成するのではなく、通常NetworkManagerを無効にして「ネットワーク」サービスを実行します。これはシンプルで実行可能です。繰り返し、信頼性が高く、非常に不快です。 - 高度な構成もブラックボックスです。

EL 8では、以前のネットワーク構成は廃止され、NetworkManagerに置き換えられました。同時に、ELディストリビューション(現在のEL 7.5)では、root以外のユーザーがインターフェイスを作成、変更、削除し、既存の設定をほとんど無制限に変更できるようになりました。コンピューティングヘッドノードとして機能するサーバーの場合、単一のユーザーがシステム全体の効率的な動作を妨げる可能性があります。境界サービスを提供するサーバーの場合、これは不正な攻撃の潜在的な重大度とセキュリティの影響を高めます。

NetworkManagerのフォールケット設定の変更に関するいくつかのドキュメントを読んだが、ほとんどはラップトップのいくつかのワイヤレス問題を解決することでした。

ベストアンサー1

当然、私たちはJavascriptを書く必要があります。面白くないですか?

私はこれがうまくいくと思います:

# /etc/polkit-1/rules.d/10-disable-networkmanager.rules

polkit.addRule(function(action, subject) {
    if (action.id.indexOf("org.freedesktop.NetworkManager.") == 0)
    {
        return polkit.Result.NO;
    }
});

https://doc.opensuse.org/documentation/leap/security/html/book.security/cha.security.policykit.html

https://wiki.archlinux.org/index.php/Polkit#Examples

https://blog.christophersmart.com/2014/01/06/policykit-javascript-rules-with-catchall/

rpm -q --dump NetworkManager | grep -i polポリシーファイルがすばやく表示されます/usr/share/polkit-1/actions/org.freedesktop.NetworkManager.policy。これを検索すると、許可されていることが知られている<allow_inactive>yesタスクが表示されます。離れてログインユーザー。たとえば、Fedora Workstation 29では、次のように表示されます。

  • org.freedesktop.NetworkManager.ネットワーク制御
  • org.freedesktop.NetworkManager.settings.modify.own
  • org.freedesktop.NetworkManager.settings.modify.system

<allow_active>おおよそのローカルでログインしたユーザーに対応します。 <allow_any>ログインしていないユーザーに対応します。 「ログイン」はを意味しますpam_systemd。デフォルトでは、「ログイン」はGUIまたはシェルログインを意味しますが、Apache :-)などの他のものに対してPAMログインを設定している場合はそうではありません。

おすすめ記事