LINUX.ORG.RU

Редактировать системный файл без запроса пароля


0

1

Всем доброго времени суток.

Собственно, сабж.

Необходимо разрешить пользователю редактирование /etc/network/interfaces без запроса пароля.

Пользователь запускает скрипт, в котором данные записываются через

echo $data >> /etc/network/interfaces

Знаю, что можно просто разрешить в sudoers запуск этого скрипта без пароля, но в sudoers надо прописать полный путь к этому скрипту, а предполагается, что его «местоположение» может меняться...

Есть какие-нибудь красивые варианты решения поставленной задачи?

Заранее спасибо!

★★

Скрипт юзера менять можно? Тогда дайте юзеру sudo на cp /tmp/newconfig /etc/oldconfig

Второй вариант дать право на tee какой-нить и писать в духе echo data | sudo teee /etc/config

предполагается, что его «местоположение» может меняться...

с этого места по-подробнее

true_admin ★★★★★ ()

надо

не надо. надо дать имя бинарника и прописать папку с последним в переменную PATH, чтобы оной запускался как обычная команда, без указания полного пути. если и это не устраивает, то, кажись, придётся плясать с селинукс и/или полкитом

xsektorx ★★★ ()

ах да, если тебе надо тупо менять настройки сети, то нетворкманагер уже посоветовали

xsektorx ★★★ ()
Ответ на: комментарий от AITap

NetworkManager не катит...

Суть проблемы более глобально - есть программа с интерфейсом на Qt, которая запускается на одноплатнике с голым debian (без иксов и тд). Из сетевых интерфейсов - только eth0, здесь все просто. Необходимо предоставить возможность настраивать параметры сети.

Первый пришедший в голову вариант - считать параметры из Qt-шного окошка и передать их в скрипт, который внесет соответствующие изменения в interfaces и перезапустит eth0.

Соответственно надо, чтобы этот скрипт выполнял все эти действия без запроса пользовательского пароля...

А по поводу ACL - так что конкретно? Добавить пользователя в группу root - не выход, потому что системные файлы доступны на редактирование только пользователю root, но не группе

solovey ★★ ()
Ответ на: комментарий от true_admin

ну это как-то уж совсем сурово. Хотя конкретно в моем варианте - вполне вариант, на самом деле... Как обычно, о самом простом я и не подумал =)

solovey ★★ ()
Ответ на: комментарий от m0rph

Ну раз все так плюсуют NM, то, видимо, действительно придется разбираться, как с ним работать...

solovey ★★ ()
Ответ на: комментарий от solovey

Если ФС поддерживает расширенные ACL, можно через setfacl произвольные разрешения выставить.

anonymous ()
Ответ на: комментарий от solovey

А по поводу ACL - так что конкретно?

ФС одноплатника поддерживает Linux ACL?
Если да, то setfacl -m u:user:w /etc/network/interfaces

AITap ★★★★★ ()
Ответ на: комментарий от AITap

Кстати, если все-таки копать в сторону NetworkManager, то не подскажете, где можно почитать про работу с ним из Qt/C++?

solovey ★★ ()
Ответ на: комментарий от solovey

NetworkManager не катит...

Суть проблемы более глобально - есть программа с интерфейсом на Qt, которая запускается на одноплатнике с голым debian (без иксов и тд). Из сетевых интерфейсов - только eth0, здесь все просто.

Он умеет работать из консоли.

greyl ()
Ответ на: комментарий от xsektorx

тогда надо

а оно по-другому не даст, visudo напишет invalid syntax

true_admin ★★★★★ ()
Ответ на: комментарий от solovey

Просто не знаком с его api.

Там не надо знать апи, там тупо одна команда, чтобы настроить как надо. Почитай маны к его cli.

greyl ()

А почему бы бинарь (скрипт по моему, нельзя) не сделать исполняемым от рута?

AVL2 ★★★★★ ()
Ответ на: комментарий от Jonson___

sudo chmod 777 /etc/network/interfaces

И зачем давать права на исполнение?

firestarter ★★★☆ ()
Ответ на: комментарий от solovey

ну это как-то уж совсем сурово

Очень даже нормально. сделай chgrp netadmin /etc/network/interfaces ; chmod g+w /etc/network/interfaces (создать группу и добавить в нее пользователя осилишь, надеюсь)

sdio ★★★★★ ()
11 июля 2013 г.

Плюсую тех, кто советует дать пользователю права на редактирование /etc/network/interfaces

alix ★★★★ ()
Ответ на: комментарий от alix

Как тебя в эту тему занесло О_о

Посмотри на дату создания... Кстати, в конечном итоге проблема была решена именно таким образом, ЕМНИП =)

solovey ★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.