如何在 Ubuntu 9.10 中关闭 ASLR

如何在 Ubuntu 9.10 中关闭 ASLR

我想在自己的电脑上关闭 ASLR。但是每次我输入“sudo echo 0 > /proc/sys/kernel/randomize_va_space”时,系统都会显示“权限被拒绝”。我该怎么做呢?顺便说一下,我的操作系统内核是 2.6.30。

希望有人能帮助我。

问候。

答案1

这是 sudo 和 shell 重定向的常见问题。“sudoness”不会传播到重定向之外。解决此问题的一种方法是

sudo bash -c "echo 0 > /path/to/file"

答案2

在您的命令中,I/O 重定向>由当前 shell 处理。解释器将该命令视为 3 个部分:

  1. sudo echo 0
  2. >
  3. /proc/sys/kernel/randomize_va_space

使用超级用户权限执行echo,而当前 shell(具有普通用户权限)尝试写入/proc/sys/kernel/randomize_va_space,从而触发Permission denied错误。

有几种方法可以解决这个问题。第一种方法是使用超级用户权限运行 shell,并使用开关将命令传递给 shell -c

sudo sh -c "echo 0 > /proc/sys/kernel/randomize_va_space"

(您可以将其用于shPOSIX shell 和bashBash)

另一种方法是使用tee命令。该tee命令将内容从标准输入复制到标准输出(通常指“屏幕”)以及列出的文件。因此,以下命令将字符打印A到标准输出以及文件output1.txtoutput2.txt

echo A | tee output1.txt output2.txt

在您的问题中,写入/proc/sys/kernel/randomize_va_space需要超级用户权限,而echo-ing则0不需要。因此,解决方案是:

echo 0 | sudo tee /proc/sys/kernel/randomize_va_space >/dev/null

最后的重定向/dev/null阻止0打印到屏幕上。

答案3

sudo适用于您的 echo 命令(而不是管道之后)。

你可以试试:

echo 0 | sudo tee /proc/sys/kernel/randomize_va_space

相关内容