Сценарий оболочки необходимо запускать от имени пользователя root

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

#!/bin/bash
/sbin/route add default gw 192.168.1
/sbin/route del default gw 192.168.1.2
/sbin/route del default gw 192.168.1.3
/sbin/route -n

У меня есть root-доступ к моей машине с Ubuntu, но мне нужно запустить приведенный выше сценарий оболочки от имени обычного пользователя. Как я могу это сделать?

ПРИМЕЧАНИЕ:

Случай 1. Наш локальный компьютер входит в систему на сервере LDAP, поэтому я не могу добавить свое имя пользователя Linux в sudoers/visudo.

Вариант 2: я уже переместил этот сценарий в каталог /bin и добавил к своему сценарию специальное разрешение SUID. Но обычный пользователь не может запустить этот скрипт.


person Stuart Michael    schedule 28.11.2017    source источник
comment
Вы получаете какую-либо ошибку в случае 2?   -  person vts    schedule 28.11.2017
comment
Рассмотрим sudo (почему вы думаете, что это не вариант?), setuid не поддерживается для скриптов.   -  person MrTux    schedule 28.11.2017
comment
См. также различные вопросы о том, как заставить мой PHP-скрипт выстрелить себе в ногу с корневым доступом без запуска HTTP-сервера с правами root, некоторые из которых содержат хаки, которые обходят требование sudo.   -  person tripleee    schedule 28.11.2017
comment
Я получаю следующую ошибку при запуске сценария: SIOCADDRT: операция не разрешена SIOCDELRT: операция не разрешена Я могу подумать, что sudo не работает нормально для моего случая. Поскольку наша учетная запись пользователя создана на сервере LDAP. По этой причине моя локальная учетная запись пользователя не найдена на моем локальном компьютере. У меня нет доступа к серверу LDAP. Если я хочу добавить имя пользователя в sudo/sudoers/visudo, мне нужна учетная запись на локальном компьютере, верно?   -  person Stuart Michael    schedule 28.11.2017


Ответы (1)


Я исправил проблему. Метод исправления следующий:

Добавлено разрешение SUID для команды route и добавлено разрешение на выполнение для этого сценария оболочки, а также перемещен файл в каталог /bin. Теперь вы можете запускать сценарий как команду.

person Stuart Michael    schedule 29.11.2017