~에서https://stackoverflow.com/a/17483998/156458
제한을 65535로 높이려면 루트가 필요하지만 루트로 프로그램을 실행하고 싶지는 않을 것입니다. 따라서 제한을 늘린 후에는 현재 사용자로 다시 전환해야 합니다.
이렇게 하려면 다음을 실행하세요.
sudo sh -c "ulimit -n 65535 && exec su $LOGNAME"
~에서다음 방법으로 코어 파일 제한 크기가 변경되지 않는 이유는 무엇입니까?, 다음을 수행하고 싶습니다.
sudo가 실행하는 쉘에 새로운 제한 값을 사용하여 명령을 넣어야 할까요?
예를 들어
$ sudo sh -c "ulimit -c 1024 && sleep 100" ^\Quit $ ls core
ulimit -c 1024
슈퍼유저 권한이 필요하며 sleep 100
필수는 아닙니다.
sleep 100
슈퍼유저 권한이 아닌 변경된 제한 값으로 명령이 실행되도록 명령을 변경하려면 어떻게 해야 합니까 ?
고쳐 쓰다:
나는 Hauke의 재생에서 명령을 시도했는데, 실패한 이유가 Linux에서 작동하지 않았기 때문이라고 의심 하고 여전히 그의 의도가 무엇을 사용하고 있는지 sudo -c
궁금했습니다 .sudo -c
$ sudo sh -c "ulimit -c 1024 && sudo -u nobody -c \"sleep 100\""
[sudo] password for t:
usage: sudo -h | -K | -k | -V
usage: sudo -v [-AknS] [-g group] [-h host] [-p prompt] [-u user]
usage: sudo -l [-AknS] [-g group] [-h host] [-p prompt] [-U user] [-u user] [command]
usage: sudo [-AbEHknPS] [-r role] [-t type] [-C num] [-g group] [-h host] [-p prompt] [-T timeout] [-u user] [VAR=value] [-i|-s] [<command>]
usage: sudo -e [-AknS] [-r role] [-t type] [-C num] [-g group] [-h host] [-p prompt] [-T timeout] [-u user] file ...
다음 두 명령을 시도했지만 sleep 100
. 왜?
$ sudo bash -c "ulimit -c 1024 && exec su $LOGNAME && sleep 100"
$ sudo bash -c "ulimit -c 1024 && exec bash -c \"su $LOGNAME; sleep 100\" "
$
다음 명령은 코어 파일을 생성합니다. 하지만 sudo
두 번째는 기본적으로 한도를 지우지 않나요? sudo
실행 환경을 항상 또는 항상 청소 한다고 들었습니다 .
$ ulimit -c
0
$ sudo sh -c "ulimit -c 1024 && sudo -u nobody sleep 100"
내가 찾은http://jdebp.eu./Softwares/nosh/guide/ulimit.html~에서https://unix.stackexchange.com/a/446619/674, 그리고쉘 스크립트를 사용하여 비슷한 것을 달성하는 방법이 궁금합니다.:
대부분의 셸에는 연결되지 않고 추가 대화형 기능이 있는 ulimit 명령이 내장되어 있습니다. 내장 명령에 대해서는 각 셸의 설명서를 참조하세요. 이 명령은 exec(1) 및 nosh(1)과 함께 더 일반적으로 사용됩니다.
감사해요.
답변1
sudo sh -c "ulimit -c 1024 && sudo -u nobody -c \"sleep 100\""