使用sudo

时间:2015-10-31 13:33:23

标签: root sudo raspberry-pi2 buildroot

在buildroot环境中,我将一个用户添加到组轮。现在我可以使用sudo以root权限执行命令。

它似乎有效,但当我尝试在我的RPi上导出一个引脚时,我总是得到Permission denied:

rpi:~$ sudo echo 4 > /sys/class/gpio/export
sh: can't create /sys/class/gpio/export: Permission denied

这个目录的内容:

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

使用sudo写入导出文件是不是足以获得root权限?我害怕所有者和团体。事实上,如果我输入:

rpi:~$ sudo chmod a+w /sys/class/gpio/*

然后我可以成功导出引脚。但我不知道这是否是最好的方法。

1 个答案:

答案 0 :(得分:7)

当您运行命令sudo echo 4 > /sys/class/gpio/export时,它首先执行sudo echo 4,它以提升的权限运行echo(这是毫无意义的)。然后结果由shell(而不是echo)传递给/sys/class/gpio/export的新命令,因为它是一个新命令,它不会以提升的权限执行。

有一个Unix.SE问题here解释了这个和选项。

在该链接的摘要中,您应该能够执行以下操作:

sudo sh -c 'echo 4 > /sys/class/gpio/export'