useradd --no-log-init [이해력 질문]

useradd --no-log-init [이해력 질문]

총 길이 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_resetlastlog_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"데이터베이스" 파일에 추가되는지 여부를 제어한다고 가정합니다.

관련 정보