[Adduser-devel] Bug#508740: adduser: confusing message regarding format of group names
Vincent McIntyre
Vince.McIntyre at atnf.csiro.au
Sun Dec 14 21:48:50 UTC 2008
Package: adduser
Version: 3.102
Severity: minor
*** Please type your report below this line ***
I tried to do this:
# adduser --group --system fu_bar
and got this result:
addgroup: 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.
# echo $?
1
What this error message means, in translation, is
"I don't like underscores in group names".
However it takes quite a bit of looking at it to "get" this meaning.
Is there some way to make this meaning clearer to the reader?
I looked at the adduser manpage and NAME_REGEX is not mentioned.
Nor is it a variable that appears in /etc/adduser.conf.
So I was at a loss about what to do here, to do things "properly".
I was able to work around by using the suggestion in the message:
# adduser --group --system --force-badname fu_bar
That worked fine.
I went and read the code and became more confused.
The config hash has the element 'name_regex', not 'NAME_REGEX',
but this is a minor confusion.
I also found that in subroutine 'checkname', underscores should be
allowed in group names:
sub checkname {
my ($name) = @_;
if ($name !~ /^[_.A-Za-z0-9][-\@_.A-Za-z0-9]*\$?$/) {
printf STDERR
(gtx("%s: To avoid problems, the username should consist only of
letters, digits, underscores, periods, at signs and dashes, and not start with
a dash (as defined by IEEE Std 1003.1-2001). For compatibility with Samba
machine accounts \$ is also supported at the end of the username\n"), $0);
exit 1;
}
...
So it looks like, on my system, the NAME_REGEX variable is not being
defined?
I hacked the code to print all the keys & values in %config and found
that 'name_regex' was set to '^[a-z][-a-z0-9]*$'. I find where this
occurs.
I assume it should be defined in /etc/adduser.conf, is that correct?
If NAME_REGEX is defined, it appears to be inconsistent with the first
check in subroutine 'checkname' shown above.
When responding to this bug, could you please address:
1. this apparent inconsistency between the code and the default 'name_regex'?
2. mentioning NAME_REXEX in the manpage? I've attached a tentative patch.
Thanks,
Vince
-- System Information:
Debian Release: 4.0
APT prefers stable
APT policy: (500, 'stable')
Architecture: i386 (i686)
Shell: /bin/sh linked to /bin/bash
Kernel: Linux 2.6.24-etchnhalf.1-686-bigmem
Locale: LANG=en_AU.UTF-8, LC_CTYPE=en_AU.UTF-8 (charmap=UTF-8)
Versions of packages adduser depends on:
ii debconf [debconf-2.0] 1.5.11etch2 Debian configuration management sy
ii passwd 1:4.0.18.1-7 change and administer password and
ii perl-base 5.8.8-7etch5 The Pathologically Eclectic Rubbis
adduser recommends no packages.
-- debconf information:
adduser/homedir-permission: true
-------------- next part --------------
A non-text attachment was scrubbed...
Name: adduser.8.patch
Type: text/x-diff
Size: 682 bytes
Desc:
Url : http://lists.alioth.debian.org/pipermail/adduser-devel/attachments/20081215/5ab1cf17/attachment.patch
More information about the Adduser-devel
mailing list