找不到 ulimit 命令(没有 sudo)和错误 - coredumpsize:无法设置限制(不允许操作)

找不到 ulimit 命令(没有 sudo)和错误 - coredumpsize:无法设置限制(不允许操作)

当我最初登录服务器时,我看到以下错误消息。

ullimit: coredumpsize: Can't set limit (Operation not permitted)

此外,当我尝试将文件复制到这台机器时,我看到同样的错误,

cat .ssh/no_pass_rsa.pub | ssh user@server 'cat >> .ssh/authorized_keys'
user@server's password:
limit: coredumpsize: Can't set limit (Operation not permitted)

我在很多博客文章中读到我必须增加用户的硬限制和软限制。尝试使用以下命令检查 ulimit,输出如下:

server> ulimit
ulimit: Command not found.

我找不到用户遇到此操作不存在问题的帖子。

另外,我检查了限制并注意到 coredumpsize 是 0kbytes

$server> limit
cputime      unlimited
filesize     unlimited
datasize     unlimited
stacksize    33000 kbytes
coredumpsize 0 kbytes
memoryuse    unlimited
vmemoryuse   unlimited
descriptors  1048576
memorylocked 64 kbytes
maxproc      1030357
maxlocks     unlimited
maxsignal    1030357
maxmessage   819200
maxnice      0
maxrtprio    0
maxrttime    unlimited

如何增加核心转储大小或修改它来解决此问题?还有其他解决办法吗?

答案1

ulimit是一个内置的sh家族(sobashksh)。对于csh家庭来说,命令是limit。 (zsh很复杂并且允许两者。)

普通用户可以不是提高他们的硬性限制。只能root做到这一点。在典型的 Linux 机器上,这是通过pam_limits(例如 in/etc/security/limits.conf和 files in /etc/security/limits.d)完成的。这些设置将在登录时生效(如果使用sshd则确保usePam yes在 中设置sshd_config)。

然而用户可以降低它们的限制,因此您可能有一行 in.login/etc/csh.login/etc/profile.d/*或类似的行将限制减少到零,在这种情况下,需要删除该行。

答案2

找不到 ulimit 命令 - 发生的原因是只有 root 用户有权运行此命令,而我试图以普通用户身份执行它。通过以 root 身份运行此命令,命令成功执行。

错误已解决 - coredumpsize:无法设置限制(不允许操作) 通过编辑 /etc/security/limits.conf 并修改用于设置核心限制的行(以 root 用户身份)解决了该问题

文件:/etc/security/limits.conf

最初:

# End of file
##### Begin HR 424923 ######
*        soft        nofile        8192
*        hard        nofile        8192
##### End HR 424923  ########

# Limit core dumps
*       soft    core    0
*       hard    core    0

最后:

# End of file
##### Begin HR 424923 ######
*        soft        nofile        8192
*        hard        nofile        8192
##### End HR 424923  ########

# Limit core dumps
*       soft    core    65535
*       hard    core    65535

相关内容