オプションeに関するusermodの質問

オプションeに関するusermodの質問

マニュアルページを読んだ後、それが何をしているのか説明が見つかりません(追加オプション)。

usermod -L -e 1 ユーザー名

-e 1

これは、Linux時代の1970年1月1日以降を意味しますか?どこにも文書化されていませんが、どのようにこれを知ることができますか?

答え1

あなたは正しいです。その価値は日単位で測定されます。

~からusermod(8)マニュアルページ:

-e, --expiredate EXPIRE_DATE

ユーザーアカウントが無効になる日付。日付は形式で指定されます。年月日

しかし、より多くの情報がありますshadow(5)マニュアルページ:

アカウントの有効期限

アカウントの有効期限として、アカウントの数として表示されます。1970年1月1日以降の日数

アカウントの有効期限はパスワードの有効期限と同じではありません。アカウントの有効期限が切れると、ユーザーはログインできません。パスワードが期限切れになると、ユーザーは自分のパスワードを使用してログインできません。

空のフィールドは、アカウントが期限切れにならないことを意味します。

値0は、有効期限がないか、有効期限が1970年1月1日のアカウントとして解釈されるため、使用しないでください。

この測定値を確認できます。ソースusermod.cコード:

        case 'e':
            if ('\0' != *optarg) {
                user_newexpire = strtoday (optarg);

答え2

あなたの推測が正しいようです。

これを確認するには、ソースコードを読む必要があります。

  • 私のDebianコンピュータでは、これはパッケージの一部であるとdlocate言います。usermodpasswd
  • このパッケージのファイルは、README以下で参照できるSVNリポジトリを表します。http://svn.debian.org/wsvn/pkg-shadow/upstream
  • このリポジトリではsrc/usermod.cとのstrtodayオプション値を処理するために呼び出されます。-e
  • strtodayにありますlibmisc/strtoday.c、次のコメントがあります。
    / *値が指定されている場合、これはすでに数値です。
     *EPOCH以降の日数です。
     */

関連情報