将某些内容回显到根文件期间的 sudo 问题

将某些内容回显到根文件期间的 sudo 问题

在将某些内容写入根文件期间,我遇到问题:

$ ll /sys/bus/usb/devices/3-2/power/wakeup
-rw-r--r-- 1 root root 4096 Feb 16 17:28 /sys/bus/usb/devices/3-2/power/wakeup
$ sudo echo disabled > /sys/bus/usb/devices/3-2/power/wakeup
bash: /sys/bus/usb/devices/3-2/power/wakeup: Permission denied

即使它没有要求我输入密码。

  1. 我该如何解决这个问题?
  2. 为什么我不能sudo直接使用?

答案1

您不能将 sudo 与重定向一起使用,因为重定向是由作为您自己的用户代码运行的原始 shell 完成的。它尝试为 > 之后提到的文件设置一个文件描述符,但由于用户无法写入它而失败。

Costas 的方法有效,就像生成子 shell 一样:

sudo sh -c "echo disabled > /sys/bus/usb/device/3-2/power/wakeup"

相关内容