Ваши наблюдения о различиях между командами `sudo su`, `sudo -i` и `sudo -s` в целом верны, но давайте уточним некоторые моменты и разберем каждую из команд более детально.
### 1. Различия между командами `sudo su`, `sudo -i` и `sudo -s`
- **`sudo su`**:
- Эта команда используется для переключения на пользователя `root`, однако она не сохраняет переменные окружения, доступные для обычного пользователя. При выполнении `sudo su`, текущая оболочка не будет загружаться с дополнительными настройками, и будет использована оболочка по умолчанию пользователя `root`.
- Переменные `HOME` и `PATH` будут установлены в `/root` и стандартные для корневого пользователя соответствующим образом.
- **`sudo -i`**:
- Эта команда также позволяет переключаться на пользователя `root`, но при этом создает интерактивную оболочку, аналогичную входу в систему как `root`. Все настройки окружения и переменные (такие как `HOME`, `PATH`) будут установлены так, как если бы вы вошли в систему как `root`. Это включает в себя загрузку всех конфигурационных файлов, таких как `~/.bashrc`, `~/.profile` и других, что делает сеанс более "чистым" и похожим на полноценный вход как `root`.
- **`sudo -s`**:
- Эта команда запускает командную оболочку с текущими настройками окружения пользователя, но с правами `root`. Это означает, что вы получите доступ к правам суперпользователя, но переменные окружения, такие как `HOME` и `PATH`, остаются установлены для пользователя, который использует `sudo`.
### 2. Логи действий пользователей
- Логи пользователей, использующих `sudo`, обычно записываются в файл `/var/log/auth.log` или `/var/log/secure`, в зависимости от дистрибутива Linux. Команды, запущенные с помощью `sudo -i` и `sudo -s`, будут отображаться в этих логах как выполненные от имени пользователя, который инициировал команду.
### 3. Разница между `sudo su` и `sudo su -`
- **`sudo su`**: Эта команда предоставляет доступ к оболочке `root`, однако не меняет переменные окружения. Вы остаетесь в текущей среде.
- **`sudo su -`**: Этот вариант переключает вас на пользователя `root` и загружает его среду с полными настройками, как если бы вы вошли в систему. Это приведет к настройке переменной `HOME`, `PATH` и загрузке необходимых конфигурационных файлов, что создает полноценный сеанс `root`.
### 4. Различия между флагами `-i` и `-s`
- `-i` создает интерактивную среду, аналогичную входу в систему, с полными настройками пользователя `root`. Все конфигурационные файлы и переменные окружения загружаются, как если бы вы выполнили вход в систему как `root`.
- `-s` сохраняет текущие переменные окружения и запускает командную оболочку от имени пользователя `root`. Это не вызывает полной конфигурации пользователя, и вы работаете в окружении с переменными текущего пользователя, но с правами `root`.
В целом, команда `sudo su -` и `sudo -i` позволяют вам работать с полностью настроенным окружением пользователя `root`, в то время как `sudo -s` и `sudo su` сохраняют среду текущего пользователя.