
私は 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
新しい Linux ユーザーの場合、このパッケージは、
sudo
システム管理者 ('root' == 'uid=0') だけが実行できる操作を、特権のないユーザーに事前に設定された分数で実行できるようにします。このプログラムは、
ifconfig
公開サーバー上の Linux オペレーティング システムに関連する多くのセキュリティ問題を抱えています。KVM 接続があり、SSH アクセスを必要とせず、24 時間 365 日のインターネット接続を必要としないデスクトップ サーバーやホーム サーバーの場合、このプログラムのセキュリティ要件は低くなります。ifconfig
は、と呼ばれる別のプログラムによって保護されていますnetdevice
。このプログラムは、Linuxネットワークデバイスへの低レベルのアクセスを提供します。を参照してくださいman netdevice
。スローされたエラーSIOCSIFFLAGS: アクセスが拒否されましたこれは、プログラムがifconfig
特権付きとしてマークされており、有効なユーザー ID 0 ('root' <==> 'uid=0') またはCAP_NET_ADMIN
機能が必要であるためです。そうでない場合は、EPERM
が返されます。何を知るために
CAP_NET_ADMIN
私たちは読む必要があります機能(7) — Linux マニュアルページここで重要な情報は、「CAP_NET_ADMIN: インターフェイス構成などのさまざまなネットワーク関連操作を実行します」です。これが何であるかを知るには、EPERM
を読む必要がありますman setuid
。EPERM
ユーザーに権限がなく (Linux: 機能がないCAP_SETUID
)、uid が呼び出しプロセスの実際の UID または保存された set-user-ID と一致しない場合、エラーがスローされます。単に「ユーザー名」を「root」グループに追加することはできません。Ubuntu ディストリビューションの例: は、
sudo adduser username root
が要求するすべてのセキュリティ チェックに合格するために必要な UID 0 を付与しませんnetdevice
。visudo
がシステムで使用可能な場合、エントリにDefaults secure_path=""
プログラム へのパスが含まれていないことがわかりますnetdevice.h
。したがって、プログラムの sudo 権限 ( を使用visudo
)を変更してもifconfig
、 が提供するセキュリティ制御がバイパスされる可能性は低くなりますnetdevice
。
パブリック サーバーを運用していないと仮定すると、@tonioc が提供した回答は、sudo
権限を使用せずに Linux ディストリビューション (再起動後にすべてのイーサネット インターフェイスを自動的に有効にする Ubuntu など) のインターフェイスをオン/オフsudo chmod 4755 /sbin/ifconfig
にする最も簡単な方法です。このコマンドは、次のような起動スクリプトがインターフェイスをオフにできるようにシステムを変更する簡単な方法ですifconfig eth0 down
(パスワードを入力せずに)。イントラネット ネットワークとインターネット ネットワークの両方が接続されているデスクトップ/サーバー (マルチ NIC) の場合、セキュリティ上、インターネット ネットワークが不要なときにオフのままにしておくことが重要です。