web-dev-qa-db-ja.com

コマンドifconfigを実行するためにrootになる必要があるのはなぜですか?

私は最近Ubuntu 10.04 LTSから12.04 LTSに切り替えましたが、気づいた変更の1つは、ifconfigコマンドを実行しようとすると(たとえば、自分のIPを表示するために)、次の出力が得られることです:

コマンド「ifconfig」は「/ sbin/ifconfig」で使用可能です「/ sbin」がPATH環境変数に含まれていないため、コマンドが見つかりませんでした。これは、ほとんどの場合、ユーザーアカウントに関連付けられた管理者権限がないことが原因です。 ifconfig:コマンドが見つかりません

コマンドを実行するには、Sudo ifconfigを実行する必要があります。これは10.04には当てはまらなかったので、この変更の理由はありますか?これは12.04の予想される動作ですか、それとも私の設定に何か問題がありますか? Ubuntu 12.04を実行している他の人がコマンドを実行して、私と同じ結果が得られるかどうかを確認してください。

1
Mads

メッセージにあるように、問題はifconfigがパスにないことです。フルパスを与えることで、通常のユーザーとして実行できます:/sbin/ifconfig。それを試してみてください!

私の推測では、10.04に/sbin/をパスに追加しましたが、12.04にアップグレードする際にはそうしませんでした。

ただし、ifconfigを使用してネットワーク構成を変更する場合は、rootになる必要があることに注意してください。この理由が明白であることを願っています:)

4
roadmr

追加 /sbinからPATH env var:

export PATH="$PATH:/sbin"
0
user248766