Mar*_*ark 0 sudo root buildroot raspberry-pi2
在buildroot环境中,我将一个用户添加到组轮.现在我可以使用sudo以root权限执行命令.
它似乎有效,但当我尝试在我的RPi上导出一个引脚时,我总是得到Permission denied:
rpi:~$ sudo echo 4 > /sys/class/gpio/export
sh: can't create /sys/class/gpio/export: Permission denied
Run Code Online (Sandbox Code Playgroud)
这里是该目录的内容:
rpi:~$ ls -l /sys/class/gpio/
total 0
--w------- 1 root root 4096 Jan 1 00:00 export
lrwxrwxrwx 1 root root 0 Jan 1 00:00 gpiochip0 -> ../../devices/platform/soc/3f200000.gpio/gpio/gpiochip0
--w------- 1 root root 4096 Jan 1 00:00 unexport
Run Code Online (Sandbox Code Playgroud)
使用sudo获取root权限是否足以在导出文件中写入?我害怕所有者和团体.事实上,如果我输入:
rpi:~$ sudo chmod a+w /sys/class/gpio/*
Run Code Online (Sandbox Code Playgroud)
然后我可以成功导出引脚.但我不知道这是否是最好的方法.
当您运行该命令时sudo echo 4 > /sys/class/gpio/export,它首先执行以升级的权限sudo echo 4运行echo(这是毫无意义的).然后结果由shell(而不是echo)传递给新命令/sys/class/gpio/export,因为它是一个新命令,它不会以提升的权限执行.
有一个Unix.SE问题在这里,说明此项和选项.
总结该链接,您应该可以执行以下操作:
sudo sh -c 'echo 4 > /sys/class/gpio/export'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3557 次 |
| 最近记录: |