RLIMIT_NICE가 유용합니까?

RLIMIT_NICE가 유용합니까?

나는 사용하고있다prlimitUbuntu의 샌드박스에 리소스 제한을 두는 것이 매우 도움이 되었습니다. 그러나 무엇을 해야할지 잘 모르겠습니다 RLIMIT_NICE. 문서에는 다음과 같이 나와 있습니다.

RLIMIT_NICE(Linux 2.6.12부터, 아래 버그 참조) setpriority(2) 또는 Nice(2)를 사용하여 프로세스의 Nice 값을 늘릴 수 있는 상한을 지정합니다.

그러나 따르면우선순위 얻기(2), 슈퍼유저가 처음 소유한 프로세스만 좋은 가치를 높일 수 있습니다. 그러나 이 경우 권한이 있는 사용자가 임의로 값을 낮추거나 높일 수 있으므로 이 RLIMIT_NICE값은 많은 기능을 추가하지 않습니다 .RLIMIT

그래서 나는 그것을 사용하거나 설명하는 방법을 이해하지 못합니다 RLIMIT_NICE. 권한이 없는 사용자에게는 우선 순위를 높일 수 없고 현재 우선 순위보다 낮게 설정할 필요가 없기 때문에 모든 것이 쓸모없어 보입니다. 그러나 고급 사용자의 경우 소프트 및 하드 제한을 임의로 높일 수 있으므로 실제로 아무것도 추가되지 않습니다 nice.RLIMIT_NICE

그렇다면 그 뒤에 숨겨진 아이디어는 무엇입니까 RLIMIT_NICE?

답변1

실제로 RLIMIT_NICE이를 통해 루트가 소유한 프로세스만 좋은 가치를 높일 수 있다는 기본 규칙을 우회할 수 있습니다.

데모:

# ulimit -e 30
# su nobody
$ nice -n -10 top

top프로세스가 제대로 실행되는 것을 볼 수 있습니다 -10.

이제 시도해 보면 잘 nice -n -11 top작동할 것입니다 . 0왜냐하면 .-11RLIMIT_NICE=30

공식은 맨페이지에 나와 있습니다. 허용되는 최대 친절도는 입니다 20-rlimit. 그래서:

  • 0이는 "호감도를 20까지 높일 수 있다"는 의미이며, 쓸모없다는 뜻이기도 합니다.
  • 20이는 "멋짐을 0으로 높일 수 있다"는 의미이며, 우선순위를 낮추면 다시 0으로 돌아갈 수 있습니다.
  • 40"최대 의 프로세스를 시작할 수 있습니다 nice -n -20.

관련 정보