Что ж, мы не можем догадаться, потому что это зависит от вашего окружения. Мои деньги будут на линии, которую вы пытаетесь заменить, а не в / etc / sudoers. (По крайней мере, не точно , как кажется). Это означало бы, что его никогда не заменяли, и поэтому он никогда не устанавливал «NOPASSWD».
Я имею в виду, что вы полагаетесь на определенное количество места в нем и определенный формат строки, и если он изначально не соответствует вашему регулярному выражению ... он никогда не будет изменен.
Я предлагаю ответ - добавить файл в /etc/sudoers.d/ с нужными вам значениями - а затем (возможно?) Как пользователь, который должен иметь возможность 'sudo' используйте sed
, чтобы удалить целевую строку. (который затем потерпит неудачу, если они не смогут - вы можете проверить код возврата).
/
по умолчаниюsedразделитель подвыражений, используйте другой:
sed -i 's~http://www.test.org/name~http://www.test.org/archive/name~g' user.html