Я настраиваю новый сервер под управлением Ubuntu Server Edition, и я не уверен, в чем разница между установкой большей части основного программного обеспечения от имени пользователя root и установкой основного программного обеспечения от имени администратора с использованием sudo apt-get install.
Во-первых, я не уверен, понадобится ли мне после установки программного обеспечения от имени root доступ sudo при запуске программного обеспечения от имени пользователя (например, если я устанавливаю git как root). С другой стороны, если я устанавливаю программное обеспечение как пользователь, я могу представить себе, что оно будет недоступно другим пользователям, которых я создам в будущем.
Какая здесь лучшая практика?
Это зависит от того, как вы устанавливаете. Если вы используете sudo для вызова apt / dpkg для установки, это не должно иметь никакого значения. APT / DPKG делает все необходимое для правильной настройки.
Если вы компилируете что-то самостоятельно, существует удаленная возможность того, что некоторые настройки среды из вашей учетной записи будут определять способ установки приложения. Например, при использовании sudo ваш $ HOME по-прежнему будет указывать в домашнем каталоге вашей непривилегированной учетной записи. Если компиляция / установка вообще зависит от $ HOME, все может запутаться. Проблемы со сценариями компиляции / сборки возникают нечасто, я видел эту проблему только в одном очень малоизвестном пакете.
Просто чтобы добавить к тому, что сказал Зоредаш.
Одно зависание, с которым я столкнулся с sudo, - это использование его для сборки модулей ядра из исходного кода с помощью make install
команда. Сама сборка работает, но по какой-то причине не может установить модуль. Либо это когда-нибудь сбрасывает привилегии в скрипте make, либо это проблема среды.
Но использование apt / dpkg и связанных с ним утилит не имеет значения. Sudo при использовании с apt / dpkg или любыми другими действиями системного администратора действительно помогает регистрировать действия, так что это одна из причин использовать sudo.