RHEL 7 の /etc/ssh/sshd_config ファイルを編集して、ssh 構成を保護したいとします。
たとえば、Ciphers 行を置き換えて、元の行はそのままにしてコメント アウトします。また、rpm やインストール ISO を更新するたびに Red Hat がそれを壊さないように、文字列のできるだけ小さな部分をキーとして使用できることも必要です。
Ciphers aes128-ctr,aes192-ctr,aes256-ctr,aes128-cbc,3des-cbc,aes192-cbc,aes256-cbc
...になるはずです
#Ciphers aes128-ctr,aes192-ctr,aes256-ctr,aes128-cbc,3des-cbc,aes192-cbc,aes256-cbc
Ciphers abc-123,def-456,ghi-789 etc...
ファイル名が testfile で、内容が This is my test file であるテスト ファイルで、改行を検索して追加しようとしました。新しい行として No it's not を追加しようとしましたが、惨めに失敗しました。
sed -i '/This is my test file./aNo it's not.' testfile
それをどうやって実現するか、そしてさらに重要なのは、その背後にある重要な概念は何でしょうか?
答え1
以下のsedコマンドを試してみましたが、うまくいきました
指示
sed -i '/^Ciphers aes128-ctr,aes192-ctr,aes256-ctr,aes128-cbc,3des-cbc,aes192-cbc,aes256-c/s/.*/#&\nCiphers abc-123,def-456,ghi-789/g' filename
出力
#Ciphers aes128-ctr,aes192-ctr,aes256-ctr,aes128-cbc,3des-cbc,aes192-cbc,aes256-cbc
Ciphers abc-123,def-456,ghi-789
答え2
sed -i -n 'p; s/^Ciphers/#&/p' /etc/ssh/sshd_config
-i
所定の位置に
-n
明示的に印刷されない限り何も印刷されない
/p
検索文字列の最後には、-n
一致した文字列を上書きして強制的に印刷されます。