危険察知記述難易度 標準

状況

本番サーバーの /etc/hosts に 1 行追加する作業。既存の行は消してはいけない。sudo echo ... に直接リダイレクトすると権限で失敗するので sh -c を使う。

空欄に入るリダイレクト記号を書いてください。

$ sudo sh -c 'echo "10.0.0.5 api.internal" ____ /etc/hosts'

正答

正答>>

解説

> はファイルを空にしてから書き込み、>> は末尾に追記する。ここで > を使うと /etc/hosts は追加した 1 行だけになり、localhost を含む既存の名前解決がすべて消えて、サーバー上のさまざまな処理が失敗する。sudo echo ... >> /etc/hosts と書くと、リダイレクトは sudo の外の一般ユーザーのシェルが行うため権限エラーになる。そのため sh -c で囲むか tee -a を使う。実行前に cp で控えを取る。

参考: www.gnu.org

bashredirecthosts

この問題を含む 危険察知 のテストを制限時間つきで解く

危険察知クイズへ