Bash - написать в visudo - PullRequest
       9

Bash - написать в visudo

0 голосов
/ 24 сентября 2019

Я хочу написать что-то в visduo, и я не могу написать в / etc / sudoers

for SERVER in $(cat some.txt); do

ssh -q -o StrictHostKeyChecking=no root@$SERVER '

echo 'm2madm ALL=(ALL:ALL)   NOPASSWD:/sbin/iptables -L' | sudo EDITOR='tee -a' visudo

'

проблема с '

, но я действительно не знаю, что мне нужноне могли бы вы помочь мне, пожалуйста?

вывод:

domain_check.sh: line 25: syntax error near unexpected token `('
domain_check.sh: line 25: `echo ('m2madm ALL=(ALL:ALL)   NOPASSWD:/sbin/iptables -L' | sudo EDITOR='tee -a' visudo)'

1 Ответ

0 голосов
/ 24 сентября 2019

Если вы хотите использовать переменные в строке, которую вы отправили через ssh, заключите эту строку в ".Внутри строки вы должны использовать одинарную кавычку ' или экранировать каждую двойную кавычку \".

Ваша проблема возникает из-за того, что вы «закрываете» строку перед тем, как ее использовать.Следующее должно работать.

for SERVER in $(cat some.txt); do
ssh -q -o StrictHostKeyChecking=no root@$SERVER "
echo 'm2madm ALL=(ALL:ALL)   NOPASSWD:/sbin/iptables -L' | sudo EDITOR='tee -a' visudo
"
done

Ps есть сайт проверки орфографии оболочки, в котором вы можете проверить свой код.Я не знаю, какой, но я добавлю это как комментарий ниже моего ответа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...