Inserir linha após a linha correspondente em sshd dentro de pam.d

2

Eu quero inserir uma linha após a linha correspondente no arquivo sshd que está presente dentro do diretório pam.d

Por exemplo deve procurar por essa linha

account    required     pam_nologin.so

e deve inserir uma linha

account    required     pam_access.so

logo abaixo, com o espaçamento correto entre as palavras.

Eu sou novo em sed e awk, então qualquer ajuda seria apreciada.

    
por Rahul 09.04.2015 / 18:06

2 respostas

2

Isso deve funcionar (lendo de stdin, imprimindo para stdout para fins de teste):

sed -e '/^account    required     pam_nologin\.so$/a account    required     pam_access.so'

o comando a irá a pender o texto para a linha correspondente, sendo a linha correspondente uma que consiste exatamente em "conta requerida pam_nologin.so".

Se você quiser usar a opção -i (editar um arquivo no local), sugiro usar o -i .bak ou similar para manter um backup do arquivo original:

sed -i .bak -e '/^account    required     pam_nologin\.so$/a account    required     pam_access.so' /etc/pam.d/sshd
    
por 09.04.2015 / 18:18
1

Usando o bom e velho ed :

ed /etc/pam.d/sshd << EOT
/account    required     pam_nologin.so/
a
account    required     pam_access.so
.
w
EOT

O /account required pam_nologin.so/ endereça uma linha.

O comando a é para anexar texto ao buffer do editor.

O texto account required pam_access.so é inserido no buffer.

. retorna ao modo de comando.

w escreve o buffer no arquivo.

    
por 09.04.2015 / 22:09

Tags