pam.dディレクトリにあるsshdファイルに一致する行の後に行を挿入したいと思います。
たとえば、次の行を検索する必要があります。
account required pam_nologin.so
行を挿入する必要があります
account required pam_access.so
すぐ下には、単語の間に適切な間隔があります。
私はsedとawkに初めて触れたので、助けてくれてありがとう。
答え1
これはうまくいきます(stdinから読み込み、テストのためにstdoutとして印刷)。
sed -e '/^account required pam_nologin\.so$/a account required pam_access.so'
このa
コマンドはㅏ「account require pam_nologin.so」で構成される行である一致する行にテキストを追加します。
そのスイッチを使用するには-i
(ファイルを所定の場所に編集する)、-i .bak
以下を使用して元のファイルのバックアップを維持することをお勧めします。
sed -i .bak -e '/^account required pam_nologin\.so$/a account required pam_access.so' /etc/pam.d/sshd
答え2
良い古いものを使用してくださいed
:
ed /etc/pam.d/sshd << EOT
/account required pam_nologin.so/
a
account required pam_access.so
.
w
EOT
住所/account required pam_nologin.so/
は1行です。
このa
コマンドは、エディタバッファにテキストを追加するために使用されます。
テキストaccount required pam_access.so
がバッファに入力されます。
.
コマンドモードに戻ります。
w
ファイルにバッファを書き込みます。