Перейти к содержанию

Сравнение sudo su vs su- vs sudo -i

su

su вызывает переопределенную оболочку другого пользователя.

По умолчанию это суперпользователь (UID = 0)

Это вызывает повторную регистрацию пользователя в системе.


sudo

sudo - правила в /etc/sudoers пароль текущего пользователя

sudoers syntax

   john          ALL=(ALL:ALL)   NOPASSWD:ALL
     |            |    |    |              | 
  username       host  | all groups   all commands     
                     all users  

su

su -> пароль root -> root

USER = user
HOME = /root
USER_VAR = user .bashrc
USER_PROFILE_VAR = user .bash_profile
ROOT_VAR = root .bashrc
ROOT_VAR_PROFILE = 
Non-login shell

выход через exit


sudo su

sudo su -> root

USER = root
HOME = /root
USER_VAR = 
USER_PROFILE_VAR = 
ROOT_VAR = root .bashrc
ROOT_VAR_PROFILE = 
Non-login shell
выход через exit

лучше чем su


sudo -s (shell)

sudo -s -> root

USER = root
HOME = /root
USER_VAR = 
USER_PROFILE_VAR = 
ROOT_VAR = from root .bashrc
ROOT_VAR_PROFILE = 
Non-login shell

su -

su - -> пароль root -> root

USER = root
HOME = /root
USER_VAR = 
USER_PROFILE_VAR = 
ROOT_VAR = root .bashrc
ROOT_VAR_PROFILE = from root .bash_profile
Login shell

новая логин сессия

выход через logout


sudo su -

sudo su - -> пароль текущего пользователя -> root

USER = root
HOME = /root
USER_VAR = 
USER_PROFILE_VAR = 
ROOT_VAR = root .bashrc
ROOT_VAR_PROFILE = from root .bash_profile
Login shell

почти как su -


sudo -i

sudo -i -> root

USER = root
HOME = /root
USER_VAR = 
USER_PROFILE_VAR = 
ROOT_VAR = root .bashrc
ROOT_VAR_PROFILE = from root .bash_profile
Login shell

Лаконичен и создает полноценную login сессию root