14

Всякий раз, когда я захожу на сервер, используя ssh. В подсказке отображается информация о "последнем входе". Мне было интересно, откуда эта информация. Как я могу удалить эту запись, чтобы, когда кто-то еще заходил на тот же сервер, этот человек мог видеть мою регистрационную информацию с моим ip?

Так как я могу это сделать? Для справки, я не взламываю чей-то компьютер, а на сервере работает Ubuntu 12.04.

РЕДАКТИРОВАТЬ: какой файл регистрирует такую информацию? Если я найду файл, я могу сделать что-нибудь с ним как root.

Благодарю.

6 ответов6

41

В Ubuntu он находится в /etc/ssh/sshd_config .

Найдите строку, которая говорит:

PrintLastLog yes

и изменить на

PrintLastLog no (или добавить, если он не существует)

6

Помимо /var /log /lastlog, в /var/run и /var/log есть 3 файла: utmp , wtmp и btmp , которые содержат информацию о текущих входах в систему (и дополнительную информацию), истории и неудачных входах. Смотрите http://en.wikipedia.org/wiki/Utmp для подробного описания. Вы не можете редактировать файлы с обычными редакторами, но можете стереть их.

4

Обычно utmp находится в /var /run, а не /var /log. wtmp и btmp находятся в /var /log.

ssh - не единственная программа, которая пишет в эти три файла. Если вы удалите их, как кто-то предложил, вы сломаете много программ. Ожидается, что они будут там. Измените файл /etc /ssh /sshd_config, как предложил Кэмерон Азиз.

Вы не единственный процесс в оболочке. Вы не используете однозадачную операционную систему. Привыкнуть к работе над настоящей сетевой операционной системой было одним из самых сложных умственных сдвигов, которые я когда-либо делал, вплоть до использования мэйнфрейма и метода обучения. На практике это означает, что вы никогда не должны удалять файл, если вы точно не знаете, что он делает в системе.

Чтобы понять, насколько широко используются некоторые файлы, взгляните на lsof и поэкспериментируйте с ним. Даже lsof только говорит вам, какие процессы в настоящее время используют ваш файл, он не дает вам исторических данных, поэтому будьте осторожны.

1

Ключевое слово конфигурации PrintLastLog извлекает информацию из файла /var /log /lastlog

Вы можете использовать команду lastlog, чтобы просмотреть эту информацию в командной строке.

1

Вот альтернатива, которая работает для GNU и BSD (Mac OS X). Это также объясняет тот факт, что большинство настроек закомментированы по умолчанию - они в любом случае в El Capitan):

sudo sed -i.bak "s/^#?PrintLastLog yes$/^PrintLastLog no$/" /etc/ssh/sshd_config

Без изменения -i.bak я продолжал получать:

sed: 1: "/etc/ssh/sshd_config": bad flag in substitute command: 'h'
0

Вот команда, чтобы сделать это автоматически:

sudo sed -i "s/PrintLastLog .*/PrintLastLog no/1" /etc/ssh/sshd_config

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