chmod +x와 sudoing 실행 파일의 차이점

chmod +x와 sudoing 실행 파일의 차이점

사용자는 실행 파일을 소유자로 실행하거나 실행 비트 chmod u+x(또는 chmod여야 함)를 설정하여 sudoing을 통해 실행 파일을 실행할 수 있습니다.+x? ).

그렇다면 소유자가 아닌 다른 사람이 실행 파일을 실행할 수 있도록 허용하는 것과 동일한 효과가 있다면 둘 사이의 실제 차이점은 무엇입니까?

답변1

파일을 실행하기 위해 구체적으로 chmod o+x권한 other(즉, 이름이 없거나 user이름이 지정된 사용자가 아닌 사용자)을 요청한다는 뜻인 것 같습니다 . 3개( , 및 ) 모두에 대한 실행 권한을 열기 때문에 상위 집합입니다 .groupchmod a+xchmod o+xusergroupother

차이점은 프로그램이 실행되는 컨텍스트에 있습니다. 프로그램은 sudo지정된 사용자의 컨텍스트에서 실행되며 sudo현재 사용자의 컨텍스트에서는 프로그램이 실행되지 않습니다. 일부 스크립트의 경우 이는 전혀 중요하지 않을 수 있지만 사용자 권한과 관련된 모든 경우에는 중요합니다. 사용자의 홈 디렉터리에 있는 모든 파일을 삭제하는 가상의 악성 스크립트를 사용하여 이를 설명하는 것이 도움이 될 수 있습니다.

사용자가 alice이를 실행 하면 sudo -u bob deleteHomeFiles.shbob의 홈 디렉터리에 있는 모든 파일이 삭제됩니다. 반면에 직접 alice실행 하면 deleteHomeFiles.shAlice의 홈 디렉터리에 있는 파일이 삭제됩니다.

답변2

다소 큰 차이점 중 하나는 프로그램을 직접 실행하면 사용자 ID의 권한으로 실행되지만 에서는 sudo다른 사람의 사용자 ID와 해당 권한을 사용한다는 것입니다.

/bin/ls누구나 실행할 수 있고 /root사용자 자신만 읽을 수 있는 일반적으로 사용되는 시스템을 생각해 보세요 root.

$ /bin/ls /root/test
/bin/ls: cannot access '/root/test': Permission denied

하지만

$ sudo /bin/ls /root/test
hello.txt

또는 .idsudo id

사용자 ID는 파일 액세스뿐만 아니라 프로세스에 신호를 보내는 것, 물론 root일반 사용자가 수행할 수 없는 기타 많은 관리 작업을 수행하는 데에도 중요합니다.

물론 sudo기본적으로는 루트로 프로그램을 실행하지만, 루트 권한을 사용하더라도 원칙적으로는 차이가 납니다 sudo -u johnnie.

관련 정보