Изменение идентификатора пользователя
su
Команда su делает переключение на нового пользователя. Если никакое имя пользователя не указано, то используется пользователь root.
Обычно su вызывает подоболочку другого пользователя. С аргументом '-' (более новые синонимы -l или --login) su вызывает оболочку, подобную входной. Однако она не использует программу login, чтобы сделать это, но использует встроенную функцию для 'симуляции' (simulation - термин используемый в исходном тексте) программы 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.
выполняет команду env как супер-пользователь (если конфигурация позволяет это сделать).
Команда sudo имеет различный подход к обработке путей. Она изменяет пути поиска файлов так, чтобы текущая директория всегда находилась в конце списка. Однако, она не изменяет переменную окружения PATH. Для 'sudo env' и 'env' переменная PATH имеет одинаковые значения. Sudo добавляет только пару переменных среды, подобные SUDO_USER.