Підготуйте сценарій, який виконайте потрібне редагування, наприклад, сценарій, який записує правильний файл зі статичним 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.