Можно ли как-нибудь определить, когда пользователь был создан в Linux? Я знаю пару вещей, которые можно сделать, но это ненадежный способ сделать это. Первый вариант - проверить, когда был создан домашний каталог, выполнив команду ls -ld /home/user
чтобы увидеть отметку времени. Тогда есть возможность проверить bash_profile
или bash_logout
: ls -l /home/user/.bash_profile
и ls -l /home/.bash_logout
. Пожалуйста, помогите мне найти более надежный способ сделать это!
Fedora, которая довольно RedHatty, похоже, регистрирует использование useradd, даже когда вызывается root (а не через sudo, что, конечно же, также оставляет журналы):
[root@anni log]# useradd foo
[root@anni log]# tail /var/log/secure
Sep 13 16:15:15 anni useradd[17621]: new group: name=foo, GID=502
Sep 13 16:15:15 anni useradd[17621]: new user: name=foo, UID=502, GID=502, home=/home/foo, shell=/bin/bash
Как долго вы храните старые копии /var/log/secure
это дело вас и вашей конфигурации logrotate.
Вы можете контролировать /var/log/secure
для записей useradd:
Sep 13 17:11:08 *** useradd[27220]: new group: name=test, GID=515
Sep 13 17:11:08 *** useradd[27220]: new user: name=test, UID=514, GID=515, home=/home/test, shell=/bin/bash
Конечно, если пользователь создан другими способами (например, путем редактирования /etc/passwd
напрямую) вам не повезет.
Вы всегда можете отслеживать изменения в /etc/passwd
сохраняя копию и при каждой проверке сравнивайте ее со старой копией.
AFAIK, по умолчанию Linux не записывает дату создания.
Я не знаю о времени создания пользователя, но первый логин пользователя будет через /var/log/auth.log
. Предположительно, пользователь входит в систему сразу после того, как его пользователь был создан, чтобы установить свой пароль. Все, что находится в домашнем каталоге пользователя, ненадежно, так как пользователь может его перезаписать.