Как я редактирую/etc/sudoers из сценария?

106
задан pevik 14 January 2019 в 12:05
поделиться

3 ответа

Необходимо заставить редактирования во временный файл, затем использовать visudo-c-f sudoers.temp, чтобы подтвердить, что изменения допустимы и затем копируют его поверх/etc/sudoers

#!/bin/sh
if [ -f "/etc/sudoers.tmp" ]; then
    exit 1
fi
touch /etc/sudoers.tmp
edit_sudoers /tmp/sudoers.new
visudo -c -f /tmp/sudoers.new
if [ "$?" -eq "0" ]; then
    cp /tmp/sudoers.new /etc/sudoers
fi
rm /etc/sudoers.tmp
29
ответ дан Brian C. Lane 24 November 2019 в 03:48
поделиться

visudo, как предполагается, является интерфейсом пользователя для редактирования /etc/sudoers. Можно достигнуть того же путем замены файла непосредственно, но необходимо заботиться сами о параллельном редактировании и проверке синтаксиса. Следите эти r--r----- полномочия.

10
ответ дан ngn 24 November 2019 в 03:48
поделиться

Настройте пользовательского редактора. В основном это будет сценарий, который принимает имя файла (в этом случае/etc/sudoers.tmp), и измените и сохраните это на месте. Таким образом, Вы могли просто выписать в тот файл. Когда Вы будете сделаны, выйдете из сценария, и visudo будет заботиться об изменении фактического sudoers файла для Вас.

sudo EDITOR=/path/to/my_dummy_editor.sh visudo
5
ответ дан Ali Afshar 24 November 2019 в 03:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: