bash : ulimit : 코어 파일 크기 : 제한을 수정할 수 없습니다 : 작업이 허용되지 않습니다


28

페도라 12 gcc 4.4.1

나는 프로그래밍을하고 있는데, 내 프로그램은 스택 덤프를 주었다.

그러나 검사 할 핵심 파일은 없습니다.

그래서 나는했다 :

ulimit -c unlimited

이 오류 메시지가 나타납니다.

bash: ulimit: core file size: cannot modify limit: Operation not permitted

또한 ulimit를 50000으로 설정하려고 시도했지만 여전히 동일한 오류가 발생했습니다.

ulimit -a의 결과 :

$ ulimit -a
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 12275
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1024
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 10240
cpu time               (seconds, -t) unlimited
max user processes              (-u) 1024
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

답변:


25

bash 초기화 파일에서 하드 한계 설정을 확인하십시오. 로부터 bash는 남자 페이지 .

하드 한계는 일단 설정되면 증가시킬 수 없습니다. 소프트 한계는 하드 한계의 값까지 증가 될 수있다.

하드 한계는 ulimit -H 플래그를 통해 설정됩니다. / etc / bash * 또는 / etc / profile * 파일에서 설정 될 수 있습니다. ulimit -Hc 설정을 찾으십시오.


man ulimit : -H 또는 -S를 지정하지 않으면 소프트 한계와 하드 한계가 모두 설정 됩니다. 따라서 -H 또는 -S를 찾는다고해서 반드시 올바른 해결책을 찾지 못할 수도 있습니다. ulimit를 grep 한 다음 -H 또는 -S 또는 암시 적으로 설정되었는지 확인하십시오. 물론 이것은 10 년 후의 행동이나 매뉴얼 페이지가 원래의 질문 / 답변 이후에 업데이트되었을 수 있습니다.
Jim

1

dropbearSSH 서버로 사용할 때 이런 일이 발생했습니다 . 분명히 dropbear는 쉘을 만들기 전에 약간의 제한을 설정합니다.

OpenSSH로 전환하면 문제가 해결되었습니다.


과연. main () 시작 부분에 disallow_core ()가 호출되어 setrlimit (2)가 호출됩니다. 물론 보안상의 이유로 더 좋은 방법이 있어야합니다. github.com/mkj/dropbear/blob/master/svr-main.c
Sundae
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.