이는 Ubuntu Online, Fedora Online, Windows 온라인 에뮬레이터 또는 MAC OS 온라인 에뮬레이터와 같은 여러 무료 온라인 워크스테이션 중 하나를 사용하여 OnWorks 무료 호스팅 공급자에서 실행할 수 있는 authbind 명령입니다.
프로그램:
이름
authbind - 루트 없이 권한 있는 포트에 소켓 바인딩
개요
인증 [옵션] 프로그램 [논의 ...]
기술
인증 루트로 실행되지 않거나 실행되어서는 안 되는 프로그램이 낮은 번호의
통제된 방식으로 포트.
다음을 사용하여 프로그램을 호출해야 합니다. 인증. 인증 어떤 환경을 설정합니다
다음을 포함한 변수 LD_PRELOAD, 프로그램을 허용합니다(모든
실행할 수 있는 하위 프로세스) 시스템이 구성된 경우 번호가 낮은(<512) 포트에 바인딩
이것을 허용합니다.
옵션
--깊은 일반적으로, 인증 직접 호출하는 프로그램만
특별 버전의 영향을 받음 바인딩(2). 지정하는 경우 --깊은 그럼 모두
해당 프로그램이 직접 또는 간접적으로 호출하는 프로그램이 영향을 받게 되므로
그들이 설정한 환경 변수를 해제하지 않는 한 인증.
--깊이 레벨
활동 인증 프로그램에 영향을 미치기 위해 레벨 호출 그래프의 깊은 곳. 그만큼
기본값은 --깊이 1.
ACCESS 통제
번호가 낮은 포트에 대한 액세스는 파일의 권한 및 내용에 의해 제어됩니다.
구성 영역, /etc/authbind.
첫째, /etc/authbind/byport/포트 테스트됩니다. 실행을 위해 이 파일에 액세스할 수 있는 경우
에 따라 호출 사용자 ACCESS(2) 그러면 포트에 대한 바인딩이 승인됩니다. 만약
파일이 존재하지 않는 것을 볼 수 있습니다(존재 확인 결과 반환 에노엔트) 추가 테스트는
승인을 찾는 데 사용됩니다. 그렇지 않으면 바인딩이 승인되지 않으며 바인딩 전화
와 함께 돌아올 것이다 에르 노 값 ACCESS(2) 일반적으로 전화 EACCES (허가
부정한).
둘째, 그 테스트가 문제를 해결하지 못하는 경우, /etc/authbind/byaddr/요지,포트 (어떤
프로토콜) 또는 실패 /etc/authbind/byaddr/요지:포트 (IPv4 전용)은
위와 같은 방식. 여기 요지 에서와 같다 inet_ntop및 포트 (로컬) TCP 또는 UDP
XNUMX이 아닌 최소 자릿수의 부호 없는 정수로 표현되는 포트 번호.
셋째, IPv6 전용: inet_ntop 에 복잡하다
예측, 변형 요지 이중 콜론을 사용하지 않는 테스트도
약어: 16이 아닌 최소 XNUMX진수 숫자로 표현된 각 XNUMX바이트 청크
(예: 선행 XNUMX이 제거됨) 청크는 그대로 콜론으로 구분됩니다.
전통적인.
넷째, 질문이 여전히 해결되지 않은 경우 파일 /etc/authbind/byuid/UID 될거야
열고 읽었습니다. 파일이 없으면 바인딩이 승인되지 않고 바인딩
돌아올거야. EPERM (조작 지원 허용및 아니 소유자). 파일이 존재하는 경우
다음 형식의 줄을 검색합니다.
주소[-addrmax],포트민[-포트맥스]
요지[/길이],포트민[-포트맥스]
주소4/길이:포트민,포트맥스
요청 일치. 첫 번째 양식은 주소가 관련 범위에 있어야 합니다.
(양끝 포함). 두 번째 및 세 번째 형식은 초기 길이 비트
of 요지 제안된 것과 일치 바인딩 부르다. 세 번째 형식은 IPv4에서만 사용할 수 있습니다.
IPv6 주소에는 콜론이 포함되어 있기 때문입니다. byuid 파일의 주소는 어떤 형식이든 될 수 있습니다.
inet_pton에 허용됩니다. 모든 경우에 제안된 포트 번호는 반드시 있어야 합니다.
포함 범위가 지정되었습니다. 그러한 라인이 발견되면 바인딩이 승인된 것입니다.
그렇지 않으면 그렇지 않으며, 바인딩 실패할 것이다 에노엔트 (아니 이러한 파일 or 예배 규칙서).
읽기 오류가 발생하거나 디렉토리가 /etc/authbind 액세스할 수 없을 뿐만 아니라
의지 바인딩 실패하지만 오류 메시지가 stderr에 인쇄됩니다. 인식할 수 없는 라인
/etc/authbind/byuid/UID 파일은 자동으로 무시됩니다. 요지 XNUMX이 아닌
비트 이상 길이 상단에서 또는 일부 분 보다 큼 최대.
예
예를 들어 uid 432가 주소의 포트 80에 바인딩하려는 시도
[2620:106:e002:f00f::21] authbind 호출이 발생합니다. ACCESS(2) 에, 순서대로,
/etc/authbind/byport/80
/etc/authbind/byaddr/2620:106:e002:f00f::21,80
/etc/authbind/byaddr/2620:106:e002:f00f:0:0:0:21,80
이러한 파일이 없으면 authbind는 다음을 읽습니다.
/etc/authbind/byuid/432
관련 액세스를 허용하는 회선을 검색합니다. 그렇게 할 줄의 예
위치 :
2620:106:e002:f00f::21,80
::/0,80
PORTS 512-1023
512에서 1023까지의 포트에 대한 바인딩 권한 부여는 권장되지 않습니다. 일부
프로토콜(일부 NFS 버전 포함)은 클라이언트가 사용하고 있음을 확인하여 클라이언트에 권한을 부여합니다.
이 범위의 포트 번호. 따라서 그러한 포트에 대한 서버가 되도록 프로그램에 권한을 부여함으로써
또한 해당 프로토콜에 대해 전체 호스트를 가장하도록 권한을 부여합니다.
이 작업이 실수로 수행되지 않도록 하려면 요청된 포트 번호가
범위 512-1023, authbind는 권한 파일에 추가 ! 에
잎 이름의 시작.
MECHANISM
다음을 사용하여 로드된 공유 라이브러리 LD_PRELOAD 재정의 바인딩(2) 시스템 호출. 때
프로그램을 통해 호출 인증 통화 바인딩 소켓을 낮은 번호의 TCP/IP 포트에 바인딩하려면,
프로그램에 유효 uid 0이 아직 없는 경우 버전 바인딩
에 의해 가정 인증 setuid-root 도우미 프로그램을 포크하고 실행합니다. 비 TCP/IP의 경우
소켓, 높은 번호의 포트 또는 이미 루트인 프로그램, 인증 전화를 전달
원래의 바인딩(2) 다음을 사용하여 찾은 시스템 호출 dlsym(3) 핸들
RTLD_다음.
ERROR 손질
일반적으로 일반적인 C 오류 처리 메커니즘이 적용됩니다. 만약에 인증 프로그램을 찾을 수 없습니다
실행을 요청하면 stderr에 메시지를 인쇄하고 코드 255로 종료합니다.
도우미 프로그램은 일반적으로 종료 상태와 함께 공유 라이브러리에 다시 보고합니다.
포함 에르 노 여부를 인코딩하는 값 바인딩 허용되고 성공했습니다.
이는 일반적인 방법으로 호출 프로그램에 반환됩니다.
명백한 구성 또는 기타 심각한 오류의 경우 라이브러리 및/또는
헬퍼 프로그램은 메시지가 프로그램의 stderr에 인쇄되도록 할 수 있습니다.
에서 -1 반환 바인딩.
onworks.net 서비스를 사용하여 온라인에서 authbind 사용