Изменение идентификатора пользователя

su

Команда su устанавливает новый идентификатор пользователя. Если он не указан, используется root.

Обычно su вызывает интерпретатор с другим идентификатором пользователя. Если указан аргумент '-' (более новый синоним для -l или --login), su вызывает интерпретатор как 'login' интерпретатор. Хотя su не использует программу login для этого, она использует использует другое 'встроенное' значение path, для 'симуляции' login. (термин используемый в исходном коде). Этот путь таков:

для обычных пользователей
/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:. 
для пользователя root
/sbin:/bin:/usr/sbin:/usr/bin:/usr/bin/X11:/usr/local/sbin:/usr/local/bin

su также делает множество достаточно тонких изменений в окружение.

sudo

Существует группа команд, которые делают использование команд суперпользователя безопаснее. Они облегчают вход в систему, установку ограничений для пользователей и использование индивидуальных паролей. Наиболее широко используется sudo.

$ sudo env

исполняет команду от имени супер-пользователя (если разрешено конфигурацией)

Команда sudo имеет свой подход к работе с path. Она модифицирует путь поиска так, чтобы текущая директория всегда была последней. При этом переменная окружения PATH не модифицируется. 'sudo env' и 'env' выдадут одинаковое значение для переменной PATH. Sudo также добавляет пару переменных окружения, таких как SUDO_USER.