我想为/etc/init.d中的每个服务设置安全限制
ulimit -c unlimited
但这应该在发出&#34; service <process> start
&#34;时执行。或&#34; /etc/init.d/<process> start
&#34;。
是否存在通用路径,因此如果我们在那里写,它将适用于所有服务,即#34;开始&#34;服务。
答案 0 :(得分:1)
如果您创建类似此文件的文件:
/etc/init.d/.commonStuff
并输入您想要对所有脚本通用的命令:(没有&#39;#!/ usr / bin / bash&#39;行)
# This code is meant to be included by another script.
ulimit -c unlimited
umask 027
THIS_VARIABLE="will exist once the include is completed"
export THIS_VALIABLE # And now it is exportable too
然后在每个脚本中你可以添加这些行(在方便的地方):
# Include the common settings
. /etc/init.d/.commonStuff
前导点是&#34;包含一些其他文件&#34;指示器。
确保新文件受到保护(即由root拥有),并从中删除可执行标志以清楚表明它并不意味着自己执行。 (访问不应超过644)。
答案 1 :(得分:0)
/etc/init.d/
中的文件几乎都是bash shell脚本。所以这有点脏,但是你可以用脚本替换/ bin / sh,但是你必须非常小心你这样做,所以你不要在这个过程中淹没你的系统。
首先在当前目录中使用以下内容创建文件sh.wrap
:
#/bin/sh.real
ulimit -c unlimited
/bin/sh.real "$@"
然后像这样安装:
chmod +x sh.wrap
sudo cp /bin/sh /bin/sh.real
sudo mv sh.wrap /bin/sh
这是一个肮脏的黑客,但它可以为你想做的事情工作。
我建议你弄清楚为什么使用/etc/security/limits.conf
并不适合你,而是使用它,但我真的很讨厌“你为什么要那样做?”答案。