|
|
|
Запуск задач от одного пользователя в непересекаемых по чтению папках
|
|||
|---|---|---|---|
|
#18+
Всем привет. Есть следующая задача: программное обеспечение (агент), работающее на Linux машине должно запускать задачи по требованию от различных сторонних пользователей. Т.е., иначе говоря, на linux машине постоянно работает агент, доступный удалённо по какому-либо интерфейсу. И вот удалённо различные пользователи присылают на агент команды - запустить ту или иную задачу. Вопрос: каким образом можно реализовать безопасность в системе так, чтобы разные процессы, запущенные этим агентом, не имели доступа к файлам данных других таких же процессов? Агент работает и запускает задачи от фиксированного пользователя, других пользователей, отдельно для каждого запускаемого процесса, быть не может, ибо внешние запросы и пользователи заранее неизвестны. Решаема ли вообще такая задача? Заранее спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.09.2009, 15:47 |
|
||
|
Запуск задач от одного пользователя в непересекаемых по чтению папках
|
|||
|---|---|---|---|
|
#18+
junixarВсем привет. Есть следующая задача: программное обеспечение (агент), работающее на Linux машине должно запускать задачи по требованию от различных сторонних пользователей. Т.е., иначе говоря, на linux машине постоянно работает агент, доступный удалённо по какому-либо интерфейсу. И вот удалённо различные пользователи присылают на агент команды - запустить ту или иную задачу. Вопрос: каким образом можно реализовать безопасность в системе так, чтобы разные процессы, запущенные этим агентом, не имели доступа к файлам данных других таких же процессов? Агент работает и запускает задачи от фиксированного пользователя, других пользователей, отдельно для каждого запускаемого процесса, быть не может, ибо внешние запросы и пользователи заранее неизвестны. Решаема ли вообще такая задача? Заранее спасибо. Запускать процессы в chroot, сойдет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2009, 06:39 |
|
||
|
Запуск задач от одного пользователя в непересекаемых по чтению папках
|
|||
|---|---|---|---|
|
#18+
chroot не подходит, потому как может быть запущен только root-ом. Приложение агент работает не под root. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2009, 11:52 |
|
||
|
Запуск задач от одного пользователя в непересекаемых по чтению папках
|
|||
|---|---|---|---|
|
#18+
бесконечное количество запросов одновременно Вы не сможете запустить, значит у Вас предусмотрен какой то лимит. вот и сделайте столько пользователей сколько этот лимит. в агенте сделайте пул пользователей и выделяйте из него свободного при запросе. команду пишите в /tmp/userX.sh агенту дайте права на sudo -u user* /tmp/user*.sh форкайтесь и запускайте скрипт через суду. по SIGCHILD помечайте пользователя в пуле как "свободный" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2009, 14:12 |
|
||
|
Запуск задач от одного пользователя в непересекаемых по чтению папках
|
|||
|---|---|---|---|
|
#18+
Обычная практика в *nix - менять uid процесса после авторизации на реального ( или виртуального ) пользователя. Так работают большинство служб в **nix, типа telnet, ftp, и прочих. Но при этом обязательно основной демон запускать как root, поскольку другим процессам менять uid не положено. Это не обойти никак. Не обязательно сам агент запускать как root, можно сделать простенькую службу которая только делает авторизацию и запускает реального агента с реальными правами. См: man setuid, man seteuid, man setfsuid. Чтобы не забивать систему пользователями, их можно подставлять через pam/nss - какой-нибудь готовый ( ldap, db ... ) или написать свой. Поскольку разговор идет о разных пользователях, какая-то авторизация наверняка имеется ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2009, 04:50 |
|
||
|
|

start [/forum/topic.php?fid=25&msg=36190656&tid=1485519]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
174ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
38ms |
get tp. blocked users: |
1ms |
| others: | 209ms |
| total: | 463ms |

| 0 / 0 |
