Команда su производит замену пользователя и имеет синтаксис:
su [опции] имя_пользователяЕсли имя пользователя не указано - то root. Но при этом сохраняется контекст текущего пользователя (дом. директория, переменные окружения и т.д.). Поэтому, например, нельзя вызвать бинарник не указывая путь к нему, который еще надо узнать.
Если же использовать:
su - (-l, --login)То будет загружен контекст root, как будто бы он вошел в систему.
sudo позволяет выполнить команду от имени другого пользователя, если не указано имя, то - root и тоже работает в контексте вызвавшего пользователя.
Чтобы изменить поведение используйте:
sudo -sДанный ключ запустит командную оболочку согласно настроек вызываемого пользователя.
Альтернативный вариант:
sudo -iЭтот ключ полностью повторяет поведение su - и не только запускает оболочку вызываемого пользователя, но и полностью считывает параметры окружения, как будто бы он интерактивно вошел в систему.
