Відповіді:
Я думаю sudo -s
, що не "краще", це просто інше.
sudo -s
зберігає ваш каталог $ HOME, тому при запуску програм вони використовуватимуть ваші (а не кореневі) конфігураційні файли тощо. Недолік: вони також можуть змінити право власності на ваші файли в каталозі $ HOME, типовим прикладом є .Xauthority
файл, але я ніколи не відчували проблеми з цим.
sudo su
або sudo -i
програми використовуватимуть домашній каталог кореня та його конфігураційні файли. Це може бути більш інтуїтивно зрозумілим, але це також означає, що воно не використовуватиме будь-яку конфігурацію, яку ви могли встановити для себе (псевдоніми, історія башів, ...).
Тому що sudo -s
не зміниться змінних вашого середовища, особливо $HOME
, які залишаться HOME=/home/USER
. Якщо ви користуєтесь sudo su
цим, то це змінить, HOME=/root
які можуть мати негативні побічні ефекти при запуску програм, намагаючись отримати доступ до домашнього каталогу вашого користувача.
Так що в основному це як sudo
vs gksudo
при запуску графічних програм.
Окрім вже згаданих відмінностей із змінними середовища, я вважаю sudo su
дурними та марними, тому що ви просите sudo
запустити su
як root, і попросите його запустити оболонку як корінь. Навіщо просити програму попросити програму дати вам кореневу оболонку, коли ви можете просто першою програмою дати вам цю оболонку? Це має значення в будь-якому практичному сенсі? Ні, я просто педантичний.
sudo su
root, так, просто перейдіть sudo -i
, наприклад. Але це дійсно допомагає , якщо ви хочете стати іншим користувачем: sudo su - myuser
.
sudo -i
зміниться в /root
каталог і sudo su
залишиться в каталозі, який ви є.
sudo -u myuser
.
Я б не погоджувався з іншими відповідями при розгляді випадків, коли ви хочете увійти як користувач, який не має оболонки. Це дуже поширений випадок із користувачами, призначеними для послуг.
Використання "sudo su" запустить оболонку, вказану користувачем. Однак у випадку користувача, призначеного для серверного процесу, оболонка є / usr / bin / false і реєстрація не вдасться. Замість цього слід ввести як:
sudo -sHu <server-user>
це ввійде до вас та перейде на його домашній шлях, навіть якщо користувачеві не призначено оболонки
sudo -i
абоsudo su
це краще, ніжsudo -s
із зазначених тут причин: ubuntuforums.org/showpost.php?p=6188826&postcount=4 Також: це можливий дублікат сайту superuser.com/questions/29/…