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

В чем разница между su и su в CentOS?

Я попытался переключиться на «root» в CentOS, запустив su. Он меняется на «root», но не похоже на настоящего «root» пользователя.

Например, по умолчанию ifconfig командовать в /sbin не найден в пути для обычного пользователя, но для 'root' команда может быть найдена. Когда я бегу su, Я все еще получаю bash: ifconfig: command not found вывод, когда я пытаюсь запустить ifconfig.

Однако когда я бегу su -, ifconfig просто работает.

В чем разница между su и su - в CentOS?

Добавление - опция влияет на поведение вашей среды. Для всех практических целей среда полностью сброшена. В общем, вы, вероятно, захотите использовать su - вместо простого su. На странице руководства:

 -l      Simulate a full login.  The environment is discarded except for HOME, SHELL, PATH, TERM, and USER.  HOME and SHELL are modified as above.
         USER is set to the target login.  PATH is set to ``/bin:/usr/bin''.  TERM is imported from your current environment.  The invoked shell is
         the target login's, and su will change directory to the target login's home directory.

 -       (no letter) The same as -l.

su - вызывает оболочку входа в систему, которая, помимо прочего, гарантирует, что .bashrc и другие сценарии запуска оболочки запускаются, как если бы вы вошли в систему напрямую как root через консоль или SSH. Профиль root обычно устанавливает ваш путь для включения /sbin где ifconfig вообще живёт.