Diferença entre usermod -L & passwd -l

1

De man passwd

-l, --lock
          This option is used to lock the password of specified account
          and it is available to root only. The locking is performed by rendering
          the encrypted password into an  invalid  string  (by
          prefixing  the  encrypted string with an !). Note that the
          account is not fully locked - the user can still log in by other means
          of authentication such as the ssh public key authentication.
          Use chage -E 0 user command instead for full account locking.

De man usermod

-L, --lock
       Lock a user's password. This puts a '!' in front of the
       encrypted password, effectively disabling the password. 
       You can't use this option with -p or -U.

Ambas as opções colocam um ! no início da senha no arquivo de sombra.

Por que o usermod não avisa sobre o bloqueio de outros tipos de autenticação, se for necessário fazer o mesmo?

Há mais alguma coisa para considerar ao bloquear uma conta entre essas duas opções?

    
por tachomi 07.03.2018 / 20:11

1 resposta

1

A página usermod man em man7.org e a do meu sistema Debian contêm um aviso para o mesmo efeito:

-L, --lock
Lock a user's password. ...
Note: if you wish to lock the account (not only access with a password), you should also set the EXPIRE_DATE to 1.

Se isso não diz que em algum sistema, bem, eu suponho que isso apenas mostra que nem toda a documentação pode ser perfeita. Pelo menos, o texto que você citou explicitamente menciona que ele bloqueia a "senha do usuário [em] .", Portanto, uma leitura atenta ainda pode indicar que há alguma limitação para isso.

Eu não acho que há muito mais a considerar, as duas ferramentas fazem a mesma coisa e tornam a senha (e somente a senha) inutilizável. Qualquer coisa que não use a senha ( su por um usuário privilegiado; sudo dependendo da configuração; cron ; chaves SSH ...) ainda fará seu trabalho como o usuário bloqueado por senha.

Como observado na página passwd man, a expiração da conta pode funcionar como um bloco mais amplo. Acho que a expiração é verificada pelos módulos de sessão do PAM, que geralmente são chamados mesmo que a autenticação não passe pelo PAM.

("Normalmente", porque qualquer programa privilegiado poderia apenas alterar o ID do usuário sem considerar a expiração da conta, se estivesse programado para isso. Mas pelo menos cron e sshd iniciarão uma sessão do PAM, e, assim, verificar a expiração.)

Em qualquer caso, se você iniciar o bloqueio de contas de usuário, talvez não seja uma má idéia testar se o bloqueio funciona conforme o esperado (com uma conta de teste). Só porque essa provavelmente seria uma daquelas situações em que você realmente não quer deixar buracos abertos.

    
por 07.03.2018 / 20:32