/etc/shadow의 *LK*와 /etc/passwd의 /usr/sbin/nologon의 차이점

/etc/shadow의 *LK*와 /etc/passwd의 /usr/sbin/nologon의 차이점

*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와 같은 것이 개인 웹 페이지 등을 업로드할 수 있습니다.

관련 정보