REXECD(8)

명칭
rexecd - 리모트 실행 서버

서식
rexecd [-i]

해설
rexecd 유틸리티는, rexec(3) routine를 위한 서버입니다. 본서버는, 유저명과 패스워드에 근거한 유저 인증에 의한, 리모트 프로세스 실행의 환경 (을)를 제공합니다.

rexecd 유틸리티는, services(5) 에서 ``exec''서비스가 정의된 포트를 감시합니다. 서비스 요구를 수신했을 때에, 이하의 프로토콜이 실행됩니다.

1.  서버는, 소켓으로부터 NUL (‘\0’) (을)를 수신할 때까지 캐릭터를 읽어냅니다. 수신한 캐릭터는 ASCII 캐릭터로부터 되는 10 진수의 숫자로서 평가됩니다.

2.  스텝 1 으로 수신한 번호가 0 이 아닌 경우, 그 번호는 stderr (을)를 위해서(때문에) 이용된다 스트림을 위한 포트 번호로서 이용됩니다. 그 후, 제2의 접속이 클라이언트 호스트상의 지정된 포트와의 사이에 생성됩니다.

3.  NUL 로 종료하는 최대 16 캐릭터의 유저명이 최초의 소켓보다 취득됩니다.

4.  NUL 로 종료하는, 암호화가 베풀어지지 않은 최대 16 캐릭터의 패스 워드가 최초의 socket 보다 취득됩니다.

5.  NUL 로 종료하는, 쉘에게 건네지는 명령이 최초의 socket 보다 취득 됩니다. 명령의 길이는, 시스템의 인수 리스트의 제한을 넘지 않는 길이에 제한됩니다.

6.  rexecd 유틸리티는, 다음에, 로그인시와 같게 유저의 인증을 실시해, 유저 인증이 성공했을 경우, 커런트 디렉토리를 해당 유저의 홈 디렉토리로 변경해, 유저와 그룹의 보호를 행합니다. 만일 이러한 단계가 실패했을 경우, connection를 절단 해, 진단 메세지를 돌려줍니다.

7.  NUL 캐릭터가 최초의 소켓에 반환되어 명령행은 해당 유저의 통상의 로그인 쉘에게 건네집니다. 쉘은 rexecd 에 의해 확립된 네트워크 connection를 계승합니다.

경고
rexecd 유틸리티는 root 의 로그인을 허가하지 않습니다. 다만 -i 옵션이 명령행 (전형적으로는 /etc/inetd.conf )(으)로 지정되었을 경우는 제외합니다. rexecd (은)는 또 /etc/ftpusers 에 리스트 된 유저에서의 액세스, 패스워드가 없는 유저의 액세스를 허가하지 않습니다. 이것들은 모두 중대한 보안 홀이었습니다. rexec/rexecd 의 컨셉은, 메이저인 보안 홀과 그것을 시키지 않는다 유익의 예입니다. rexecd 유틸리티는 /etc/inetd.conf 그럼 디폴트로 무효가 되어 있습니다.

진단
이하의 리스트의 제일 마지막 것을 제외해, 모든 진단 메세지는, 다른 네트워크 connection가 절단 된 후에, 최초의 socket 를 경유해 반환 됩니다. 에러는, 최초의 바이트가 값 1 인 것으로 나타납니다 (명령의 실행에 앞서는 모든 스텝이 정상적으로 종료했을 경우, 상기의 스텝 7 그리고, 값 0 이 돌려주어집니다).

username too long
    유저명이 16 캐릭터를 넘고 있습니다.

password too long
    패스워드가 16 캐릭터를 넘고 있고 있습니다.

command too long
    명령행의 길이가 (설정되어 있다) 시스템의 인수의 길이 제한을 넘고 있습니다.

Login incorrect.
    패스워드 파일의 엔트리에 해당 유저명이 없습니다.

Password incorrect.
    패스워드가 부정합니다.

remote directory.
    홈 디렉토리에의 chdir 명령이 실패했습니다.

Try again.
    서버에 의한다 fork(2) 하지만 실패했습니다.

<shellname>: ...
    유저의 로그인 쉘을 기동할 수 없었습니다. 이 메세지는 stderr (을)를 위해서(때문에) 확립된 connection를 이용해 송신됩니다. 그리고, 선두에 flag byte가 붙을 것은 없습니다.

관련 항목
rexec(3)

버그
모든 데이터와 패스워드를 교환하는 경우에, 그러한 암호화를 행하는 기구가 준비되어야 하는 것이지요.

역사
rexecd 유틸리티는 4.2BSD (으)로부터 등장했습니다.