setuid
제가 배운 모든 내용에서 파일에 대한 실행 권한이 있는 사람은 누구나 해당 파일을 소유자로 실행할 수 있다는 말을 들었습니다 . 그러나 바이너리를 설정하고 간단한 사용자로 실행할 수는 없는 것 같습니다. 내가 시도한 것은 다음과 같습니다.
root@pc# chmod u+s,o+x /usr/bin/apt
root@pc# su - zero
zero@pc$ apt update
[sudo] password for zero:
Sorry, user zero is not allowed to execute '/usr/bin/apt update' as root on pc.
기본적으로 그것은 매력적으로 작동 /usr/bin/passwd
하지만 Linux에서는 다른 바이너리에 설정할 수 없는 것 같습니다. 내가 뭘 잘못했나요?
답변1
apt
별칭에 의해 "걸렸을" 수 있음을 나타내는 메시지가 표시됩니다 .sudo
절대 경로를 사용하면 /usr/bin/apt
이를 방지하고 수정된 속성이 있는 실제 바이너리를 사용하고 있는지 확인할 수 있습니다.