URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 8169
[ Назад ]

Исходное сообщение
"Запуск bash скрипта от имени пользователя"

Отправлено Strik , 22-Мрт-09 22:01 
Имеется сервер где все процессы apache&php запускаются от nobody.

Я написал php скрипт, который получает параметры и передаёт запрос на bash скрипт.
Bash скрипт выполняет действия на фаерволле, но работать он будет только если пользователю nobody дать права на доступ к фаерволлу, а поскольку на сервере есть и другие пользователи это делать будет небезопасно...

Есть ли какой-то способ заставить работать bash скрипт от имени конкретного пользователя, так чтобы это было безопасно?

Спасибо.


Содержание

Сообщения в этом обсуждении
"Запуск bash скрипта от имени пользователя"
Отправлено phpcoder , 22-Мрт-09 22:03 
sudo



"Запуск bash скрипта от имени пользователя"
Отправлено Strik , 23-Мрт-09 02:10 
>sudo

это всё замечательно, но поскольку скрипт выполняется от nobody я не могу дать ему права на операции с фаерволлом. Остаётся только выбор другого пользователя при выполнении bash скрипта, но тут встаёт проблема ввода пароля для sudo -u user, которую у меня пока не получилось решить. Может кто-то напишет пример?


"Запуск bash скрипта от имени пользователя"
Отправлено angra , 23-Мрт-09 05:25 
А вы таки почитайте man sudoers, там даже примеры есть.


"Запуск bash скрипта от имени пользователя"
Отправлено phpcoder , 23-Мрт-09 09:07 
>>sudo
>
>это всё замечательно, но поскольку скрипт выполняется от nobody я не могу
>дать ему права на операции с фаерволлом. Остаётся только выбор другого
>пользователя при выполнении bash скрипта, но тут встаёт проблема ввода пароля
>для sudo -u user, которую у меня пока не получилось решить.
>Может кто-то напишет пример?

См. man sudoers на предмет NOPASSWD.



"Запуск bash скрипта от имени пользователя"
Отправлено Strik , 23-Мрт-09 13:58 
>>>sudo
>>
>>это всё замечательно, но поскольку скрипт выполняется от nobody я не могу
>>дать ему права на операции с фаерволлом. Остаётся только выбор другого
>>пользователя при выполнении bash скрипта, но тут встаёт проблема ввода пароля
>>для sudo -u user, которую у меня пока не получилось решить.
>>Может кто-то напишет пример?
>
>См. man sudoers на предмет NOPASSWD.

Да я уже читал. Может я чего-то не понимаю, но если я разрешу выполнение команды без пароля то в дальнейшем любой пользователь на сервере зная только имя пользователя сможет выполнить эту команду. Пароль то не нужен будет.


"Запуск bash скрипта от имени пользователя"
Отправлено phpcoder , 23-Мрт-09 14:07 
>Да я уже читал. Может я чего-то не понимаю, но если я
>разрешу выполнение команды без пароля то в дальнейшем любой пользователь на
>сервере зная только имя пользователя сможет выполнить эту команду. Пароль то
>не нужен будет.

Не любой пользователь, а только nobody.


"Запуск bash скрипта от имени пользователя"
Отправлено angra , 23-Мрт-09 17:04 
Повторяйте за мной:
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



"Запуск bash скрипта от имени пользователя"
Отправлено Strik , 23-Мрт-09 22:07 
Вы меня не поняли. Когда я говорил ВСЕ я подразумевал что php&bash скрипты запускаются от nobody. Любой пользователь на сервере может написать php скрипт, поскольку скрипт выполняется от nobody у него будут права на выполнение команды без пароля.  


"Запуск bash скрипта от имени пользователя"
Отправлено angra , 24-Мрт-09 07:02 
Вы безнадежны

"Запуск bash скрипта от имени пользователя"
Отправлено phpcoder , 24-Мрт-09 09:56 
>Вы меня не поняли. Когда я говорил ВСЕ я подразумевал что php&bash
>скрипты запускаются от nobody. Любой пользователь на сервере может написать php
>скрипт, поскольку скрипт выполняется от nobody у него будут права на
>выполнение команды без пароля.

Да, в вашем случае так и будет. Вы правы.


"Запуск bash скрипта от имени пользователя"
Отправлено angra , 24-Мрт-09 10:04 
>Да, в вашем случае так и будет. Вы правы.

Полный песец. В sudoers даем разрешение на запуск ОДНОГО скрипта. Ну и что будут делать все остальные пользователи с этим?
Разумеется при этом возникают другие вопросы типа аутентификации в скрипте, разделение области видимости пользователей, прав на сам скрипт и вышестоящие директории. Но все эти вопросы не имеют отношения к sudo.


"Запуск bash скрипта от имени пользователя"
Отправлено scyphius , 19-Май-09 14:13 
Здравствуйте. Столкнулся с похожей проблемой.
Нужно автоматизировать запуск системного скрипта из веб-формы, с использованием определенного локального пользователя. Подскажите, пожалуйста, как в команде sudo или su задавать параметром (или еще какмм способом) пароль этого самого пользователя?

"Запуск bash скрипта от имени пользователя"
Отправлено аноним , 19-Май-09 21:10 
>Здравствуйте. Столкнулся с похожей проблемой.
>Нужно автоматизировать запуск системного скрипта из веб-формы, с использованием определенного локального пользователя.
>Подскажите, пожалуйста, как в команде sudo или su задавать параметром (или
>еще какмм способом) пароль этого самого пользователя?

Никак, если пароль в коммандрой строке или в окружении - это не пароль уже, потому что виден вообще ВСЕМ. Есть опция для чтения пароля с stdin, но пароль придется хранить в скрипте и его опять таки прочитает кто угодно. В общем, подумайте головой, прочитайте sudoers и разрешите только то, что надо.


"Запуск bash скрипта от имени пользователя"
Отправлено Andrey Mitrofanov , 20-Май-09 11:38 
>Подскажите, пожалуйста, как в команде sudo или su задавать параметром (или

Дать в sudoers право пользователю www-data (или подкем там у Вас веб-сервер) право sudo-итить тот скрипт под тем другим пользователем _без_пароля_. Ага-да?...

...и именно этот там наверху--^^^ написано.
---http://google.ru/search?q=sudoers+site%3Aopennet.ru