我有一个Python脚本,通过PHP执行,但脚本运行在用户的Ubuntu下。 如何将我的Python脚本更改为与我的PHP脚本(即www-data)相同的用户?
如果这不是一个安全的方法来做到这一点,会是什么?
Python脚本对通过PHP上传的文件执行任务,PHP自动将所有者和组设置为www-data。 我从命令行执行python脚本,它的工作原理,但通过PHP执行时,Python脚本没有权限执行上传文件的任务。
一个可能的解决scheme是将ubuntu用户添加到www-data组中:
sudo usermod -a -G www-data ubuntu
如果文件具有组写入权限,这将工作。 否则,你将不得不详细说明你是如何执行你的python脚本来确定它为什么以ubuntu用户身份运行的。
www数据的shell访问被禁用。 你可以将其添加到与www-data相同的组中: sudo useradd -G www-data {new_username} -s /bin/bash
现在将new_username的密码更改为你想要的: sudo passwd new_username
更改您要执行脚本的目录的权限。
cd /project/path sudo chown -R www-data:www-data project cd project find . -type f | xargs sudo chmod 660 find . -type d | xargs sudo chmod 770
最后两行允许仅对组www-data中的用户进行写访问。 然后你可以在目录中执行你的脚本作为new_username: sudo new_username python myscript.py 。 或者简单地su new_username -然后python myscript.py 。