*와! / etc / shadow의 두 번째 필드에서?


20

내가 아는 한, / etc / shadow의 두 번째 필드는 사용자의 암호화 된 비밀번호입니다. 그러나 일부 사용자, 예를 들어 daemon사용자는 *현장에 있고 내 환경 (우분투 12.04) root!현장에 있습니다.

나는 가정 !"모든 암호,이 사용자로 로그인 할 수 없습니다 유효하지 않습니다."와 같은 의미. 그러나 나는 그 문서를 찾을 수 없었다.

무슨 의미인가 *!그림자 파일에?

답변:


23

'!' 그리고 '!!' 기본적으로 같은 것을 의미하지만 다른 도구는 하나 passwd -l의 느낌표를 사용합니다. usermod -L반면에 하나만 사용합니다.

일반적으로 '*'가있는 계정에는 비밀번호가 없었습니다 (로그인 할 때 항상 비활성화 된 것처럼). 이것은 비밀번호 해시 항목이 전혀없는 계정과는 다르며,이 경우 거의 항상 BAD 인 비밀번호가 필요하지 않으며 종종 프롬프트가 표시되지 않습니다!.

유효하지 않은 해시 ( '*', '!'및 '!!'모두) 인 경우 계정을 효과적으로 잠그고 해당 계정에 로그인 할 수 없습니다. 이것은 종종 / etc / passwd 파일에서 계정의 쉘을 / bin / false 또는 / sbin / nologin과 같은 것으로 설정하여 진행됩니다.

이전에 유효한 암호를 설정 한 후 사용자 계정이 잠기면 암호 해시에 느낌표가 붙습니다. 계정 잠금이 해제되면 암호가 다시 작동하기 시작하는 경우가 종종 있습니다.


자세한 설명 주셔서 감사합니다. 이것은 매우 도움이됩니다!
ironsand

2
문제 없어요. 내가 언급 한 것을 잊어 버린 한 가지 방법은 passwd로 계정을 잠그고 usermod로 잠금을 해제하는 것을 조심하는 것입니다. 작동하지 않는 첫 번째 '!'만 제거합니다.
Sirex

2
답은 100 % 정확하지 않습니다. 내 경험 *에 따르면 해당 열에 별표가 있으면 공개 키 인증을 사용하여 여전히 완벽하게 로그인 할 수 있습니다. 반면 !실제로는 해당 사용자의 모든 로그인을 차단합니다.
Michael Härtl

2
이는 sshd 구성 파일의 "usepam"설정에 따라 다릅니다. arlimus.github.io/articles/usepam
Sirex
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.