У меня есть jsTree, который вызывает веб-службу RESTful для получения списка файлов и каталогов. Я хотел бы ограничить возможности этой веб-службы на основе разрешений POSIX пользователя, который делает этот вызов.
Другими словами, эта конкретная веб-служба должна перечислять только файлы и каталоги, на доступ к которым у пользователя есть разрешения POSIX.
В настоящее время веб-служба ищет зашифрованные данные в файле cookie, который проверяет пользователя, вошедшего на веб-сайт. После аутентификации пользователя веб-служба выдает ответ для папки, указанной jsTree (например, для всех файлов и каталогов в /home/userA
). Веб-служба вызывается еще раз для подкаталогов, еще раз для подподкаталогов и так далее.
Однако веб-служба работает с разрешениями уровня root
, поэтому, если каким-либо образом было указано другое имя пользователя с помощью userA
, например. для просмотра /home/userB
, то userA
мог видеть список файлов и каталогов, на просмотр которых ему или ей не было предоставлено прав.
Есть ли какой-то эквивалент suExec
, который может запускать веб-службу с разрешениями указанного пользователя?
Если это поможет, моя конкретная служба представляет собой сценарий Perl, использующий File::Find::Rule
для предоставления одноуровневого глубокого списка содержимого указанного пути.
ИЗМЕНИТЬ
Все передается через соединение с шифрованием SSL.
sudo
на основе зашифрованного имени пользователя в файле cookie? Поскольку вы работаете как root, у вас не должно возникнуть проблем с sudo'ing в качестве фактического пользователя. - person Pekka   schedule 12.02.2011