Я пытаюсь написать /etc/network/interfaces
с пользователем, который не имеет привилегий root.
Причиной желания писать в этом было бы разрешение пользователю устанавливать статический IP, так как я запускаю сервер только из командной строки. Какое разрешение мне нужно дать пользователю etc/sudoers
?
Я не хочу, чтобы у пользователя были полные права root. Просто возможность редактировать этот файл.
/var/tmp/foo
=/etc/network/interfaces
? Никогда не видел, что вы пытаетесь сказать, я довольно новичок в Linux.setfacl: /etc/logrotate.conf: Operation not supported
Подготовьте сценарий, который выполняет требуемое редактирование, например сценарий, который пишет правильный файл со статическим IP-адресом (что включить в этот сценарий выходит за рамки этих вопросов и ответов). Давайте назовем этот скрипт
/root/set_static_ip
. (1)Edit
/etc/sudoers
(2) (visudo
лучше, он проверяет работоспособность, очень трудно восстановить систему с недопустимым файлом sudoers, даже невозможно из удаленного (3)), и добавитьТеперь этот пользователь может использовать
sudo /root/set_static_ip
без запроса пароля, и скрипт будет работать со всеми привилегиями; никакая другая команда не будет разрешена.Если вы хотите, чтобы пользователь просто заменил файл тем, что он хочет, сценарий может быть просто (вызвать его
/root/unsafe-overwrite-interface
)... и вы говорите пользователю отредактировать,
/tmp/temp-iface.txt
а затем запуститьsudo /root/unsafe-overwrite-interface
--- включив его в sudoers, как указано выше. Или вы можете добавить пользователя в список ACL и дать ему разрешение на запись в конкретный файл .Но обратите внимание, что если вы не проверяете содержимое файла на предмет безопасности, может произойти хаос , преднамеренный или непреднамеренный.
Сноски :
(1) этот сценарий должен быть максимально безопасным. Проверьте входы и так далее. Он будет выполнен с полными разрешениями.
(2) в современной установке sudo, вы можете добавить файл в
/etc/sudoers.d/
каталог, который лучше --- переживет обновления.(3) Я обычно держу терминал с открытым сеансом root (
sudo -i
), когда я изменяю механизм sudoers, и резервное копирование удобно.источник
/etc/network/interfaces
файл, каким бы он ни был/root/set_static_ip
. Если вы не можете создать сценарий, который запрашивает у пользователя ввод IP-адреса, шлюза и т. Д. Я не достаточно хорош для этого./etc/sudoers
, этоvisudo
не такsudoedit
.