Каковы преимущества использования `sudo` по умолчанию для сохранения $ HOME? [закрыто]

Этот вопрос является побочным эффектом Владельцев / разрешений по умолчанию для файлов в домашнем каталоге пользователя , и после поиска, который обнаружил этот вопрос и ответ на Unix и Linux SE .

Когда вы используете

sudo command 

, по соображениям безопасности сохраняется только несколько переменных окружения (хотя этот момент здесь обсуждается ... но хорошо). Сохранение $ HOME - это вопрос настроек по умолчанию; в Ubuntu по умолчанию он сохраняется, и вам нужно использовать sudo -H , чтобы не сохранять его (и установить его для целевого пользователя).

Проверьте это (будьте осторожны с цитированием, мы не хотим, чтобы $ HOME разрешалось перед вызовом sudo !):

[romano:~] % sudo bash -c 'echo $HOME'
/home/romano
[romano:~] % sudo -H bash -c 'echo $HOME'
/root

Я вижу, что сохранение $ HOME имеет возможный негативный эффект, заключающийся в том, что вы можете использовать sudo something , и если программа записывает или изменяет файлы в $ HOME (конфигурация, что угодно), вы получите файл, принадлежащий от root и впоследствии не может быть изменен обычным пользователем.

Это может нанести серьезный ущерб, особенно новым пользователям ... у нас довольно много циклов входа в систему из-за принадлежащего root .Xauthority из-за (по общему признанию сумасшедшего) sudo startx в эмуляторе терминала под X, или неизменяемые настройки конфигурации из-за неверного sudo dconf-editor и так далее.

С другой стороны, я не вижу положительных эффектов. Итак, теперь я использую

Defaults        always_set_home

в моем / etc / sudoers (1) , проверяя его:

[romano:~] % sudo bash -c 'echo $HOME'
/root

Вопрос: Каковы положительные эффекты сохранения $ HOME по умолчанию, если есть?


Сноски

(1) Всегда, всегда редактируйте / etc / sudoers с помощью visudo и терминал (лучше VC) с запущенной оболочкой sudo -i . Вы будете благодарны, если сделаете ошибку, лишив себя полномочий суперпользователя.

3
задан 13 April 2017 в 15:37

1 ответ

Вы корректны в указании на потенциальные проблемы с sudo и приложения та запись файлы в $HOME.

Причиной этого поведения действительно не был бы сознательный выбор разработчика, но больше что это не было действительно необходимо в намеченных целях для который sudo был сначала задуман: для использования с более простыми приложениями стиля Unix, которые просто берут некоторый вход и возвращают некоторый вывод предсказуемым способом и затем возвращаются. Это не было бы первоначально разработано для утверждения с объемными приложениями, которые работают в интерактивном режиме и управляют их собственными файлами.

Как справедливо указано, sudo -i <command> хорошо для любого приложения, это является интерактивным (думайте обо мне как обозначающий интерактивный, даже при том, что это не то, что это обозначает). -i обладает дальнейшими теоретическими преимуществами -H в этом среда целевого пользователя, например, .profile, читается также.

Существует также gksudo <command> для графических интерактивных приложений, но sudo -i <command> работы достаточно хорошо для тех также.

Если Вы не хотите вводить sudo -i <command> все время Вы могли создать сценарий/псевдоним для него, я предполагаю.

2
ответ дан 14 April 2017 в 01:37
  • 1
    @Patrick я незнаком с тем фактом и не сделал этого с тем намерением. Я верю указанию, что это новичку была бы правильная вещь, чем наказание меня. Так должен я удалять ответ и флаг, как Вы указали. – George Udosen 2 December 2016 в 11:54

Другие вопросы по тегам:

Похожие вопросы: