Подготовьте сценарий, который выполняет требуемое редактирование, например сценарий, который пишет правильный файл со статическим IP-адресом (что включить в этот сценарий выходит за рамки этих вопросов и ответов). Давайте назовем этот скрипт /root/set_static_ip
. (1)
Edit /etc/sudoers
(2) ( visudo
лучше, он проверяет работоспособность, очень трудно восстановить систему с недопустимым файлом sudoers, даже невозможно из удаленного (3)), и добавить
user_name_to_authorize ALL=NOPASSWD: /root/set_static_ip
Теперь этот пользователь может использовать sudo /root/set_static_ip
без запроса пароля, и скрипт будет работать со всеми привилегиями; никакая другая команда не будет разрешена.
Если вы хотите, чтобы пользователь просто заменил файл тем, что он хочет, сценарий может быть просто (вызвать его /root/unsafe-overwrite-interface
)
#! /bin/bash -e
#
cp /tmp/temp-iface.txt /etc/network/interfaces
exit 0
... и вы говорите пользователю отредактировать, /tmp/temp-iface.txt
а затем запустить sudo /root/unsafe-overwrite-interface
--- включив его в sudoers, как указано выше. Или вы можете добавить пользователя в список ACL и дать ему разрешение на запись в конкретный файл .
Но обратите внимание, что если вы не проверяете содержимое файла на предмет безопасности, может произойти хаос , преднамеренный или непреднамеренный.
Сноски :
(1) этот сценарий должен быть максимально безопасным. Проверьте входы и так далее. Он будет выполнен с полными разрешениями.
(2) в современной установке sudo, вы можете добавить файл в /etc/sudoers.d/
каталог, который лучше --- переживет обновления.
(3) Я обычно держу терминал с открытым сеансом root ( sudo -i
), когда я изменяю механизм sudoers, и резервное копирование удобно.
/var/tmp/foo
=/etc/network/interfaces
? Никогда не видел, что вы пытаетесь сказать, я довольно новичок в Linux.