Підготуйте сценарій, який виконайте потрібне редагування, наприклад, сценарій, який записує правильний файл зі статичним IP-адресою (те, що вводити в цей скрипт, виходить за межі цього питання запитань). Давайте назвемо цей сценарій /root/set_static_ip. (1)
Правка /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---, включивши його в судери, як зазначено вище. Або ви можете додати користувача до списку ACL і дати їм дозвіл на запис у конкретний файл .
Але зауважте, що якщо ви не перевірите вміст файлу на безпеку, відбудеться хаос , навмисний чи ненавмисний.
Виноски :
(1) цей сценарій повинен бути максимально безпечним. Перевірте входи тощо. Він буде виконаний з повними дозволами.
(2) в сучасній установці sudo ви можете додати файл до /etc/sudoers.d/каталогу, який краще --- переживе оновлення.
(3) Я зазвичай тримаю термінал із кореневим сеансом відкритим ( sudo -i), коли я змінюю механізм sudoers та резервну копію.
/var/tmp/foo=/etc/network/interfaces? Ніколи не бачив, що ви там намагаєтеся сказати, я досить новачок у Linux.