bash: /etc/environment: 権限が拒否されました。

bash: /etc/environment: 権限が拒否されました。

次のコマンドを実行しようとしています。

grep -q NDDSHOME /etc/environment || echo 'NDDSHOME="/opt/rti_connext_dds-6.0.1"' >> /etc/environment

ただし、権限拒否エラーが発生しました。

bash: /etc/environment: Permission denied

この問題をどのように解決できますか?

答え1

/etc/environment許可なくシステムファイルに書き込もうとします。

コマンド全体をrootとして実行します。

sudo -s
grep -q NDDSHOME /etc/environment || echo 'NDDSHOME="/opt/rti_connext_dds-6.0.1"' >> /etc/environment

>>または、追加がrootとして実行されていることを確認してください(ここではteeファイルに追加して置き換えてから削除します)。標準出力側面):

grep -q NDDSHOME /etc/environment || echo 'NDDSHOME="/opt/rti_connext_dds-6.0.1"' | sudo tee -a /etc/environment >/dev/null

答え2

これは働きます:

grep -q NDDSHOME /etc/environment || ( echo 'NDDSHOME="/opt/rti_connext_dds-6.0.1"' | sudo tee -a /etc/environment )

ファイルはルートが所有しているため、ルートに追加することはできません。

関連情報