다운로드: [attachment=0:30xz27ce]pam-local.tar.gz[/attachment:30xz27ce]
pam모듈이고, 컴파일 설치 방법은
[code:30xz27ce]
tar xvfz pam-local.tar.gz
cd pam-local-source
make install
[/code:30xz27ce]
자동으로 /etc/pam.d/sudo 와 su 파일을 편집해서,
[code:30xz27ce]
auth sufficient pam_local.so ingroup 1000
[/code:30xz27ce]
이런 코드를 삽입합니다.
파라미터는
uid 아이디숫자
ingroup 그룹숫자
uid 옵션은 적용할 아이디에 대해 암호없이 인증합니다.
ingroup 옵션은 적용할 그룹에 대해 암호없이 인증합니다.
기본적으로 설정되는 ingroup 1000은 설치시 만든 계정의 그룹번호에 대해 인증을 수락하게 됩니다.
uid/ingroup 옵션이 없을 경우, 선행처리를 건너뛰어 단지, 터미널에 대해 검사하여 인증을 수락하게 됩니다.
기본적으로 명령을 호출한 프로세스의 터미널을 검사하여, tty[1-9]와 연결된 경우에만 수락합니다.
pty와 연결된 경우에도, 부모프로세스를 추적하여, tty[1-9]와 연결된 경우에는 수락합니다.
즉, 데몬프로그램에서 tty[1-9]를 통하지 않거나, 소켓으로 연결된 (예를들어 ssh로 로그인한 경우) 거부합니다.
auth sufficent <모듈> 의 경우, 모듈에서 PAM_SUCCESS를 리턴한 경우, 바로 성공하므로,
account와 password, session등을 거치지 않고, 바로 인증을 수락하게 됩니다.
그리고 모듈에서 인증실패할 경우, 다음 줄을 처리하게 되어, 암호를 물어보게 됩니다.
** 비고 **
컴파일시, 자동으로 was_tty, ingroup 실행파일을 만들어 줍니다.
이것은 설치시 어디에도 설치되지 않지만, 필요하시면 복사해 사용하실 수 있습니다.
사용 방법은
was_tty [pid] && echo ok 해당 프로세스가 tty[1-9]와 연결되면 ok를 출력합니다.
ingroup gid [uid] && echo ok 해당 uid가 속한 그룹중에 gid가 있으면, ok를 출력합니다.