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