Страница 1 из 1
Linux route permisions
Добавлено: 2013-03-13 14:21:29
vadim64
Доброго дня, форумчане!
Как позволить некой группе добавлять маршруты в таблицу маршрутизации?
Re: Linux route permisions
Добавлено: 2013-03-14 1:18:47
rayder
например через sudo
Re: Linux route permisions
Добавлено: 2013-03-14 6:52:50
vadim64
)))
спасибо за ответ
в вопросе я не указал что добавлением маршрута занимается скрипт, запущенный под непривилегированным пользователем.
судо сразу приходит в голову. но получается что для работы этого решения нужно дописывать в судоерс группу и описывать команду. а в моём случае работает скрипт и приходится ещё и разрешать команду sudo ip без ввода пароля.
я думал что может есть какая то переменная в /proc, которая позволяет это настроить. думаю в этом направление потому что нашёл там переменную, разрешающую абы кому создавать tap интерфейсы
Re: Linux route permisions
Добавлено: 2013-03-24 14:19:24
MAGNet
Про
sudo.
В
/etc/sudoers добавить строку:
Код: Выделить всё
#User privilege specification
username localhost=NOPASSWD: /path/progname
теперь из-под любого пользователя progname можно запустить командой:
Если progname - это скрипт - значит
все процессы из этого скрипта будут с правами su.
По сути.
Не вникал в вопросы модификации настроек ядра для определенных юзеров, что-нибудь поищу - самому интересно

У меня, например, добавлением роутов страдает только впн-клиент, но он запускается с от root-а.
зы
я бы пошел путем sudo
Re: Linux route permisions
Добавлено: 2013-03-24 15:56:33
MAGNet
Нагуглил следующее:
в любом случае, чтобы изменить таблицу маршрутизации ваша программа должна иметь права root, любым образом, можете попробовать поиграться с SUID-бит.
Подробно про
SUID и другие права на файлы.
Поробовал следующее:
Код: Выделить всё
# скрипт должен принадлежать группе, в которую входит username, а владельцем должен являться root
# изменяем для username первичную группу на usergroup (можно использовать группу username по умолчанию)
sudo groupadd usergroup
sudo usermod -g usergroup username
# назначаем владельца и группу для скрипта
sudo chown root:usergroup /path/progname
# выставляем бит suid и заменяет обычные права на 750 (rwxr-x---)
sudo chmod 4750 /path/progname
# запускаем из-под username(!)
/path/progname
Тупо убил время -
не работает!
Ещё погуглил и выяснил что:
- Создаю скрипт, делаю его принадлежащим root и ставлю бит SUID. Пользователь запускает его, а он не выполняет свою задачу - недостаточно прав.
- На скрипты SUID не работает. Только на бинарные файлы.
- А может скомпилить бинарник, который сможет запускать скрипт путь к которому передан как параметр?
- Так бинарник такой уже есть - sudo называется. Осталось прочитать man sudoers.
Короче - вернулись всё к тому, с чего начали

Желаю удачи!
Re: Linux route permisions
Добавлено: 2013-03-25 7:40:46
vadim64
))))
спасибо за внимание
Re: Linux route permisions
Добавлено: 2013-03-26 12:34:30
MAGNet
..с булочкой

Re: Linux route permisions
Добавлено: 2013-03-26 13:03:50
vadim64
на всякий случай оставляю ссылку для раскурки деталей происходящего _http://
www.linuxjournal.com/article/7356
Re: Linux route permisions
Добавлено: 2013-03-31 21:12:46
MAGNet
Ха! Выпустил из виду одну весчь!
Ключик для запуска bash -p (privileged) - сценарий запускается как "suid". И ещё на всякий добавить setuid(0).
Вот типа так попробовать:
Если не прокатит, то можно запускать через:
..но сам не пробовал, если честно. Уже лень
