passwd -d를 사용하는 이유/언제?

passwd -d를 사용하는 이유/언제?

man passwd이용 가능한 정보 에 따르면 :

-d, --delete
 Delete a user's password (make it empty).
 This is a quick way to disable a password for an account.
 It will set the named account passwordless.

실험 목적으로 테스트 사용자를 생성한 후 sudo adduser testuser다음 명령을 실행했습니다.

  • sudo passwd -d testuser

su - testuser예상대로 비밀번호를 요청하지 않고도 작동합니다 .

그러한 방법이 존재한다면 적어도 그것을 구현해야 할 이유가 있는지 궁금합니다. 그래서

질문

  • 왜/언제 사용합니까 passwd -d?

답변1

다음 세 가지 방법으로 계정을 "비밀번호 없이" 만들 수 있습니다.

  • /etc/passwd 또는 /etc/shadow에 빈(0 크기) 해시 비밀번호가 있을 수 있습니다. 이 경우 다른 금지 사항이 없으면 로그인 이름을 입력한 후 비밀번호 프롬프트가 나타나지 않습니다. (이것이 passwd -d하는 일입니다)
  • 잘못된 해시 비밀번호(예: *또는 !)가 있을 수 있으며, 이 경우 비밀번호가 작동하지 않고 비밀번호 프롬프트가 표시됩니다. 로그인 프롬프트는 유효하지 않은 로그인에 대해서도 유사하게 작동합니다. (마찬가지로 passwd -l, 앞에 하나를 추가하면 해시를 삭제하지 않고 실제로 !무효화됩니다.)
  • 해시 비밀번호는 빈 비밀번호의 해시 값으로 설정할 수 있습니다. 이 경우 비밀번호를 묻는 메시지가 표시되지만 프롬프트에 아무 것도 입력하지 않고 Enter 키를 눌러야 로그인이 허용됩니다. (말 그대로 0 크기의 빈 비밀번호가 유효합니다.)

두 번째 시나리오(유효한 비밀번호 없음)는 로그인할 의도가 없는 계정에 일반적입니다.

다른 두 가지 경우는 거의(항상 그런 것은 아님) 유용하지 않으며 어떤 경우에는 위험할 수 있습니다(예: 보안 허점). SSH와 같은 네트워크 액세스 프로그램은 이 상태에서 계정 로그인을 명시적으로 허용하지 않도록 선택할 수 있지만 로컬 로그인(예: su)은 여전히 ​​가능합니다.

안전하지 않은 한 가지 가능한 용도는 nologin쉘이 있는 계정입니다.

관련 정보