포트 <1024의 컴퓨터와 데이터를 교환하고 있고 컴퓨터가 유닉스 변형을 실행하고 있다고 가정합니다. 그런 다음 해당 포트에서 실행되는 서비스가 시스템 관리자에 의해 승인되었음을 알 수 있습니다.이 서비스는 루트로 실행 중이거나 최소한 루트로 시작해야합니다.
인터넷의 넓고 거친 세상에서 이것은 중요하지 않습니다. 대부분의 서버는 서버에서 실행되는 서비스와 동일한 사람이 관리합니다. 다른 사용자보다 뿌리를 더 신뢰하지 않습니다.
다중 로컬 컴퓨터, 특히 로컬 네트워크의 경우이 문제가 중요합니다. 예를 들어, 민간 암호화하기 전에 일, 다른 컴퓨터에 쉘 명령을 실행하는 인기있는 방법이었다 rsh
( R의 감정 표현의 쉬 엘); 비밀번호 인증을 사용하거나 머신 A에서 사용자 X임을 증명하여 인증 할 수 있습니다 (머신 B는 X @ A가 비밀번호없이 X @ B로 로그인 할 수 있음을 알고 있음). 그것을 증명하는 방법? rsh
클라이언트는이 setuid 루트이며, 포트 번호 <1024 사용하기 때문에 서버는가 이야기하고 클라이언트가 신뢰할 수 있음을 알고 그것을 A의 어떤 사용자를 호출하는로서 거짓말을하지 않습니다. 마찬가지로 NFS 사용자와 권한과 관련하여 투명하게 설계되었으므로 일반적인 구성은 로컬 네트워크에서 모든 시스템이 동일한 사용자 데이터베이스를 사용하고 서버 B의 A 마운트 파일 시스템에있는 사용자 N이 B에있는 사용자 N의 권한을 얻는 것입니다. 다시, NFS 클라이언트가 포트 번호 <1024에서 온다는 사실은 A의 루트가 NFS 클라이언트를 검사했음을 증명합니다. 이는 사용자가 N이라는 요청을 전송하면 해당 요청이 실제로 사용자 N으로부터
권한이없는 사용자가 낮은 포트에서 서버를 실행할 수없는 것도 또 다른 이점이지만 주요한 것은 아닙니다. 옛날에는 스푸핑이 참신했고 스푸핑 서버를 실행하는 사용자는 어쨌든 경계 관리자에 의해 빠르게 쫓겨났습니다.