*LK*
set in /etc/shadow
과 set in /usr/sbin/nologon
의 실질적인 차이점은 무엇인가요 /etc/passwd
?
우리는 언제 다른 것보다 하나를 선택합니까? 언제 결합합니까?
답변1
*LK*
차단되는 비밀번호 해시 필드 와 같이 유효한 비밀번호 해시가 아닌 값을 설정하면/etc/shadow
모든 형태의 비밀번호 확인, 그러나 사용자가 다른 인증 메커니즘(예: 지문 또는 SSH 키)을 구성하는 경우그들은 여전히 일할 것입니다.
이 중 특수한 경우로 passwd -l <username>
기존 해시에 느낌표 접두사가 추가되므로 undo 사용이 쉽습니다 passwd -u <username>
. *LK*
예를 들어, 계정이 특별한 권한이 없고 연결되지 않은 컨텍스트에서 일부 시스템 서비스를 실행하는 데 사용되기 때문에 사용자 계정이 인증용이 아니라는 것을 나타내기 위해 다른 유효하지 않은 값이 사용될 수 있습니다. 특정 사용자.
인용하다 man 5 shadow
:
예를 들어, 비밀번호 필드에 crypt(3)의 유효한 결과가 아닌 일부 문자열이 포함되어 있는 경우! 또는 *를 사용하면 사용자는 unix 비밀번호를 사용하여 로그인할 수 없습니다(그러나 사용자는 다른 방법을 통해 시스템에 로그인할 수 있습니다).
마찬가지로 최신 배포판에서는 옵션(잠금 비밀번호)에 man passwd
다음 참고 사항이 포함됩니다.-l
이로 인해 계정이 비활성화되지는 않습니다. 사용자는 다른 인증 토큰(예: SSH 키)을 사용하여 계속 로그인할 수 있습니다. 계정을 비활성화하려면 관리자는 usermod --expiredate 1을 사용해야 합니다(이렇게 하면 계정 만료 날짜가 1970년 1월 2일로 설정됩니다).
(Aaron D. Marasco는 로그인 및 모든 형태의 인증을 비활성화할 것을 권장합니다.한때는 맞았어하지만 지난 10년 동안 의미 체계가 변경되어 비밀번호 인증을 비활성화하는 통일된 방법이 있지만 여전히 다른 형태의 인증에 계정을 사용할 수 있습니다. 이것은 과거에 많은 사람들을 오해하게 만들었습니다. 오래된 정보를 포함하는 많은 책과 기타 문서가 있습니다. )
사용자의 셸을 비대화형 셸로 설정하거나 /bin/false
비활성화 /usr/sbin/nologin
합니다 .쉘 액세스그러나 사용자 계정을 비밀번호 인증을 통해 다른 방법으로 사용할 수 있는 경우(예: IMAP 이메일 액세스 또는 FTP 파일 전송)아직도 작동할 수 있어.
간단히 말해서:
- 모든 형태의 인증이 로그인되거나 이전 시스템과 새 시스템에서 사용자 계정을 사용하는 것을 방지하려면 다음을 사용하십시오.
usermod -e 1 <username>
- 셸 액세스를 비활성화하고 다른 서비스를 허용하려면 사용자의 셸을
/usr/sbin/nologin
또는/bin/false
이와 유사한 비대화형 설정으로 설정하십시오. - 비밀번호 인증을 비활성화하고 다른 인증 방법이 작동하도록 하려면
passwd -l <username>
또는 다른 방법을 사용하여 비밀번호 해시를 잘못된 값으로 설정하세요. - 극단적인 편견으로 인해 이 사용자 계정이 의도적으로 비활성화되었음을 다른 시스템 관리자에게 알리려면 위의 사항을 모두 적용하십시오. :-)
답변2
첫 번째는 사용자가 로그인하는 것을 절대 허용하지 않습니다.확인하지 않음( *LK*
특별한 AFAIK는 아니며 단지 잘못된 비밀번호 해시일 뿐입니다). 이는 시스템이 보호된 웹 페이지와 같은 다른 항목에 대해 유효한 비밀번호를 갖도록 하려는 경우 .htaccess
작동하지 않음을 의미합니다.
두 번째는 유효한 사용자 및 비밀번호 조합을 허용하지만 로그인은 허용하지 않습니다. 이를 통해 SFTP와 같은 것이 개인 웹 페이지 등을 업로드할 수 있습니다.