全長DRuseradd --no-log-init
:[GNU / Linux [Debian]で実際にどのように使用しますか?
このオプションについて読んだコマンドman
とページはinfo
次のとおりです。 »ユーザーはファイル⁄出力に表示されませんlastlog
。faillog
«。私はこの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
「データベース」ファイルに追加されるかどうかを制御するとします。