Разница между ! vs !! vs * в / etc / shadow

Второе поле в /etc/shadow Linux /etc/shadow представляет собой пароль. Однако мы видели, что:

  1. В некоторых полях пароля может быть один восклицательный знак

     <account>:!:..... 
  2. Некоторые поля пароля могут иметь двойное восклицание

     <account>:!!:..... 
  3. Некоторые поля пароля могут иметь знак звездочки

     <account>:*:..... 

По некоторым исследованиям в Интернете и через эту тему я могу понять, что * означает, что пароль никогда не был установлен ! означает заблокирован.

Может кто-то, пожалуйста, поможет понять, что означает двойной восклицательный знак ( !! )? и чем он отличается от ( ! )?

И то и другое "!" а также "!!" Присутствие в поле пароля означает, что учетная запись заблокирована.

Как можно прочитать в следующем документе: «!!» в записи учетной записи в тени означает, что учетная запись пользователя создана, но еще не указана пароль. До тех пор, пока не будет задан начальный пароль системным администратором, он по умолчанию заблокирован.

https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/4/html/System_Administration_Guide/s2-redhat-config-users-process.html

Также может быть стоит отметить <account>::..... означает, что пароль не требуется (пустой пароль).

Если вы создаете пользователя ssh-only, вы можете использовать <account>::0:0:99999:7::: чтобы потребовать, чтобы пользователь установил свой пароль (то есть, что они используют для sudo) при первом входе в систему.