">>"を使用して/etc/locale.genにパイプ - sudo権限が拒否されました

">>"を使用して/etc/locale.genにパイプ - sudo権限が拒否されました

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

$ sudo echo ko_KR.UTF-8 UTF-8 >> /etc/locale.gen

しかし、私はそれを理解していますpermission denied。奇妙なことに、sudoを使用するとパスワードを求めることはありません。

しかし、私が入力すると

$ su
# echo ko_KR.UTF-8 UTF-8 >> /etc/locale.gen

効果がある

私は2つのManjaroインストールでこれを試しました。同じ問題です。このsu方法が効果がある間にガイドを作成しようとしているので、簡単に保ちたいと思いました。

私が間違っていることを知っている人はいますか?予期しないbash構文を実行しているようです。

ありがとうございます!

答え1

気づいた -

シェルはプロセスではなく配管を担当します。sudo echobash編集権限を付与しません/etc。私が見つけた解決策は次のとおりです。

echo ko_KR.UTF-8 UTF-8 | sudo tee -a /etc/locale.gen

これで、sudo権限(tee)を持つ項目に出力を供給すると、ファイルechoへの書き込みのみが行われます。

誰もがこれを行うより簡単な方法を見つけたら、それを正解としてマークします。 :)

関連情報