[Решено] pacman и обновление через прокси

Доброго дня! Столкнулся с проблемой обновления через прокси. Свежеустановленный Arch не хотел обновлятся через sudo, обновление проходило только под root. Методом проб и ошибок и чтения гуглов пришел к выводу, что проблема в переменных http_proxy, https_proxy, ftp_proxy, no_proxy, а точнее в том, что они существуют только для root (заранее извиняюсь, с точной терминологией не знаком - полагаю следует называть это "окружением"). Чтоб сделать эти переменные доступными для всех пользователей добавил их в /etc/profile, но и это не помогло. Ранее где-то на форуме (не смог найти, к сожалению) читал о работе sudo - о том что редактируя /etc/sudoers следует добавить свои переменные в Defaults env_keep (после строк "You may wish to keep some of the following environment variables when running commands via sudo..."), чтобы эти переменные передавались выполняемой команде (в нашем случае pacman). После таких манипуляций все заработало. К слову все можно было "починить" организовав работу pacman через wget, как это уже обсуждалось на форуме, но загвоздка была в том что я забыл его установить :) и принципиально хотел найти выход без wget. Но теперь никак не могу понять, почему же pacman отказывался работать после добавления переменных в /etc/profile, ведь после этого переменные уже существовали и для root и для других пользователей (проверял командой set)?
Спасибо!
А оболчка какая? После того как переменные для для проксей были добавлены в /etc/profile и вы перелогинились все должно было заработать (для bash). А sudo не запускает новую оболочку для рута, а просто выполняет заданную программу с привелегиями суперпользователя в окружении текущего пользователя. Подробнее - man sudo.
UPD: опаньки.. опять облажался.. не берет sudo окружение пользователя... чтобы брало, надо говорить sudo -E... man sudoers гласит что часть переменных выкидывает линковщик, а часть само sudo и единственный верный путь рулить переменными, это как вы и сделали - через /etc/sudoers ....
Можно еще проще сказать: так как sodo не запускает никаких командных оболочек, то соответственно настройки переменных окружения для этих оболочек никак не сказываются на выполнении программ через sudo. И кстати, чем вам su не угодило?
Использую bash. Приведенное мной решение с редактированием /etc/sudoers разве не является аналогом sudo -E? И кажется я понял в чем загвоздка. Внимательно просмотрев вывод команды sudo -V (от root), находим строку "Reset the environment to a default set of variables", т.е. все переменные сбрасываются в дефолт, более того ниже еще указаны переменные "to remove". Поправьте, если я не прав. Спасибо за помощь. Снова убеждаюсь, что следует тщательнее читать man'ы =)
naszar
Можно еще проще сказать: так как sudo не запускает никаких командных оболочек, то соответственно настройки переменных окружения для этих оболочек никак не сказываются на выполнении программ через sudo. И кстати, чем вам su не угодило?
о_О Теперь я запутался. Согласно man'a sudo использует переменные окружения, но далеко не все (см. sudo -V) - или я не так понимаю?
И я не против su, просто хотелось разобраться.
(см. sudo -V) - или я не так понимаю?
Да именно так. Те переменные которые которые показывает sudo -V в разделах Environment variables to preserve и Environment variables to check for sanity копируются из текущего окружения пользователя от которого запускается sudo. Никакие другие переменные установить для программы запускаемой через sudo невозможно. Хотя... sudo bash -c <command> или sudo -i bash -c <command> уже испытают влияние .bashrc и .bash_profile рута.
А еще в вики огроменная статья про sudo и даже на русском...
В общем-то можно тему можно считать закрытой. Благодарствую.
P.S.
и даже на русском...
- в русской вики о sudo -E и пр. ничего =\
Что будет плохого если редактировал НЕ через visudo, а прямиком nano /etc/sudoers ?
WiGust
Что будет плохого если редактировал НЕ через visudo, а прямиком nano /etc/sudoers ?
Я думаю будет нарушена правильная структура данного конфига. То же самое справедливо и для конфига grub2. И там и там "православная" настройка размещает параметры в нужное место конфига.

P.S.: До этого сам всё время редактировал "судоеров" напрямую и только сегодня (из данного топика) узнал что так нельзя делать.
Да пребудет с нами Сила...!
CPU Intel Core i9 10900-KF/RAM DDR4 128 Gb/NVidia GForce GTX 1080 Ti Turbo 11Gb/SSD M2 512 Gb/HDD Seagate SATA3 2 Tb/HDD Toshiba 3Tb/HDD Toshiba 6Tb
http://rusrailsim.org
WiGust
Что будет плохого если редактировал НЕ через visudo, а прямиком nano /etc/sudoers ?
Не бойся - ничего плохого не будет.
Ошибки не исчезают с опытом - они просто умнеют
 
Зарегистрироваться или войдите чтобы оставить сообщение.