Назад | Перейти на главную страницу

Разница между su и bash

Когда я получаю доступ к сетевому серверу, я использую команду sudo su чтобы получить права администратора. Недавно я обнаружил, что sudo bash это правильная команда, которая даст мне привилегии тем su не.

В чем разница между sudo su и sudo bash? Я думал, что оба они эквивалентны.

Когда ты делаешь sudo su вы запускаете оболочку по умолчанию для пользователя root, которая, скорее всего, будет оболочкой Bourne (sh). Ты можешь сделать sudo -s чтобы получить оболочку по умолчанию для текущего пользователя.

Какие привилегии вам не хватает после

sudo su

? Возможно, после этой команды у вас просто не настроена среда root. Если вы это сделаете

sudo su -

(обратите внимание на «-»), тогда профиль пользователя root будет прочитан, и среда (среди прочего переменная PATH) будет установлена ​​так, как если бы вы вошли в систему как root. Если ты бежишь sudo su, вы сохраняете свою среду и получаете эффективный uid равный 0, что означает, что у вас есть привилегии пользователя root без настройки среды root. sudo su - изменяет ваш текущий каталог на домашний каталог root, поэтому я использую sudo su, если я хочу выполнить пару команд в текущем каталоге (например, сменить владельца файла) без необходимости вводить длинные пути.