Package: smbldap-tools Version: 0.9.4-1 Severity: normal Tags: patch Hi there!
`man smbldap-useradd` states that if a default UID exists it can be
anyway used specifying the -o option:
--8<---------------cut here---------------start------------->8---
SYNOPSIS
smbldap-useradd [-o user_ou] [-c comment] [-d home_dir] [-g ini‐
tial_group] [-G group[,...]] [-m [-k skeleton_dir]] [-s shell] [-u uid
[ -o]] [-P] [-A canchange] [-B mustchange] [-C smbhome] [-D homedrive]
[-E scriptpath] [-F profilepath] [-H acctflags] login
DESCRIPTION
[...]
-o node
The user’s account will be created in the specified organazional
unit. It is relative to the user suffix dn ($usersdn) defined in the
configuration file. Ex: ’ou=admin,ou=all’
[...]
-u uid
The numerical value of the user’s ID. This value must be
unique, unless the -o option is used. The value must be nonnega‐
tive. The default is to use the smallest ID value greater than 1000
and greater than every other user.
[...]
perl v5.8.8 2007-09-24 SMBLDAP-USERADD(8)
--8<---------------cut here---------------end--------------->8---
However, this conflicts with the "-o node" option:
=====
mantissa:~# smbldap-useradd -a -c "Luca Capello" -d /home/luca -m \
-u 1000 -o -P -N Luca -S Capello luca.capello
ou=-P,ou=Users,dc=pca,dc=it does not exist. Creating it (Y/[N]) ? n
exiting.
mantissa:~#
=====
This is in contrast with the behavior of smbldap-usermod:
=====
mantissa:~# smbldap-useradd -a -c "Luca Capello" -d /home/luca -m \
-P -N Luca -S Capello luca.capello
Changing UNIX and samba passwords for luca.capello
New password:
Retype new password:
mantissa:~# smbldap-usermod -u 1000 luca.capello
/usr/sbin/smbldap-usermod: uid number 1000 exists
mantissa:~# smbldap-usermod -u 1000 -o luca.capello
mantissa:~#
=====
The attached patch add a new option, -r (for "reuse"), which substitutes
the UID -o option. However, this is suboptimal and I would prefer the
OU -o option to be changed instead.
Thx, bye,
Gismo / Luca
-- System Information:
Debian Release: 5.0.4
APT prefers stable
APT policy: (500, 'stable')
Architecture: amd64 (x86_64)
Kernel: Linux 2.6.30-bpo.1-amd64 (SMP w/4 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash
Versions of packages smbldap-tools depends on:
ii libcrypt-smbhash-perl 0.12-2 generate LM/NT hash of a password
ii libdigest-sha1-perl 2.11-2+b1 NIST SHA-1 message digest algorith
ii libio-socket-ssl-perl 1.16-1+lenny1 Perl module implementing object or
ii libnet-ldap-perl 1:0.36-1 A Client interface to LDAP servers
ii libunicode-maputf8-perl 1.11-2 Perl module for conversing between
ii perl 5.10.0-19lenny2 Larry Wall's Practical Extraction
smbldap-tools recommends no packages.
smbldap-tools suggests no packages.
-- no debconf information
--- smbldap-useradd_v0.9.4 2007-09-24 12:18:51.000000000 +0200
+++ smbldap-useradd 2010-03-05 21:49:29.000000000 +0100
@@ -35,7 +35,7 @@
use Getopt::Std;
my %Options;
-my $ok = getopts('o:abnmwiPG:u:g:d:s:c:k:t:A:B:C:D:E:F:H:M:N:S:T:?', \%Options);
+my $ok = getopts('o:abnmwiPG:u:r:g:d:s:c:k:t:A:B:C:D:E:F:H:M:N:S:T:?', \%Options);
if ( (!$ok) || (@ARGV < 1) || ($Options{'?'}) ) {
print_banner;
@@ -50,6 +50,7 @@
print " -m creates home directory and copies /etc/skel\n";
print " -n do not create a group\n";
print " -o add the user in the organizational unit (relative to the user suffix. Ex: 'ou=admin,ou=all')\n";
+ print " -r uid can be non unique\n";
print " -u uid\n";
print " -s shell\n";
print " -t time. Wait 'time' seconds before exiting (when adding Windows Workstation)\n";
@@ -155,7 +156,7 @@
my $userUidNumber = $Options{'u'};
if (!defined($userUidNumber)) {
$userUidNumber=get_next_id($config{usersdn},"uidNumber");
-} elsif (getpwuid($userUidNumber)) {
+} elsif (!defined($Options{'r'}) && getpwuid($userUidNumber)) {
die "Uid already exists.\n";
}
@@ -551,7 +552,7 @@
=head1 SYNOPSIS
-smbldap-useradd [-o user_ou] [-c comment] [-d home_dir] [-g initial_group] [-G group[,...]] [-m [-k skeleton_dir]] [-s shell] [-u uid [ -o]] [-P] [-A canchange] [-B mustchange] [-C smbhome] [-D homedrive] [-E scriptpath] [-F profilepath] [-H acctflags] login
+smbldap-useradd [-o user_ou] [-c comment] [-d home_dir] [-g initial_group] [-G group[,...]] [-m [-k skeleton_dir]] [-s shell] [-u uid [ -r]] [-P] [-A canchange] [-B mustchange] [-C smbhome] [-D homedrive] [-E scriptpath] [-F profilepath] [-H acctflags] login
=head1 DESCRIPTION
@@ -602,7 +603,7 @@
Wait <time> seconds before exiting script when adding computer's account. This is useful when Master/PDC and Slaves/BDCs are connected through the internet (replication is not real time)
-u uid
- The numerical value of the user's ID. This value must be unique, unless the -o option is used. The value must be nonnegative. The default is to use the smallest ID value greater than 1000 and greater than every other user.
+ The numerical value of the user's ID. This value must be unique, unless the -r option is used. The value must be nonnegative. The default is to use the smallest ID value greater than 1000 and greater than every other user.
-P
ends by invoking smbldap-passwd
Diff finished. Fri Mar 5 21:52:29 2010
pgpDzWdosccUi.pgp
Description: PGP signature

