次のようにファイルにテキストを挿入しようとします。
sudo echo "abc-abc/abc/abc" >> /etc/portage/make.conf
しかし、エラーが発生しました。権限が拒否されました。
sudoコマンドを使用していますが、
答え1
そのコマンドラインでは、シェルは/etc/portage/make.conf
追加モードを開き、新しいプロセスの標準出力にし、sudo
その新しいプロセスで実行されます。これはsudo
開かれたecho
ファイルではなく、資格情報を使用して実行されるシェルです。
ルートで始まるコマンドでファイルを開く必要があります。したがって、次のようになります。
sudo sh -c 'echo "abc-abc/abc/abc" >> /etc/portage/make.conf'
または:
echo "abc-abc/abc/abc" | sudo tee -a /etc/portage/make.conf > /dev/null
答え2
Sudoは、 "echo "abc-abc/abc/abc""の場合、最初のコマンドのみを実行します。
したがって、コマンドの残りの部分(/etc/portage/make.confに書き込まれます)はユーザーモードで実行されます。
chmod を使用してファイルの権限を変更できます。