python - Errno 13 权限被拒绝的 bash 脚本和 apache2

标签 python linux bash apache

我正在尝试运行 bash 脚本以从 BMP280 传感器获取值。

#!/bin/bash
echo "Content-type: text/html"
echo ""
read_bme280 --i2c-address 0x76

网页是空白的,在 error.log 中我得到:

[Tue Mar 29 07:20:40.579423 2016] [cgi:error] [pid 1280] [client 10.20.30.127:34334] AH01215: Traceback (most recent call last):
[Tue Mar 29 07:20:40.580102 2016] [cgi:error] [pid 1280] [client 10.20.30.127:34334] AH01215:   File "/usr/local/bin/read_bme280", line 9, in <module>
[Tue Mar 29 07:20:40.580589 2016] [cgi:error] [pid 1280] [client 10.20.30.127:34334] AH01215:     
[Tue Mar 29 07:20:40.581016 2016] [cgi:error] [pid 1280] [client 10.20.30.127:34334] AH01215: load_entry_point('bme280==0.2', 'console_scripts', 'read_bme280')()
[Tue Mar 29 07:20:40.581669 2016] [cgi:error] [pid 1280] [client 10.20.30.127:34334] AH01215:   File "/usr/local/lib/python2.7/dist-packages/bme280/bme280.py", line 210, in main
[Tue Mar 29 07:20:40.582426 2016] [cgi:error] [pid 1280] [client 10.20.30.127:34334] AH01215:     
[Tue Mar 29 07:20:40.582811 2016] [cgi:error] [pid 1280] [client 10.20.30.127:34334] AH01215: bme280_i2c.set_default_bus(int(args.i2c_bus))
[Tue Mar 29 07:20:40.583487 2016] [cgi:error] [pid 1280] [client 10.20.30.127:34334] AH01215:   File "/usr/local/lib/python2.7/dist-packages/bme280/bme280_i2c.py", line 22, in set_default_bus
[Tue Mar 29 07:20:40.583991 2016] [cgi:error] [pid 1280] [client 10.20.30.127:34334] AH01215:     
[Tue Mar 29 07:20:40.584345 2016] [cgi:error] [pid 1280] [client 10.20.30.127:34334] AH01215: default_bus = smbus.SMBus(bus_number)
[Tue Mar 29 07:20:40.584836 2016] [cgi:error] [pid 1280] [client 10.20.30.127:34334] AH01215: IOError
[Tue Mar 29 07:20:40.587657 2016] [cgi:error] [pid 1280] [client 10.20.30.127:34334] AH01215: : [Errno 13] Permission denied

从 cli 中,脚本运行得很好。 无法弄清楚“权限被拒绝”问题出在哪里。

最佳答案

如果 tte 文件由 root 拥有,则尝试 chmod +s/usr/local/bin/read_bme280。它应该允许脚本以 root 权限运行,从而可以访问所有内容。

作为安全预防措施,您可以确保其他用户无法编辑此文件。

关于python - Errno 13 权限被拒绝的 bash 脚本和 apache2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36278041/

相关文章:

linux - 如何在 bash 脚本中获取 cat 输出路径作为变量

linux - Siege 启动错误 - 无法连接到套接字

linux - 无法在 CentOS 中运行 cat 命令(参数列表太长)

bash - 将带有heredocs的bash命令复制/粘贴到终端时出现奇怪的行为

python - 在python中重命名单个文件

Javafx 使用目录选择器在 Linux 下使应用程序崩溃

bash - 添加尾随逗号以确保 .csv 行具有相同的列数

python - 用于生成音频文件的好 python 库?

python - 如何从 Azure Blob 存储并行加载文件?

python - 使用 Django 保存用户生成的密码