Прежде всего, не используйте sudo su
. Это не неправильно, не опасно или что-то еще, это просто не элегантно и бессмысленно . Вы запускаете две отдельные программы, чтобы сделать работу, легко выполняемую одной. Если вы хотите запустить оболочку как root, sudo
можете сделать это за вас.
Если вы хотите запустить оболочку входа (вот что sudo su -
), используйте sudo -i
. Однако, поскольку он запускает оболочку входа в систему, по умолчанию вы попадете в домашнюю директорию root.
Для запуска обычной, не входящей в систему оболочки вы можете использовать sudo -s
. Это запустит для вас корневую оболочку и сохранит вас в каталоге, из которого вы ее запустили:
terdon@tpad ~ $ pwd
/home/terdon
terdon@tpad ~ $ sudo -i ## changes directory
[root@tpad ~]# pwd
/root
[root@tpad ~]# logout
terdon@tpad ~ $ sudo -s ## doesn't change directory
[root@tpad terdon]# pwd
/home/terdon
Итак, способ запустить корневую оболочку и остаться в той же директории sudo -s
.
sudo -s
что не запускается профиль целевого пользователя, потому что это не оболочка входа в систему. Так что, возможно, реальный вопрос в том, есть ли способ получить оболочку для входа в системуsudo
, но без изменения каталога. Возможно нет.