コマンドラインからネットワークマネージャーを制御したい。これはUbuntu10.04で十分に機能しました(cnetworkmanagerを使用すると、nmcliが別の可能な選択肢になります)。
ただし、Ubuntu 10.10へのアップグレード以降、SSHターミナル内から接続をアクティブ化しようとすると、D-Bus例外が発生します。
org.freedesktop.NetworkManager.PermissionDenied:ネットワークを制御する権限がありません。
/etc/dbus-1/system.d/NetworkManager.confに関係している可能性があります。手がかりを探すために他にどこに?
この問題は、私がマシンにsshされた場合にのみ発生します。 gnomeセッションでは、同じ問題は発生しません。どちらの場合も、同じ(admin)ユーザーアカウントを使用します。
デフォルトでは、DBusはroot
と物理コンソールに座っているユーザーのみがネットワーク設定を制御することを許可します。
これは、DBusポリシーファイル(この場合は/etc/dbus-1/system.d/NetworkManager.conf
)を編集することで変更できます。
最近のUbuntuでは、これはpolkitによる制御です。
新しいファイルを作成します:/etc/polkit-1/localauthority/50-local.d/allow-ssh-networking.pkla
追加:
[Let adm group modify system settings for network]
Identity=unix-group:adm
Action=org.freedesktop.NetworkManager.network-control
ResultAny=yes
次に、polkit
サービスを再起動します。
pkaction | grep NetworkManager
を使用して、システムで有効なNetworkManagerアクションのリストを見つけることができます。