J'ai un jsTree qui appelle un service web RESTful pour obtenir une liste de fichiers et de répertoires. Je voudrais limiter ce que ce service Web peut faire, basé sur les permissions POSIX de l'utilisateur qui fait cet appel. En d'autres termes, ce service Web spécifique doit uniquement répertorier les fichiers et répertoires auxquels l'utilisateur a accès à des autorisations POSIX.Comment limiter un appel Ajax à exécuter avec des autorisations POSIX spécifiques?
Actuellement, le service Web recherche des données cryptées dans un cookie, qui vérifie l'utilisateur qui est connecté au site Web. Une fois l'utilisateur authentifié, le service Web recrée une réponse pour un dossier spécifié par jsTree (par exemple, tous les fichiers et répertoires dans /home/userA
). Le service Web est appelé à nouveau dans les sous-répertoires, et de nouveau dans les sous-sous-répertoires, et ainsi de suite.
Cependant, le service Web s'exécute avec root
autorisations de niveau, et donc si un nom d'utilisateur différent était en quelque sorte spécifié par userA
, par exemple. pour afficher /home/userB
, puis userA
pouvait voir une liste de fichiers et de répertoires qu'il ou elle pourrait ne pas avoir été autorisé à voir.
Existe-t-il un équivalent de suExec
qui peut exécuter un service Web avec les autorisations d'un utilisateur spécifié? Si cela aide, mon service spécifique est un script Perl, en utilisant File::Find::Rule
pour fournir une liste profonde à un niveau du contenu d'un chemin spécifié.
EDIT
Tout est transmis via une connexion cryptée SSL.
Hmm. Peut-être mettre toute l'action dans un script séparé, et faire un 'sudo 'basé sur le nom d'utilisateur crypté dans le cookie? Vu que vous êtes en cours d'exécution en tant que root, vous ne devriez pas avoir de problème avec l'utilisateur réel. –
Vous avez crypté l'utilisateur dans un cookie? Et envoyer des données sur http? C'est une très mauvaise idée, voir http://codebutler.com/firesheep pour une simple démonstration de ce qui peut arriver si quelqu'un utilise votre site via le wifi dans un café. – btilly