Linux kernel 无法更改linux内核中的值

Linux kernel 无法更改linux内核中的值,linux-kernel,sudo,Linux Kernel,Sudo,我想更改内核linux中内核变量的值。我想更改:/sys/class/net/eth0/carrier值(具有su权限) 然而,我得到的信息是: bash: carrier: Permission denied 你知道我为什么得到这个吗。我认为,禁止用户更改某些值是很常见的,但我希望这意味着越过这一界限 谢谢大家! 我发现了这一点,事实上,这并不难找到:如果您运行的是类似于sudo echo 1>/sys/class/net/eth0/carrier,请注意,/sys/class/net/et

我想更改内核linux中内核变量的值。我想更改:/sys/class/net/eth0/carrier值(具有su权限)

然而,我得到的信息是:

bash: carrier: Permission denied
你知道我为什么得到这个吗。我认为,禁止用户更改某些值是很常见的,但我希望这意味着越过这一界限


谢谢大家!

我发现了这一点,事实上,这并不难找到:如果您运行的是类似于
sudo echo 1>/sys/class/net/eth0/carrier
,请注意,
/sys/class/net/eth0/carrier
的东西,在运行
sudo
命令之前,shell会以您的正常用户权限打开它,因此可能会出现
EPERM
错误而失败。您可以运行类似于
sudosh-c'echo 1>/sys/class/net/eth0/carrier'
的程序。它将以超级用户的身份运行shell,并使用超级用户权限在该shell中执行重定向。