실행 파일과 사용자의 chmod
관계는 무엇입니까 ?sudo
"사용자가 실행 파일을 실행하려면 sudo가 필요합니다"의 경우는 "chmod가 아직 사용자에 대한 실행 모드 비트를 설정하지 않았습니다"의 경우와 동일합니까?
"사용자가 실행 파일을 실행하기 위해 sudo가 필요하지 않습니다"의 경우는 "chmod가 사용자에 대해 실행 모드 비트를 설정했습니다"의 경우와 동일합니까?
뿐만 아니라,
- 실행 파일의 경우
chmod
사용자에게 실행 권한이 설정되어 있지 않으면 사용자가sudo
실행 파일을 사용하거나 실행 해야 합니까su
? chmod
사용자에게 실행 권한이 설정된 경우 이는 사용자가sudo
또는 없이 실행 파일을 실행할 수 있다는 의미입니까su
?sudo
특정 사용자 만 실행할 수 있는 실행 파일을 만들려면 어떻게 해야 합니까su
?- 반대로, 사용자가
sudo
또는 를 사용하여 실행 파일만 실행할 수 있다면 해당 사용자에게 실행 파일에 대한 실행 권한이 설정되지 않았음su
을 의미합니까 ?chmod
답변1
먼저 용어입니다. chmod
파일 시스템에 있는 파일의 권한 비트를 변경할 수 있는 프로그램(및 시스템 호출)입니다. sudo
다른 자격 증명(보통 높은 권한, 가장 일반적으로 루트 사용자의 권한)을 사용하여 다른 프로그램을 실행할 수 있도록 하는 특수 프로그램입니다. su
유사하지만 구성 가능성이 낮습니다("not"이라고 읽음). sudo
그리고 가장 중요한 것은 사용자가 루트 비밀번호에 대한 지식을 기반으로 인증을 받아야 한다는 것입니다(보안 측면에서 매우 충격적입니다).
실행 가능 비트는 파일의 내용을 메모리에 로드하고 실행할 수 있는지 여부를 나타냅니다. (이것이 의미가 있는지는 말하지 않습니다. JPEG 이미지의 실행 가능 비트를 설정한 다음 실행할 때 실행할 수 있습니다.)
이제 질문에 답해 보겠습니다.
실행 파일이 로드되면 권한이 평가됩니다. 이 경우
su
이는 대상 사용자의sudo
유효 ID(사용자 및 그룹 - 권한 평가에 사용되는 자격 증명 - 매뉴얼 페이지 참조)에서 발생합니다.credentials(7)
따라서 대상 사용자에게 파일 실행이 허용되면 해당 파일이 실행됩니다.위에서 언급한 바와 같이, 유효 UID 또는 GID에 실행 가능 비트 세트가 있으면 실행 가능합니다. 그렇지 않으면 그렇지 않습니다.
일반적으로 말하면 그렇지 않습니다. 원하는 경우 특정 ID에 대해서만 실행 가능하도록 표시한 다음
sudo
특정 사용자가 파일에 대한 실행 권한이 있는 사용자 중 한 명의 자격 증명을 사용하여 바이너리를 실행할 수 있도록 구성을 준비할 수 있습니다.아니요. 일반적으로 사용자가 특별한 권한이 필요한 프로그램을 실행하지 못하도록 막는 것은 별 의미가 없습니다. 프로그램은 이러한 권한 부족을 (가능하다면 적절하게) 처리해야 합니다. 일부 프로그램에는 특별한 권한이 필요하지 않은 몇 가지 기능만 있지만 특별한 권한으로 실행될 때 더 많은 기능을 제공합니다. 예를 들어
route
권한이 없는 사용자는 이를 사용하여 커널 라우팅 테이블을 표시할 수 있으며 관리자는 변경할 수도 있습니다. 이러한 기능.
답변2
이것은 약간의 문제일 수 있지만 파일을 실행하려면 해당 파일에 대한 실행 권한이 있어야 합니다.
파일로 이동하는 모든 디렉토리. 따라서 Tom do_interesting_stuff
의 홈 디렉터리( )에 프로그램( )이 있고 /home/tom
해당 디렉터리는 보호되어 있지만(소유자 외에는 아무도 액세스할 수 없음) 파일은 보호되어(755)(모든 사람이 읽기 및 실행 권한을 갖고 있음)~하지 않을 것이다"스스로" 실행 하려면 /home/tom/do_interesting_stuff
루트(또는 "톰")이거나 sudo
파일 su
을 실행할 수 있어야 합니다.
물론 Tom의 홈 디렉터리( )에 있는 파일을 읽으려는 경우에도 마찬가지입니다. interesting_stuff.txt
해당 파일에 대한 읽기 액세스가 필요하기 때문입니다.
그리고디렉터리에 대한 권한을 실행합니다.