Как я могу навсегда удалить / var / log / lastlog?

8561
GregB

Мой файл / 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 

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

6
Ну, безусловно, есть способ отключить его или ограничить его размер, но я не эксперт в этом. Это напомнило мне хотя бы о моем исправлении этой проблемы в Windows: я бы удалил файл и создал каталог с именем файла в этом месте. : D :) 12 лет назад 0
Я не могу понять, как прокомментировать ваш вопрос. Если вы удалите / var / log / lastlog, это сработает или вернется? user130777 12 лет назад 0
Вот несколько ссылок на отчеты об ошибках в Redhat / Fedora и Ubuntu. Надеемся, что больше людей обратят внимание на этот вопрос, и это привлечет внимание. http://bugs.launchpad.net/ubuntu/+source/util-linux/+bug/1707645 http://bugzilla.redhat.com/show_bug.cgi?id=951564 nelaaro 5 лет назад 0

3 ответа на вопрос

13
johnshen64

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

ln -sfn /dev/null /var/log/lastlog 
Это обман. Должен быть другой путь. :) 12 лет назад 2
Это чертовски хорошая идея, хотя :). Наверное, не так уж сложно автоматизировать с помощью марионетки. GregB 12 лет назад 0
Это сработало. Я посмотрел в журналах, которые создает PAM, и есть исключение, что он не может записать в / var / log / lastlog. Оказывается, что модуль PAM никогда не создаст lastlog, если он не существует, поэтому файл можно просто удалить. GregB 12 лет назад 0
2
Jon Lasser

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

К сожалению, tar вызывается сторонней службой резервного копирования, поэтому я не могу контролировать параметры. Я отправил билет стороннему лицу, сказав им то же самое :). GregB 12 лет назад 0
0
Tepal

if the 3rd party is using your system tar, rename tar to say, tar.real; then make a script called tar which will use -S only when called by the third-party software.

better, call the third-party via wrapper script which adds a special bin dir to the front of PATH, where you have the wrapper for tar, only works so long as third-party is not using absolute paths.

Привет Тепал, спасибо за этот ответ. Учитывая, что на этот вопрос уже есть принятый ответ, не могли бы вы отредактировать свой ответ, чтобы немного рассказать о том, что он пытается достичь для других людей, которые могут его читать? bertieb 8 лет назад 0
Вау, возвращая это из мертвых. Насколько я помню, проблема заключалась в восстановлении снимков серверов публичного облака Rackspace. Я думал, что у меня есть резервные копии, но восстановить не удалось из-за проблем с пространством, упомянутых в исходном посте. Я не могу вспомнить, работал ли tar на виртуальной машине или на другом сервере, который передавал данные образа на новую виртуальную машину. GregB 8 лет назад 0

Похожие вопросы