HGRCPATH mantido em / etc / sudoers, mas ignorado por hg?

1

Estou tentando seguir as instruções aqui em "sudo e vários usuários". Acredito que eu consegui modificar /etc/sudoers corretamente (adicionando Defaults :me env_keep += "HGRCPATH" no início da seção defaults, mas depois cortando :me porque o sudo estava me dando erros de análise) porque eu recebo isto:

[me /]$ su
Password:
[root /]$ echo $HGRCPATH
/home/me/.hgrc

No entanto, quando tento realmente usar hg , tenho problemas:

[me /]$ sudo hg commit -m "Initial check-in."
abort: no username supplied (see "hg help config")

De fato:

[me /]$ sudo hg debugconfig --debug | grep read
read config from: /usr/etc/mercurial/hgrc
read config from: /etc/mercurial/hgrc
read config from: /etc/mercurial/hgrc.d/mergetools.rc
read config from: /root/.hgrc

Por que hg parece estar ignorando $ HGRCPATH e procurando /root/.hgrc em vez de /home/me/.hgrc ?

UPDATE

Aqui estão as linhas não comentadas de /etc/sudoers :

$ sudo cat /etc/sudoers | grep '^[^#]'
Defaults env_keep += "HGRCPATH"
Defaults    requiretty
Defaults   !visiblepw
Defaults    always_set_home
Defaults    env_reset
Defaults    env_keep =  "COLORS DISPLAY HOSTNAME HISTSIZE INPUTRC KDEDIR LS_COLORS"
Defaults    env_keep += "MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE"
Defaults    env_keep += "LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES"
Defaults    env_keep += "LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE"
Defaults    env_keep += "LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY"
Defaults    secure_path = /sbin:/bin:/usr/sbin:/usr/bin
root    ALL=(ALL)       ALL
me     ALL=(ALL)       ALL
    
por Kev 10.08.2013 / 23:14

1 resposta

2
Defaults env_keep += "HGRCPATH"
Defaults    env_keep =  "COLORS DISPLAY HOSTNAME HISTSIZE INPUTRC KDEDIR LS_COLORS"

Essa segunda linha redefine env_keep . Fique com += ou mova a linha = antes de qualquer linha += .

    
por 11.08.2013 / 21:45