How to run an external command as a specific user in PHP

北慕城南 提交于 2019-11-28 02:17:44

问题


I thought of suPHP but that's not what I need. It doesn't serve to my purposes to run the whole PHP script as a different user. I just need to run one single linux command line as a different user.

Is it possible?


回答1:


You could try the shell_exec function and sudo

edit: seeing as sudo prompts for a password, you'd might wanna use proc_open, which allows you to use pipes. See this comment for how to create a custom password pipe.




回答2:


I believe you should try another approach. The "setuid".

http://en.wikipedia.org/wiki/Setuid

Basically you ask the file to run as it's owner, not the program.




回答3:


You can use that users CRON to execute the script. If this is a web application then you are limited to the Apache/Nobody user with limited permissions. If this just needs to run at a certain time I would use CRON.

Another approach is Sticky Bits



来源:https://stackoverflow.com/questions/1898393/how-to-run-an-external-command-as-a-specific-user-in-php

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!