【问题标题】:Linux editing privilege over webserviceLinux 对 web 服务的编辑权限
【发布时间】:2018-05-23 01:00:24
【问题描述】:

我目前正在从事一个项目,该项目将动态获取我的工作的一些信息并将它们显示在一个 html 页面中。为此,我编写了一个 Python 脚本,将使用 PHP Web 服务调用该脚本。该脚本需要编辑一些文件才能工作。 基本上 PHP 使用 $output = shell_exec('python script.py');
问题是,如果调用 web 服务,脚本没有编辑文件所需的权限。 所以网络服务器应该使用类似 $output = shell_exec('sudo python script.py'); 的东西来调用脚本
我可能需要更改项目文件夹的权限,但我不知道如何。 一些附加信息:
我在 raspian 上使用带有 LAMP 安装的树莓派 3 作为网络服务器 文件夹结构如下:
项目文件夹
|
- 样式(包含 css)
-script.py
-script2.py
-filetoedit1.txt
-filetoedit2.html

感谢任何帮助!

【问题讨论】:

  • 找出网络服务器在哪个用户下运行,然后将 script.py 的所有权更改为该用户
  • 有效,如果我使用 ssh 运行它,但如果我使用浏览器调用 web 服务 --> ip/projectfolder/webservice.php 它不会编辑文件。

标签: php python linux webserver file-permissions


【解决方案1】:

正如@wpercy 所建议的,您已经确定了哪个用户正在执行该文件。通常该用户被称为 www-data ! 要找出哪个用户正在调用服务,请使用 ps aux | grep -E '[a]pache|[h]ttpd|[_]www|[w]ww-data|[n]ginx' | grep -v root | head -1 | cut -d\ -f1
确定用户后,您必须更改文件夹的权限。该命令应该类似于 chown -R www-data:www-data /var/www/html/Projectfolder

特别感谢 wpercy!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-09-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-12
    • 2017-08-04
    • 2012-12-24
    相关资源
    最近更新 更多