usermod question sobre a opção e

0

depois de ler as man pages, não consigo encontrar uma explicação do que isso faz (a opção tack e)

usermod -L -e 1 nome de usuário

-e 1

isso significa um dia após a época do linux, 1º de janeiro de 1970? Como alguém saberia disso, já que não está documentado em lugar algum?

    
por Oscalation 25.01.2016 / 22:51

2 respostas

1

Você está certo. Seu valor é em dias.

Na página do manual usermod(8) :

-e, --expiredate EXPIRE_DATE

The date on which the user account will be disabled. The date is specified in the format YYYY-MM-DD.

Mas há mais informações na página do manual shadow(5) :

account expiration date

The date of expiration of the account, expressed as the number of days since Jan 1, 1970.

Note that an account expiration differs from a password expiration. In case of an acount expiration, the user shall not be allowed to login. In case of a password expiration, the user is not allowed to login using her password.

An empty field means that the account will never expire.

The value 0 should not be used as it is interpreted as either an account with no expiration, or as an expiration on Jan 1, 1970.

Você pode confirmar essa leitura o código-fonte usermod.c :

        case 'e':
            if ('
        case 'e':
            if ('%pre%' != *optarg) {
                user_newexpire = strtoday (optarg);
' != *optarg) { user_newexpire = strtoday (optarg);
    
por 25.01.2016 / 23:58
0

Parece que seu palpite está correto.

Para verificar isso, você precisa ler o código-fonte:

  • Na minha máquina Debian, dlocate diz que usermod é parte do pacote passwd .
  • o arquivo README nesse pacote diz que o repositório SVN pode ser navegado no link
  • nesse repositório, src / usermod.c chama strtoday para processar o valor da opção para -e e
  • strtoday está em libmisc / strtoday.c , com este comentário:
    /* If a numerical value is provided, this is already a number of
     * days since EPOCH.
     */
    
por 25.01.2016 / 23:51