Per @Peter Bašista's answer in his own question:
At first, I thought this is an error and that's why I started this
question. But it turned out it's simply a perfectly correct behavior.
It turns out that RTFM saying applies here as well.
As man bash
reveals, the ulimit
built-in command has additional
parameters: -H
for setting the so-called hard limits and -S
for setting the so-called soft limits. Moreover, if none of these
options are given, the default behavior is that ulimit
tries to set
both the soft and the hard limits to the same value at once. And that was the problem.
Now there is a quote from the bash
man page:
A hard limit cannot be increased by a non-root user once it is set;
So, there we go. The correct usage of ulimit
command should always
have this in mind. Most importantly, it should never be used without
-H
or -S
options unless you are sure to know what you are doing
(which at the time I obviously wasn't).
What I should have done is something like this:
After login: ulimit -H -c unlimited
Each time I want to change maximum core dump size limit ulimit -S -c
<new size>
So, that's about it. I hope it could help someone who might struggle
with a similar problem.