I fetched version 0.9.5 of the smbldap-tools source, and ran diff between smbldap-tools-0.9.5/smbldap-useradd and smbldap-machineadd-gosa to see what was changed:
--- smbldap-tools-0.9.5/smbldap-useradd 2008-04-22 10:13:29.000000000 +0200 +++ smbldap-machineadd-gosa 2013-07-03 23:37:42.000000000 +0200 @@ -1,5 +1,17 @@ #!/usr/bin/perl -w +# This script has been taken von smbldap-tools 0.9.5, its original name +# is smbldap-useradd. It has been modified so that machine accounts can +# be created and so that they will be compliant to the pre-requisites of +# GOsa as in Debian Edu squeeze. +# +# This script depends on package smbldap-tools (i.e. on its +# smbldap_tool.pm). +# +# Modifcations have been done by several people, initially by +# Mike Gabriel <mike.gabr...@das-netzwerkteam.de> +# + # This code was developped by Jerome Tournier (jtourn...@gmail.com) and # contributors (their names can be found in the CONTRIBUTORS file). @@ -34,8 +46,42 @@ use Getopt::Std; my %Options; +# success = add_posix_machine($user, $uid, $gid) +sub add_posix_machine_gosa { + my ( $user, $uid, $gid, $wait ) = @_; + if ( !defined $wait ) { + $wait = 0; + } + + # bind to a directory with dn and password + my $add = $smbldap_tools::ldap->add( + "uid=$user,$config{computersdn}", + attr => [ + + 'objectclass' => ['top', 'person', 'organizationalPerson', 'inetOrgPerson', 'posixAccount', 'gotoWorkstation'], + #'objectclass' => [ 'top', 'account', 'posixAccount' ], + 'cn' => "$user", + + 'sn' => "$user", + 'uid' => "$user", + 'uidNumber' => "$uid", + 'gidNumber' => "$gid", + 'homeDirectory' => '/dev/null', + 'loginShell' => '/bin/false', + 'description' => 'Computer', + 'gecos' => 'Computer', + 'sn' => 'Computer', + ] + ); + + $add->code && warn "failed to add entry: ", $add->error; + sleep($wait); + return 1; +} + + my $ok = - getopts( 'o:abnmwWiPG:u:g:d:s:c:k:t:A:B:C:D:E:F:H:L:M:N:S:T:?', \%Options ); + getopts( 'o:abnmwWiPG:u:g:d:s:c:k:t:A:B:C:D:E:F:H:L:M:N:S:T:Z:?', \%Options ); if ( ( !$ok ) || ( @ARGV < 1 ) || ( $Options{'?'} ) ) { print_banner; @@ -304,7 +350,7 @@ } if ( - !add_posix_machine( + !add_posix_machine_gosa( $userName, $userUidNumber, $userGidNumber, $Options{'t'} ) ) @@ -342,8 +388,9 @@ changes => [ replace => [ objectClass => - [ 'posixAccount', 'account', 'sambaSAMAccount' ] + [ 'top', 'posixAccount', 'person', 'organizationalPerson', 'inetOrgPerson', 'gosaAccount', 'sambaSamAccount', 'shadowAccount' ] ], + add => [ sn => 'Computer' ], add => [ sambaLogonTime => '0' ], add => [ sambaLogoffTime => '2147483647' ], add => [ sambaKickoffTime => '2147483647' ], @@ -367,8 +414,9 @@ changes => [ replace => [ objectClass => - [ 'posixAccount', 'account', 'sambaSAMAccount' ] + [ 'top', 'posixAccount', 'person', 'organizationalPerson', 'inetOrgPerson', 'gosaAccount', 'sambaSamAccount', 'shadowAccount' ] ], + add => [ sn => 'Computer' ], add => [ sambaLogonTime => '0' ], add => [ sambaLogoffTime => '2147483647' ], add => [ sambaKickoffTime => '2147483647' ], Quite a lot has changed in the original since the fork, and our script no longer work because the /usr/share/perl5/smbldap_tools.pm library no longer provide the get_next_id() function, as reported in <URL: http://lists.debian.org/debian-edu/2013/08/msg00059.html >. -- Happy hacking Petter Reinholdtsen -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org