REXEC(3)

명칭
rexec - 리모트 명령에 스트림을 되돌린다

프로그램 라이브러리
libcompat

서식
int rexec(char **ahost, int inport, char *user, char *passwd, char *cmd, int *fd2p)

해설
이 인터페이스는, krcmd(3) (으)로 옮겨졌습니다.

rexec() 함수는 gethostbyname(3) (을)를 사용해 호스트 *ahost (을)를 검색해, 호스트가 존재하지 않는 경우는 -1 을 되돌립니다. 호스트가 존재하는 장소 합은, 호스트의 표준명에 *ahost (을)를 설정합니다. 유저명과 패스워드의 양쪽 모두가 지정되어 있는 경우는, 이 정 보를 사용해 외부 호스트에 인증합니다. 유저명과 패스워드가 지정되어 있고 경우는, 홈 디렉토리의 환경과 유저의 .netrc 파일을 검색해 적절한 정보를 특정합니다. 이 모든 것이 에러가 된 장소 합은, 정보를 입력하도록(듯이) 유저에게 요구합니다.

포트 inport (은)는, 접속에 사용하는, 기존의 DARPA 인터넷 포트를 지정합니다. getservbyname(exec, tcp) (을)를 호출하면(자) ( getservent(3) 참조), 필요한 포트를 포함한 구조체의 포인터가 되돌려집니다. 접속의 프로토콜에 대해서는, rexecd(8) (을)를 참조해 주세요.

문제 없게 접속되면(자), SOCK_STREAM 타입의 인터넷 도메인의 소켓이 호출해 측에 되돌려져 stdin (와)과 stdout (으)로서 리모트 명령로 지정됩니다. fd2p 하지만 0 이외인 경우는, 제어 프로세스의 보조 채널이 설정되어 그 기술자가 *fd2p 에 배치됩니다. 제어 프로세스는, 이 채널의 명령 (유니트 2)인가 들 진단 출력을 되돌려, 이 채널의 바이트를 UNIX 시그널 번호로서 받아들여 명령의 프로세스 그룹에 전송 합니다. 되돌려진다 진단 정보에는, 인증이 확인되고 나서 제 2 접속이 설정되므로, 리모트 인증 에러가 포함되지 않습니다. fd2p 하지만 0 인 경우는, stderr (리모트 명령의 유니트 2)(이)가 stdout (와)과 같이 작성됩니다. 밴드외 데이터를 사용해 주목을 끌 수 있습니다만, 리모트 프로세스에 임의의 시그널을 송신할 준비는 행해지지 않습니다.

관련 항목
rcmd(3), rexecd(8)

역사
rexec() 함수는 4.2BSD 에 추가되었습니다.

버그
rexec() 함수는, 암호화되어 있지 않은 패스워드를 네트워크로 송신합니다.

기초가 되는 서비스는, 보안의 큰 문제가 있으면(자) 간주해져 째, 많은 사이트에서는 유효하게 되어 있지 않습니다. rexecd(8) (을)를 참조해 주세요.