sudoなしでifconfigを実行する

sudoなしでifconfigを実行する

私は imx6 プラットフォームで実行している組み込み Linux を持っています。これはフリースケールの組み込み Linux です。問題は、この Linux で使用できる sudo がないことですが、ユーザーによって wlan0 デバイスをアクティブ化および非アクティブ化する必要があります。ユーザーをグループ ルートに追加しようとしましたが、成功しませんでした。また、/etc/busybox.conf ファイルにコマンド全体を追加しようとしましたが、これも効果はありませんでした。

sudo を使用せずにユーザーとしてこのコマンドを実行するにはどうすればよいですか?

user@touch:~$ /sbin/ifconfig eth0 down
SIOCSIFFLAGS: Permission denied

答え1

非 root ユーザーが実行できると信頼できる場合は、ifconfig exec に setuid フラグを追加するだけです。

chmod 4755 /sbin/ifconfig

これにより、この実行可能ファイルを誰にでも実行するためのルート権限が付与されます。 もちろん、chmod を実行するにはルート アクセスが必要です。

答え2

sudoコマンドを実行するためにを使用する必要はありません。が PATH 上にあるifconfigことを確認するだけです。/sbin

権限のないユーザーとして以下を実行します:

export PATH=$PATH:/sbin
ifconfig

答え3

  1. 新しい Linux ユーザーの場合、このパッケージは、sudoシステム管理者 ('root' == 'uid=0') だけが実行できる操作を、特権のないユーザーに事前に設定された分数で実行できるようにします。

  2. このプログラムは、ifconfig公開サーバー上の Linux オペレーティング システムに関連する多くのセキュリティ問題を抱えています。KVM 接続があり、SSH アクセスを必要とせず、24 時間 365 日のインターネット接続を必要としないデスクトップ サーバーやホーム サーバーの場合、このプログラムのセキュリティ要件は低くなります。

  3. ifconfigは、と呼ばれる別のプログラムによって保護されていますnetdevice。このプログラムは、Linuxネットワークデバイスへの低レベルのアクセスを提供します。を参照してくださいman netdevice。スローされたエラーSIOCSIFFLAGS: アクセスが拒否されましたこれは、プログラムがifconfig特権付きとしてマークされており、有効なユーザー ID 0 ('root' <==> 'uid=0') またはCAP_NET_ADMIN機能が必要であるためです。そうでない場合は、EPERMが返されます。

  4. 何を知るためにCAP_NET_ADMIN私たちは読む必要があります機能(7) — Linux マニュアルページここで重要な情報は、「CAP_NET_ADMIN: インターフェイス構成などのさまざまなネットワーク関連操作を実行します」です。これが何であるかを知るには、EPERMを読む必要がありますman setuidEPERMユーザーに権限がなく (Linux: 機能がないCAP_SETUID)、uid が呼び出しプロセスの実際の UID または保存された set-user-ID と一致しない場合、エラーがスローされます。

  5. 単に「ユーザー名」を「root」グループに追加することはできません。Ubuntu ディストリビューションの例: は、sudo adduser username rootが要求するすべてのセキュリティ チェックに合格するために必要な UID 0 を付与しませんnetdevicevisudoがシステムで使用可能な場合、エントリにDefaults secure_path=""プログラム へのパスが含まれていないことがわかりますnetdevice.h。したがって、プログラムの sudo 権限 ( を使用visudo)を変更してもifconfig、 が提供するセキュリティ制御がバイパスされる可能性は低くなりますnetdevice

パブリック サーバーを運用していないと仮定すると、@tonioc が提供した回答は、sudo権限を使用せずに Linux ディストリビューション (再起動後にすべてのイーサネット インターフェイスを自動的に有効にする Ubuntu など) のインターフェイスをオン/オフsudo chmod 4755 /sbin/ifconfigにする最も簡単な方法です。このコマンドは、次のような起動スクリプトがインターフェイスをオフにできるようにシステムを変更する簡単な方法ですifconfig eth0 down(パスワードを入力せずに)。イントラネット ネットワークとインターネット ネットワークの両方が接続されているデスクトップ/サーバー (マルチ NIC) の場合、セキュリティ上、インターネット ネットワークが不要なときにオフのままにしておくことが重要です。

関連情報