![Ubuntu の bash スクリプトで '/etc/network/interfaces' ファイルを編集できない](https://rvso.com/image/1344715/Ubuntu%20%E3%81%AE%20bash%20%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%97%E3%83%88%E3%81%A7%20'%2Fetc%2Fnetwork%2Finterfaces'%20%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%92%E7%B7%A8%E9%9B%86%E3%81%A7%E3%81%8D%E3%81%AA%E3%81%84%20.png)
重複の可能性あり:
sudo 権限が拒否されました
bash スクリプトを使用して /etc/network/interfaces を編集する必要があり、以下のような操作を行っています...
sudo echo something > /etc/network/interfaces
この行を実行すると、以下のエラーが発生します。
bash: /etc/network/interfaces: Permission denied
しかし、同じファイルを何らかのエディタで編集すると、問題なく動作します...つまり
sudo nano /etc/network/interfaces
上記のファイルを編集します。
答え1
この質問に対する回答はこのサイトのどこかに既にありますが、見つけることができませんでした。
しかし、基本的には次のようになります。
sudo nano /etc/network/interfaces
始まるナノ /etc/ネットワーク/インターフェースuid 0 として。nano は uid 0 で実行され、/etc/network/interfaces への書き込み権限を持っているためです。
sudo echo something > /etc/network/interfaces
始まる何かを反響させるuid 0 として。この部分は成功します。出力は>
/etc/network/interfaces にリダイレクトされます。ただし、このリダイレクトは自分のアカウントで行われます。そして、そのアカウントにはその場所への書き込み権限がありません。
代わりにこれを試してください:
sudo bash -c "echo something > /etc/network/interfaces"
これにより、bash が uid 0 として実行され、bash がコマンド全体を uid 0 として実行できるようになります。
または、単にsu -
root になります。常に root として実行することは推奨されませんが、各行の前に sudo コマンドを入力しなくても十分な権限を持ちたい場合があります。メイン ユーザーとして root を使用しないでください。システムのインストールと構成に使用するのは問題ありません。