Перш за все, не використовуйте 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
, але без зміни каталогу. Напевно, ні.