当我最初登录服务器时,我看到以下错误消息。
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
家族(sobash
等ksh
)。对于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