6

Мой файл /var /log /lastlog огромен. Я знаю, что на самом деле это всего лишь несколько килобайт, но tar не достаточно умен, чтобы это понимать, поэтому, когда я создаю образ виртуальной машины, мое восстановление завершается неудачно, потому что мне кажется, что я пытаюсь загрузить больше данных, чем у меня есть емкость на диске.

Я хочу удалить /var /log /lastlog и прекратить любую запись в файл. Я знаю о последствиях для безопасности. Эта регистрация должна прекратиться, чтобы сохранить мою стратегию резервного копирования.

Я внес изменение в /etc/pam.d/login, который, как мне сказали, отключит ведение журнала в /var /log /lastlog, но он не работает, поскольку /var /log /lastlog продолжает расти.

# Prints the last login info upon succesful login
# (Replaces the `LASTLOG_ENAB' option from login.defs)
#session    optional   pam_lastlog.so

Есть идеи?

РЕДАКТИРОВАТЬ

Для всех, кто интересуется, я использую Centrify Express для аутентификации своих пользователей через LDAP. Centrify Express является "бесплатным", но одним из недостатков является то, что я не могу управлять UID пользователей через LDAP, поэтому им присваивается динамический UID при входе на сервер. Centrify выбирает некоторые сумасшедшие высокие значения UID (поэтому они не конфликтуют с локальными пользователями на сервере, предположительно). /var /log /lastlog индексируется по UID и увеличивается, чтобы вместить самый большой UID в системе. Это означает, что когда пользователь Centrify входит в систему, он получает UID в верхнем конце диапазона UID, что заставляет lastlog выделять непристойный объем пространства в соответствии с файловой системой.

~$ ll /var/log/lastlog
-rw-rw-r-- 1 root root 291487675780 Apr 10 16:37 /var/log/lastlog
~$ du -h /var/log/lastlog
20K     /var/log/lastlog

Больше в ---> Разреженные файлы

3 ответа3

13

Попробуйте эту команду:

ln -sfn /dev/null /var/log/lastlog
2

На мой взгляд, лучшее решение здесь - использовать опцию tar -S / --sparse для правильной обработки разреженных файлов.

0

если третье лицо использует вашу системную tar, переименуйте tar, чтобы сказать, tar.real; затем создайте скрипт с именем tar, который будет использовать -S только при вызове сторонним программным обеспечением.

лучше всего вызвать сторонний скрипт через оболочку, который добавляет специальный каталог bin в начало PATH, где у вас есть оболочка для tar, работает только до тех пор, пока сторонний не использует абсолютные пути.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .