useradd --no-log-init [理解の質問]

useradd --no-log-init [理解の質問]

全長DRuseradd --no-log-init:[GNU / Linux [Debian]で実際にどのように使用しますか?

このオプションについて読んだコマンドmanとページはinfo次のとおりです。 »ユーザーはファイル⁄出力に表示されませんlastlogfaillog«。私はこのPAMモジュールが実際のログイン操作の大部分を担当していることを知っています。私は理解してlastlogコマンドfaillogし、後者でログイン試行回数などを設定できることを知っています。

また、間違ったログイン試行が記録されることも知っています/var/log/utmp。これが私の力を強化する疑うPAMこのコマンドは、モジュールがジョブを引き継ぐ前の「残り」コマンドです。

答え1

見たらuseradd.cソース少しは以下を示しています。

--no-log-initコマンドラインスイッチが設定されていると仮定すると、faillog_reset関数lastlog_resetが呼び出されます。

if ((!lflg) && (getpwuid (user_id) == NULL)) {
                 faillog_reset (user_id);
                 lastlog_reset (user_id);

このビットが呼び出されると、lastlog_resetファイルが変更されますlastlog

     fd = open (LASTLOG_FILE, O_RDWR);
     if (   (-1 == fd)
         || (lseek (fd, offset_uid, SEEK_SET) != offset_uid)
         || (write (fd, &ll, sizeof (ll)) != (ssize_t) sizeof (ll))
         || (fsync (fd) != 0)
         || (close (fd) != 0)) {

上記は、lastlog読み取りと書き込みのために開いているファイル(O_RDWR)とifファイルが正常に開かれたことを確認し、ファイル内の場所を見つけてwrite新しいユーザーの情報をそのファイルに書き込むステートメントを示しています。その後、ファイルが閉じられます。

これに基づいて、このオプションがユーザーのUIDがlastlog「データベース」ファイルに追加されるかどうかを制御するとします。

関連情報