写入 /proc 的权限问题

写入 /proc 的权限问题

Linux 新手尝试覆盖/proc/sys/fs/file-max

sudo sh -c 300000 > file-max返回bash: file-max: Permission denied。我真的必须是 root 才能执行此操作吗?我正在使用的用户帐户已添加到 sudo 用户组。

我看到这个问题的变体主要试图修改不同的文件夹,上面的命令是缓解问题的建议,但是目录/proc不同吗?

注意:使用最新的 Kali Linux 版本。

答案1

你提出的命令是无意义的。 sudo sh -c 300000 > file-max将尝试让超级用户 shell 运行该命令300000并将输出重定向到file-max非超级用户 shell 的当前工作目录中调用的文件中。

您可能想做类似的事情:

sudo sh -c 'echo 300000 > /proc/fs/file-max'

也就是说,直接写入/proc是改变这些属性的一种有点古怪的方法。实现此更改的更“受人尊敬”的方式是:

sudo sysctl -w fs.file-max=300000

答案2

之前执行过重定向,sudo因此sudo无法提升重定向的权限。您需要具有 root 权限的 shell 才能执行此操作:

sudo bash -c 'echo 300000 >/proc/sys/fs/file-max'

答案3

问题是它/proc/file-max会被覆盖为您的用户而不是 root。

做:

echo 300000 | sudo tee /proc/sys/fs/file-max

或者:

sudo sysctl -w fs.file-max=300000

您必须重新启动网络才能使更改生效。手动重启网络的命令如下:

sudo service networking restart

您还应该添加fs.file-max=300000设置/etc/sysctl.conf以使服务器重新启动后仍然有效。

echo "fs.file-max=300000" | sudo tee -a /etc/sysctl.conf

相关内容