В версиях Ubuntu до Ubuntu 19.10 Эоан Эрмин, когда я запускаю команду с sudo
, эта команда получает мой домашний каталог в переменной среды $ HOME
. Я давно ожидал такого поведения и предупреждал других людей о . Если я хочу, чтобы sudo
сбрасывал переменную среды $ HOME
, чтобы она ссылалась на домашний каталог целевого пользователя, а не на мой собственный, я должен передать -H
(или -i
, хотя это больше).
ek@Kip:~$ lsb_release -d
Description: Ubuntu 18.04.3 LTS
ek@Kip:~$ sudo printenv HOME # Shows ek's home, not root's.
/home/ek
ek@Kip:~$ sudo -u as printenv HOME # Shows ek's home, not as's.
/home/ek
ek@Kip:~$ sudo -H printenv HOME # Shows root's home.
/root
ek@Kip:~$ sudo -Hu as printenv HOME # Shows as's home.
/home/as
Когда я впервые обновился до Ubuntu 19.10, я был удивлен, обнаружив, что sudo
, похоже, сбрасывает $ HOME
, несмотря ни на что! Я продолжаю наблюдать это сейчас, когда выпущена 19.10 и я установил обновления - как в недавно установленных системах, так и в той, которую я обновил до 19.10.
ek@Cord:~$ lsb_release -d
Description: Ubuntu 19.10
ek@Cord:~$ sudo printenv HOME # Shows root's home, even without -H or -i.
/root
ek@Cord:~$ sudo -u as printenv HOME # Shows as's home, even without -H or -i.
/home/as
ek@Cord:~$ sudo -H printenv HOME # Also shows root's home.
/root
ek@Cord:~$ sudo -Hu as printenv HOME # Also shows as's home.
/home/as
Я подумал, что это могло быть из-за обновленных файлов конфигурации . Но я проверил, и always_set_home
не отображается ни в одной строке Defaults
в моем файле 19.10 / etc / sudoers
.
Что заставляет sudo
по-другому относиться к $ HOME
начиная с 19.10, и почему было внесено это изменение? Делает ли это безопасным использование простого sudo
] в тех случаях, когда я раньше использовал бы sudo -H
?