Ok - dann mal das volle Script:
Übergabe: Scriptname [Username]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
print "\nSet Default User 0.1\n\n";
$configfile = "default_groups.cfg";
$par1 = ($ARGV[0]);
if ($par1 eq ""){$par1 = "0";}
if (($par1 eq "0") || ($par1 eq "-h") || ($par1 eq "/h"))
{
print 'Format: "vbdefaultgroups <User>"'."\n";
print 'Userformat Beispiel: "YF12HXX"'."\n";
exit(0);
}
$users = `getent group vb_sw_users`;
if (index($users,$par1) == -1){
print "User existiert nicht\n";
exit (0);}
open DEFAULT, $configfile;
foreach $line ( <DEFAULT> )
{
$group_count++;
chomp($line);
print "-u:$par1 -g:$line -add\n";
}
close DEFAULT;
Das ganze soll mal dazu dienen User mit LDAP-Standardgruppen zu befüllen. Ich weiß - der Script ist ganz schön krude - aber naja, ist ein Anfang ;)
Inhalt der Config-Datei:
NochEinTest
WiederEinTest
HierderDritte
Und so schaut die Ausgabe aus:
Set Default User 0.1
-add12hck -g:NochEinTest
-add12hck -g:WiederEinTest
-add12hck -g:HierderDritte
Anzahl Default-Gruppen: 3
Die Config-Datei (erste Zeile) mit einem Hexeditor betrachtet:
4E 6F 63 68 45 69 6E 54 65 73 74
0A
Die gleiche Zeile in der Bash mit
print unpack( "H*", $line ), $/; ausgegeben:
VOR dem chomp: 4e6f636845696e54657374
0a
NACH dem chomp: 4e6f636845696e54657374
0d
Da liegt dann wohl der Hase im Pfeffer. Aber: muß ich das irgendwie verstehen? So schwierig ist chomp doch nun auch nicht einzusetzen ... *kopfkratz*
Ok - ich habe nun erstmal ein
chop statt einem
chomp reingepackt - das Ergebnis ist dann ja ok - aber so richtig toll ist das ja auch nicht (vor allem muß man immer dran denken im letzten Config-Eintrag nochmal Return zu drücken)
Signaturen werden völlig überbewertet