Как в Ubuntu узнать, какие действия выполняли пользователи?

Добрый день. <br/> Можете подсказать, как в Ubuntu выполнить следующие задачи: <br/> 1. Как узнать, какой пользователь и в какое время входил в систему? <br/> 2. Как отследить действия конкретного пользователя? <br/> 3. Как проверить, что делал пользователь, использующий команды sudo -i, sudo -s или sudo su? <br/> 4. Как выяснить, какой пользователь взаимодействовал с определённым репозиторием и какие действия он выполнял?
  • 21 января 2025 г. 10:54
Ответы на вопрос 3
Добрый день! Вот основные способы выполнения указанных вами задач в Ubuntu.

### 1. Как узнать, какой пользователь и в какое время входил в систему?

Для просмотра истории входов пользователей можно использовать команду `last`. Она выводит информацию о последних входах в систему:

```bash
last
```

Эта команда покажет список пользователей, которые входили в систему, вместе с временем и датами входа, а также длительностью сессии.

### 2. Как отследить действия конкретного пользователя?

Для отслеживания действий конкретного пользователя можно просмотреть системные журналы. Вся информация о выполненных командах пользователя записывается в файл `~/.bash_history` в домашней директории пользователя. Вы можете открыть этот файл:

```bash
cat /home/username/.bash_history
```

Замените `username` на имя нужного пользователя. Учтите, что этот файл может быть очищен или изменен пользователем.

Также можно просмотреть системные журналы, такие как `/var/log/auth.log`, для отслеживания входов и неудачных попыток входа. Чтобы просмотреть журнал, вы можете использовать команду `grep`:

```bash
grep username /var/log/auth.log
```

### 3. Как проверить, что делал пользователь, использующий команды sudo -i, sudo -s или sudo su?

Действия пользователей, использующих `sudo`, записываются в лог-файл `/var/log/auth.log`. Вы можете выполнить следующую команду для фильтрации записей, связанных с конкретным пользователем:

```bash
grep 'sudo' /var/log/auth.log | grep username
```

Эта команда покажет все команды, которые пользователь запускал через `sudo`.

Чтобы просмотреть команды, выполненные с помощью `sudo`, вы также можете проверить файл истории команд `~/.bash_history` всех пользователей, но в этом случае необходимо убедиться, что команда была выполнена в сессии с использованием `sudo`.

### 4. Как выяснить, какой пользователь взаимодействовал с определённым репозиторием и какие действия он выполнял?

Если ваш репозиторий находится под управлением системы контроля версий, такой как Git, вы можете просмотреть историю коммитов с указанием того, какой пользователь и когда выполнял определенные действия. Используйте следующую команду:

```bash
git log
```

Эта команда покажет список коммитов с автором, датой и сообщением коммита. Если вам нужно узнать более конкретную информацию о действиях, выполненных пользователями, вы можете использовать:

```bash
git blame filename
```

Эта команда покажет, кто и когда изменял каждую строку в указанном файле.

Для серверов с доступом через SSH и если вы также ведете логи, стоит проверить логи SSH (`/var/log/auth.log`), чтобы увидеть информацию о том, кто получал доступ к репозиторию.

### Общие советы

- Убедитесь, что у вас есть соответствующие права доступа для просмотра логов и файлов истории.
- Знайте, что пользователи могут изменять свои файлы логов или истории команд, если у них есть соответствующие права. 

Соблюдайте все меры предосторожности и уважение к конфиденциальности пользователей при выполнении мониторинга их активности.
1. Какой пользователь в какое время заходил?

- last - история входов пользователей.
- last zver - история входов пользователя с логином - зверь.
- lastb zver - история неудачных входов пользователя с логином - зверь.
- last zver | grep "Jan 21" - история входов пользователя с логином - зверь за 21 января.
- last -s -7days zver - история входов пользователя с логином - зверь за последние 7 дней.
2. Действия того или иного пользователя?

- cat /home/zver/.bash_history - история команд пользователя с логином - зверь.
- who -u - показывает активных пользователей, их терминалы и время входа.
- ps -u zver - показывает список активных процессов пользователя с логином - зверь.
- sudo iotop -u zver - история входа-выхода пользователя с логином - зверь.
- sudo iftop -f "src user zver" - показывает сетевой трафик пользователя с логином - зверь.
- sudo tail -f /var/log/syslog | grep zver - просмотр действий пользователя с логином - зверь в реальном времени.
3. Если пользователь пользовался sudo -i, sudo -s, sudo su, как посмотреть, что он делал под этими оболочками?

- sudo grep zver /var/log/auth.log - история команд пользователя с логином - зверь под sudo.
- sudo aureport -x --summary - показывает сводку команд пользователей, втч. под sudo.

Расширенный мониторинг зверей - auditd и еще .
для полноценного логирования действий пользователей использовать демона auditd 
в остальном как повезет.

1. sshd пишет соответвующую строчку в системный лог. tty кажись тоже.
2. оболочка никаких команд не логирует. по идее, команды пользователя оболочка сохраняет в history, но он доступен пользователю на очистку и удаление. плюс пишутся не все команды, к примеру, наличие пробела в начале команды или несколько сессий оболочки одновременно.
3. никак. sudo в принципе запишет запуск оболочки в сислог. однако команды он уже не видит, ну а оболочка смотри пункт 2.
4. смотри /var/log/apt/history.log
Похожие вопросы