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"

2行目はリセットされますenv_keep。行がかかっ+=たり移動する=前の行です+=

おすすめ記事