HGRCPATH는 /etc/sudoers에 저장되지만 hg?에서는 무시됩니다.

HGRCPATH는 /etc/sudoers에 저장되지만 hg?에서는 무시됩니다.

지시사항을 따르려고 노력 중이에요여기"sudo 및 여러 사용자"에서. 나는 이것을 충분히 올바르게 수정할 수 있었다고 생각합니다( /etc/sudoers기본 섹션의 시작 부분에 추가한 다음 sudo에서 구문 분석 오류가 발생했기 때문에 잘라냄). 왜냐하면 다음을 얻었기 때문입니다.Defaults :me env_keep += "HGRCPATH":me

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

그러나 실제로 사용하려고 하면 다음과 hg같은 문제가 발생합니다.

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

물론:

[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

hg$HGRCPATH가 무시되고 /root/.hgrc대신 찾는 것처럼 보이는 이유는 무엇입니까 /home/me/.hgrc?

고쳐 쓰다

주석 처리되지 않은 줄은 다음과 같습니다 /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

답변1

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

두 번째 줄은 재설정됩니다 env_keep. 줄이 걸리 +=거나 이동하기 =전의 줄입니다 +=.

관련 정보