Добрый день! Вот основные способы выполнения указанных вами задач в 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`), чтобы увидеть информацию о том, кто получал доступ к репозиторию.
### Общие советы
- Убедитесь, что у вас есть соответствующие права доступа для просмотра логов и файлов истории.
- Знайте, что пользователи могут изменять свои файлы логов или истории команд, если у них есть соответствующие права.
Соблюдайте все меры предосторожности и уважение к конфиденциальности пользователей при выполнении мониторинга их активности.