Linux
useradd –no-log-initcomprehensionquestionC這米pr和H和ns一世這nq你和s噸一世這ncomprehension question
TLDR : 如何
useradd --no-log-init
實際使用$$ in GNU/Linux [Debian $$? 我將有關此選項的命令
man
和info
頁面閱讀為: » 使用者將不會在lastlog
和faillog
文件中列出 ⁄ 輸出«。我知道該PAM
模組接管了大部分實際登錄工作。我理解lastlog
和faillog
命令,並且我知道通過後者,例如可以設置登錄嘗試的次數等。我也知道錯誤的登錄嘗試記錄在
/var/log/utmp
. 這加強了我的懷疑PAM
,即該命令是在模組接管工作之前的“剩餘” 。
如果您查看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
“數據庫”文件中,僅此而已。