【问题标题】:sudo and permission issues getting me crazysudo 和权限问题让我抓狂
【发布时间】:2021-12-25 22:36:46
【问题描述】:

我已经定义了一个 bash 脚本来准备 gpio27,以便通过安装 Buster 的 RaspberryPi Zero 2 上的其他脚本将其设置为 0 或 1。

脚本如下:

#!/bin/bash
echo "27" > /sys/class/gpio/export
echo "out" > /sys/class/gpio/gpio27/direction

1- 如果我以用户“pi”的身份运行此脚本,我会收到权限被拒绝错误 (NOK):

/home/pi/bin/prep27: line 3: /sys/class/gpio/gpio27/direction: Permision denied

2- 如果我以用户 pi (no sudo) 身份运行冲突行 'echo "out" > /sys/class/gpio/gpio27/direction',我不会收到错误 (OK)

echo "out" > /sys/class/gpio/gpio27/direction

3- 如果我将脚本中的第三行替换为 'sudo echo "out" > /sys/class/gpio/gpio27/direction' 并将脚本作为 pi 执行,我也会收到权限被拒绝错误 (挪威克朗)

#!/bin/bash
echo "27" > /sys/class/gpio/export
sudo echo "out" > /sys/class/gpio/gpio27/direction

4- 如果我 sudo 以用户 pi 执行脚本,我不会收到错误 (OK)

sudo /home/pi/bin/prep27

您能帮我理解脚本及其内容的这些权限问题吗?

非常感谢

【问题讨论】:

    标签: permissions raspbian sudo sys raspberry-pi-zero


    【解决方案1】:

    我相信您面临的问题与 Raspi 在您创建 pin 后分配权限的方式有关。这使用一种名为udev 的机制来工作,该机制在上一个导出行创建新“文件”/sys/class/gpio/gpio27/direction 后更改其权限。现在的问题是,这需要一些时间才能正常工作。

    要解决此问题,您必须在 echo "27" > /sys/class/gpio/export 行之后添加延迟(应该是 1 秒左右)。或者,您可以重复 direction 行,直到它起作用为止。

    【讨论】:

      猜你喜欢
      • 2010-12-03
      • 1970-01-01
      • 2013-12-29
      • 1970-01-01
      • 2010-11-19
      • 1970-01-01
      • 2010-12-29
      • 2011-05-09
      • 2014-05-19
      相关资源
      最近更新 更多