A resposta de Jay funcionará quase inalterada com sed
:
sed -i 's/^Defaults[ \t]+requiretty/# Defaults requiretty/g' /etc/ssh/sshd_config
Estou tentando escrever um script que comentará a seguinte linha em / etc / sudoers toda vez que eu iniciar uma nova instância do EC2:
Defaults requiretty
Estou assumindo que a melhor maneira de fazer isso é com uma pesquisa inline sed e substituir ou pesquisar e inserir. O problema é que pode haver mais de 1 espaços / abas entre os padrões e requiretty também. O que é uma solução sed eficiente?
Eu usaria o Perl, pessoalmente
perl -pi -e 's/(^Defaults\s+requiretty)/# $1/g' /etc/ssh/sshd_config
(A linha deve começar com Defaults
para corresponder. Se você não quiser, basta remover o ^
. O \s+
irá capturar qualquer número de espaços entre Defaults
e requiretty
.)