Имеется сервер где все процессы apache&php запускаются от nobody.Я написал php скрипт, который получает параметры и передаёт запрос на bash скрипт.
Bash скрипт выполняет действия на фаерволле, но работать он будет только если пользователю nobody дать права на доступ к фаерволлу, а поскольку на сервере есть и другие пользователи это делать будет небезопасно...Есть ли какой-то способ заставить работать bash скрипт от имени конкретного пользователя, так чтобы это было безопасно?
Спасибо.
sudo
>sudoэто всё замечательно, но поскольку скрипт выполняется от nobody я не могу дать ему права на операции с фаерволлом. Остаётся только выбор другого пользователя при выполнении bash скрипта, но тут встаёт проблема ввода пароля для sudo -u user, которую у меня пока не получилось решить. Может кто-то напишет пример?
А вы таки почитайте man sudoers, там даже примеры есть.
>>sudo
>
>это всё замечательно, но поскольку скрипт выполняется от nobody я не могу
>дать ему права на операции с фаерволлом. Остаётся только выбор другого
>пользователя при выполнении bash скрипта, но тут встаёт проблема ввода пароля
>для sudo -u user, которую у меня пока не получилось решить.
>Может кто-то напишет пример?См. man sudoers на предмет NOPASSWD.
>>>sudo
>>
>>это всё замечательно, но поскольку скрипт выполняется от nobody я не могу
>>дать ему права на операции с фаерволлом. Остаётся только выбор другого
>>пользователя при выполнении bash скрипта, но тут встаёт проблема ввода пароля
>>для sudo -u user, которую у меня пока не получилось решить.
>>Может кто-то напишет пример?
>
>См. man sudoers на предмет NOPASSWD.Да я уже читал. Может я чего-то не понимаю, но если я разрешу выполнение команды без пароля то в дальнейшем любой пользователь на сервере зная только имя пользователя сможет выполнить эту команду. Пароль то не нужен будет.
>Да я уже читал. Может я чего-то не понимаю, но если я
>разрешу выполнение команды без пароля то в дальнейшем любой пользователь на
>сервере зная только имя пользователя сможет выполнить эту команду. Пароль то
>не нужен будет.Не любой пользователь, а только nobody.
Повторяйте за мной:
sudo это НЕ su, надо было читать man
sudo это НЕ su, надо было читать man
sudo это НЕ su, надо было читать man
sudo это НЕ su, надо было читать man
sudo это НЕ su, надо было читать man
sudo это НЕ su, надо было читать man
sudo это НЕ su, надо было читать man
Наступило просветление? Если нет, то продолжайте повторять и ВНИМАТЕЛЬНО читать man.
sudo -u user и su user при внешней схожести довольно сильно отличаются. Если в sudoers прописано что-то вроде:
username ALL = NOPASSWD: somescript
то ТОЛЬКО username может выполнить ТОЛЬКО somescript с рутовыми привилегиями. Если добавить (ALL) перед NOPASSWD, то ТОЛЬКО username сможет выполнить ТОЛЬКО somescript с привилегиями любого пользователя, которого укажет в -u
Вы меня не поняли. Когда я говорил ВСЕ я подразумевал что php&bash скрипты запускаются от nobody. Любой пользователь на сервере может написать php скрипт, поскольку скрипт выполняется от nobody у него будут права на выполнение команды без пароля.
Вы безнадежны
>Вы меня не поняли. Когда я говорил ВСЕ я подразумевал что php&bash
>скрипты запускаются от nobody. Любой пользователь на сервере может написать php
>скрипт, поскольку скрипт выполняется от nobody у него будут права на
>выполнение команды без пароля.Да, в вашем случае так и будет. Вы правы.
>Да, в вашем случае так и будет. Вы правы.Полный песец. В sudoers даем разрешение на запуск ОДНОГО скрипта. Ну и что будут делать все остальные пользователи с этим?
Разумеется при этом возникают другие вопросы типа аутентификации в скрипте, разделение области видимости пользователей, прав на сам скрипт и вышестоящие директории. Но все эти вопросы не имеют отношения к sudo.
Здравствуйте. Столкнулся с похожей проблемой.
Нужно автоматизировать запуск системного скрипта из веб-формы, с использованием определенного локального пользователя. Подскажите, пожалуйста, как в команде sudo или su задавать параметром (или еще какмм способом) пароль этого самого пользователя?
>Здравствуйте. Столкнулся с похожей проблемой.
>Нужно автоматизировать запуск системного скрипта из веб-формы, с использованием определенного локального пользователя.
>Подскажите, пожалуйста, как в команде sudo или su задавать параметром (или
>еще какмм способом) пароль этого самого пользователя?Никак, если пароль в коммандрой строке или в окружении - это не пароль уже, потому что виден вообще ВСЕМ. Есть опция для чтения пароля с stdin, но пароль придется хранить в скрипте и его опять таки прочитает кто угодно. В общем, подумайте головой, прочитайте sudoers и разрешите только то, что надо.
>Подскажите, пожалуйста, как в команде sudo или su задавать параметром (илиДать в sudoers право пользователю www-data (или подкем там у Вас веб-сервер) право sudo-итить тот скрипт под тем другим пользователем _без_пароля_. Ага-да?...
...и именно этот там наверху--^^^ написано.
---http://google.ru/search?q=sudoers+site%3Aopennet.ru