やるきなし

2016/03/31 10:24 / snmpd (5.7.3+dfsg-1.1), adduser: Please enter a username matching the regular expression configured (Debian-snmp user)

snmpdのupgradeで以下のように失敗する.

Setting up snmpd (5.7.3+dfsg-1.1) ...
adduser: Please enter a username matching the regular expression configured
via the NAME_REGEX configuration variable.  Use the `--force-badname'
option to relax this check or reconfigure NAME_REGEX.
dpkg: error processing package snmpd (--configure):
 subprocess installed post-installation script returned error exit status 1
Errors were encountered while processing:
 snmpd
E: Sub-process /usr/bin/dpkg returned an error code (1)
Setting up snmpd (5.7.3+dfsg-1.1) ...
adduser: Please enter a username matching the regular expression configured
via the NAME_REGEX configuration variable.  Use the `--force-badname'
option to relax this check or reconfigure NAME_REGEX.
dpkg: error processing package snmpd (--configure):
 subprocess installed post-installation script returned error exit status 1
Errors were encountered while processing:
 snmpd

sudo /var/lib/dpkg/info/snmpd.postinst configure で追ってみると,実際のadduser commandは以下のようなもので,これ自体には一見問題なさげなのだが,

adduser --quiet --system --group --home /var/lib/snmp --disabled-password --disabled-login --shell /bin/false Debian-snmp

/etc/adduser.conf にある NAME_REGEX という変数で username に対して制限をかけているらしく Default では NAME_REGEX="^[a-z][-a-z0-9_]*\$" となっている模様.ということで Debian-snmp はこれにマッチしないのでコケている様子.同様に Debian- が prefix になっている username としては,手元の計算機では既に Debian-gdm というのがあって,/var/lib/dpkg/info/gdm3.postinst ではadduserを--force-badname option 付きで呼んでいる.ということで/var/lib/dpkg/info/snmpd.postinstのadduserの箇所に--force-badname optionを追加して解決.

ちなみに,これより前のバージョンでは snmp の pseudo user は snmp.

なおこの問題は既にhttps://bugs.debian.org/cgi-bin/bugreport.cgi?bug=819531のように解決されているらしく,5.7.3+dfsg-1.2 で直る見込み(使っているミラーサイトにはまだ来ていない).