스크립트를 "sudo"로 실행할 때 SUID를 설정해야 합니까?

스크립트를 "sudo"로 실행할 때 SUID를 설정해야 합니까?

나는해야한다스크립트를 다음과 같이 실행하십시오.root. 링크에 제공된 지침에 따르면 다음을 수행해야 합니다.

  • 스크립트(예: chmod 4755)에서 SETUID 비트를 설정합니다.
  • sudo /path/to/thescript.shsudo(예: ) 로 스크립트를 실행합니다.

SETUID 비트에 대해 읽고 있는 문서에 따르면 이를 설정하면 스크립트를 실행하는 사람은 누구나 소유자의 권한을 얻게 됩니다. 따라서 스크립트의 소유자가 이면 rootSETUID 비트가 설정된 스크립트를 실행하는 사람은 누구나 루트 권한으로 스크립트를 실행하게 됩니다.

sudo그렇다면 SETUID 비트가 설정된 경우 스크립트를 실행하기 전에 왜 작업을 수행해야 합니까?

sudo스크립트를 실행하는 데 사용해야 하는 경우 SETUID 비트를 설정해야 하는 이유는 무엇입니까? 실험처럼 방금 스크립트를 사용하여 실행했는데 sudo필요한 작업을 수행할 수 있었습니다(스크립트는 여러 파일에 대한 권한을 반복적으로 변경함).

답변1

글쎄요, 짧은 대답은 SETUID root절대 스크립트를 설정하지 마세요. 실제로는 작동하지 않는 것 같습니다.

긴 답변: 항상, 항상, 항상, 스크립트 SETUID root, 항상!

너무 어지러워서 지금은 여기서 멈추겠습니다.

그 사람이 말했어이 접근 방식은 심각한 보안 취약점을 초래할 수 있습니다!오, 오! 그럼 왜 그런 대답을 했나요?

특정 작업을 수행할 수 있는 바이너리 만 SETUID root신뢰하며, 그때에도 매우 조심하세요!

즉, 무엇을 달성하려고 합니까?

일반 사용자가 권한을 가지고 스크립트를 실행할 수 있도록 하려면 root스크립트가 모든 사람에 대해 읽기 전용인지 확인 하고 사용자가 해당 스크립트만 실행할 수 있도록 root파일에 항목을 추가하십시오 ./etc/sudoers

자세한 내용은 을 참조하세요 man sudoers.

사용자가 속한 그룹의 이름과 스크립트의 전체 경로가 있으면 /etc/sudoers규칙을 작성해 드릴 수 있습니다.

관련 정보