]>
git.ipfire.org Git - ipfire-2.x.git/blob - html/cgi-bin/samba.cgi
5 # This code is distributed under the terms of the GPL
11 # enable only the following on debugging purpose
13 use CGI
::Carp
'fatalsToBrowser';
15 require '/var/ipfire/general-functions.pl';
16 require "${General::swroot}/lang.pl";
17 require "${General::swroot}/header.pl";
19 my %sambasettings = ();
22 my %ovpnsettings = ();
24 my $errormessage = "";
25 my $shareconfigentry = "";
26 my @sharesconfig = ();
27 my @shareconfigline = ();
29 my $defaultoption= "[Share]\npath = /shares/share1\ncomment = Share - Public Access\nbrowseable = yes\nwriteable = yes\ncreate mask = 0777\ndirectory mask = 0777\nguest ok = yes\npublic = yes\nforce user = samba";
35 my $userfile = "/var/ipfire/samba/private/smbpasswd";
36 &General
::readhash
("${General::swroot}/ethernet/settings", \
%netsettings);
37 &General
::readhash
("${General::swroot}/ovpn/settings", \
%ovpnsettings);
39 ############################################################################################################################
40 ############################################# Samba Dienste für Statusüberprüfung ##########################################
44 'SMB Daemon' => 'smbd',
45 'NetBIOS Nameserver' => 'nmbd',
46 'Winbind Daemon' => 'winbindd'
49 &Header
::showhttpheaders
();
51 ############################################################################################################################
52 #################################### Initialisierung von Samba Sharess für die Verarbeitung ################################
59 my $sharefile = "/var/ipfire/samba/shares";
60 my $EOF = qx(cat
$sharefile | wc
-l
);
62 @shares = `grep -n '^\\[' $sharefile`;
63 foreach $shareentry (@shares)
65 @shareline = split( /\:/, $shareentry );
66 push(@Zeilen,$shareline[0]);push(@Shares,$shareline[1]);
69 ############################################################################################################################
70 #################################### Initialisierung von Samba Variablen für global Settings ###############################
72 $sambasettings{'WORKGRP'} = 'homeip.net';
73 $sambasettings{'NETBIOSNAME'} = 'IPFIRE';
74 $sambasettings{'SRVSTRING'} = 'Samba Server running on IPFire 2.0';
75 $sambasettings{'INTERFACES'} = '';
76 $sambasettings{'SECURITY'} = 'share';
77 $sambasettings{'OSLEVEL'} = '65';
78 $sambasettings{'GREEN'} = 'on';
79 $sambasettings{'BLUE'} = 'off';
80 $sambasettings{'ORANGE'} = 'off';
81 $sambasettings{'VPN'} = 'off';
82 $sambasettings{'WINSSRV'} = "$netsettings{'GREEN_NETADDRESS'}";
83 $sambasettings{'WINSSUPPORT'} = 'off';
84 $sambasettings{'OTHERINTERFACES'} = '';
85 $sambasettings{'GUESTACCOUNT'} = 'samba';
86 $sambasettings{'MAPTOGUEST'} = 'Never';
87 $sambasettings{'BINDINTERFACESONLY'} = 'True';
88 ### Values that have to be initialized
89 $sambasettings{'ACTION'} = '';
91 &General
::readhash
("${General::swroot}/samba/settings", \
%sambasettings);
92 &Header
::getcgihash
(\
%sambasettings);
94 &Header
::openpage
('Samba', 1, '');
95 &Header
::openbigbox
('100%', 'left', '', $errormessage);
97 ############################################################################################################################
98 ############################################# Samba Rootskript aufrufe für SU-Actions ######################################
100 if ($sambasettings{'ACTION'} eq 'smbuserdisable'){system('/usr/local/bin/sambactrl smbuserdisable $sambasettings{"NAME"}');}
101 if ($sambasettings{'ACTION'} eq 'smbuserenable'){system('/usr/local/bin/sambactrl smbuserenable $sambasettings{"NAME"}');}
102 if ($sambasettings{'ACTION'} eq 'smbuserdelete'){system('/usr/local/bin/sambactrl smbuserdelete $sambasettings{"NAME"}');}
103 if ($sambasettings{'ACTION'} eq 'smbuseradd'){system('/usr/local/bin/sambactrl smbuseradd $username $password');}
104 if ($sambasettings{'ACTION'} eq 'smbchangepw'){system('/usr/local/bin/sambactrl smbchangepw $username $password');}
105 if ($sambasettings{'ACTION'} eq 'smbrestart'){system('/usr/local/bin/sambactrl smbrestart');}
106 if ($sambasettings{'ACTION'} eq 'smbstart'){system('/usr/local/bin/sambactrl smbstart');}
107 if ($sambasettings{'ACTION'} eq 'smbstop'){system('/usr/local/bin/sambactrl smbstop');}
108 # smbsharechange is directly called by the if clause
110 ############################################################################################################################
111 ############################################## Samba Share neu anlegen #####################################################
113 if ($sambasettings{'ACTION'} eq 'smbshareadd')
116 open (FILE
, ">>${General::swroot}/samba/shares") or die "Can't save the shares settings: $!";
120 $sambasettings{'SHAREOPTION'}
125 system('/usr/local/bin/sambactrl smbsharechange');
129 @shares = `grep -n '^\\[' $sharefile`;
130 foreach $shareentry (@shares)
132 @shareline = split( /\:/, $shareentry );
133 push(@Zeilen,$shareline[0]);push(@Shares,$shareline[1]);
137 ############################################################################################################################
138 ################################################## Samba Share löschen #####################################################
140 if ($sambasettings{'ACTION'} eq 'smbsharedel')
145 my $sharename = "$sambasettings{'NAME'}";
149 for(my $i = 0; $i <= $#Shares; $i++)
152 $Shares[$i]=~s/\s//g;
153 if ( "$Shares[$i]" eq "$sharename" )
155 my $Zeilenbegin = $Zeilen[$i]-2;
156 my $Zeilenende = $EOF-$Zeilen[$i+1]+1;
157 my $Zeilenende2 = $Zeilenende-1;
159 if ( $Zeilen[$i] eq $Zeilen[$#Shares] )
161 $sharehead = qx(head
-$Zeilenbegin $sharefile);
162 $sharetext = $sharehead;
164 elsif ($Zeilen[$i] eq 1 )
166 $sharehead = qx(tail
-$Zeilenende $sharefile | head
-$Zeilenende2);
167 $sharetext = $sharehead;
171 $sharehead = qx(head
-$Zeilenbegin $sharefile);$sharebody = qx(tail
-$Zeilenende $sharefile | head
-$Zeilenende2);
172 $sharetext = "$sharehead\n$sharebody";
177 open (FILE
, ">${General::swroot}/samba/shares") or die "Can't delete the share settings: $!";
184 system('/usr/local/bin/sambactrl smbsharechange');
188 @shares = `grep -n '^\\[' $sharefile`;
189 foreach $shareentry (@shares)
191 @shareline = split( /\:/, $shareentry );
192 push(@Zeilen,$shareline[0]);push(@Shares,$shareline[1]);
195 ############################################################################################################################
196 ################################################## Sambashare ändern #######################################################
198 if ($sambasettings{'ACTION'} eq 'smbsharechange')
202 my $sharename = "$sambasettings{'NAME'}";
207 for(my $i = 0; $i <= $#Shares; $i++)
210 $Shares[$i]=~s/\s//g;
211 if ( "$Shares[$i]" eq "$sharename" )
213 my $Zeilenbegin = $Zeilen[$i]-2;
214 my $Zeilenende = $EOF-$Zeilen[$i+1]+1;
215 my $Zeilenende2 = $Zeilenende-1;
217 if ( $Zeilen[$i] eq $Zeilen[$#Shares] )
219 $sharehead = qx(head
-$Zeilenbegin $sharefile);
220 $sharetext = $sharehead;
222 elsif ($Zeilen[$i] eq 1 )
224 $sharehead = qx(tail
-$Zeilenende $sharefile | head
-$Zeilenende2);
225 $sharetext = $sharehead;
229 $sharehead = qx(head
-$Zeilenbegin $sharefile);$sharebody = qx(tail
-$Zeilenende $sharefile | head
-$Zeilenende2);
230 $sharetext = "$sharehead\n$sharebody";
235 open (FILE
, ">${General::swroot}/samba/shares") or die "Can't delete the share settings: $!";
239 $sambasettings{'SHAREOPTION'}
243 system('/usr/local/bin/sambactrl smbsharechange');
247 @shares = `grep -n '^\\[' $sharefile`;
248 foreach $shareentry (@shares)
250 @shareline = split( /\:/, $shareentry );
251 push(@Zeilen,$shareline[0]);push(@Shares,$shareline[1]);
255 ############################################################################################################################
256 ##################################### Umsetzen der Werte von Checkboxen und Dropdowns ######################################
258 if ($sambasettings{'ACTION'} eq $Lang::tr
{'save'})
260 $sambasettings{'INTERFACES'} = '';
261 if ($checked{'GREEN'}){ $sambasettings{'INTERFACES'} = "$sambasettings{'INTERFACES'} $netsettings{'GREEN_DEV'}";}
262 if ($checked{'BLUE'}){ $sambasettings{'INTERFACES'} = "$sambasettings{'INTERFACES'} $netsettings{'BLUE_DEV'}";}
263 if ($checked{'ORANGE'}){ $sambasettings{'INTERFACES'} = "$sambasettings{'INTERFACES'} $netsettings{'ORANGE_DEV'}";}
264 if ($checked{'VPN'}){ $sambasettings{'INTERFACES'} = "$sambasettings{'INTERFACES'} $ovpnsettings{'DDEVICE'}";}
265 if ($sambasettings{'OTHERINTERFACES'} ne ''){ $sambasettings{'INTERFACES'} = "$sambasettings{'INTERFACES'} $sambasettings{'OTHERINTERFACES'}";}
267 ############################################################################################################################
268 ############################################# Schreiben der Samba globals ##################################################
270 &General
::writehash
("${General::swroot}/samba/settings", \
%sambasettings);
272 open (FILE
, ">${General::swroot}/samba/global") or die "Can't save the global settings: $!";
276 # global.settings by IPFire Project
279 netbios name = $sambasettings{'NETBIOSNAME'}
280 server string = $sambasettings{'SRVSTRING'}
281 workgroup = $sambasettings{'WORKGRP'}
284 os level = $sambasettings{'OSLEVEL'}
287 preferred master = yes
291 kernel oplocks = false
292 map to guest = $sambasettings{'MAPTOGUEST'}
296 security = $sambasettings{'SECURITY'}
297 encrypt passwords = yes
298 guest account = $sambasettings{'GUESTACCOUNT'}
299 unix password sync = no
302 bind interfaces only = $sambasettings{'BINDINTERFACESONLY'}
303 interfaces = $sambasettings{'INTERFACES'}
304 socket options = TCP_NODELAY IPTOS_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192 SO_KEEPALIVE
307 wins support = $sambasettings{'WINSSUPPORT'}
310 log file = /var/log/samba/samba-log.%m
311 lock directory = /var/lock/samba
312 pid directory = /var/run/
318 &General
::readhash
("${General::swroot}/samba/settings", \
%sambasettings);
321 &Header
::openbox
('100%', 'left', $Lang::tr
{'error messages'});
322 print "<class name='base'>$errormessage\n";
323 print " </class>\n";
327 ############################################################################################################################
328 ########################################## Aktivieren von Checkboxen und Dropdowns #########################################
330 $checked{'WINSSUPPORT'}{$sambasettings{'WINSSUPPORT'}} = "checked='checked' ";
331 $checked{'GREEN'}{$sambasettings{'GREEN'}} = "checked='checked' ";
332 $checked{'BLUE'}{$sambasettings{'BLUE'}} = "checked='checked' ";
333 $checked{'ORANGE'}{$sambasettings{'ORANGE'}} = "checked='checked' ";
334 $checked{'VPN'}{$sambasettings{'VPN'}} = "checked='checked' ";
336 $selected{'MAPTOGUEST'}{$sambasettings{'MAPTOGUEST'}} = "selected='selected'";
337 $selected{'SECURITY'}{$sambasettings{'SECURITY'}} = "selected='selected'";
339 ############################################################################################################################
340 ################################### Aufbau der HTML Seite für globale Sambaeinstellungen ###################################
342 &Header
::openbox
('100%', 'center', 'Samba');
345 <table width='500px' cellspacing='0'><br>
348 if ( $message ne "" ) {
349 print "<tr><td colspan='2' align='left'><font color='red'>$message</font>";
352 <tr bgcolor='${Header::table1colour}'><td colspan='2' align='left'><b>Alle Dienste</b></td></tr>
353 </table><table width='500px' cellspacing='0'>
357 foreach $key (sort keys %servicenames)
359 print "<tr><td align='left'>$key";
360 my $shortname = $servicenames{$key};
361 my $status = &isrunning
($shortname);
362 print "$status</td>";
364 <td><form method='post' action='$ENV{'SCRIPT_NAME'}'>
365 <input type='hidden' name='ACTION' value='restart $shortname'>
366 <input type='image' src='/images/reload.gif'>
372 <form method='post' action='$ENV{'SCRIPT_NAME'}'>
373 <table width='500px' cellspacing='0'><br>
374 <tr><td colspan='2' align='center'>
375 <input type='submit' name='ACTION' value='Start' />
376 <input type='submit' name='ACTION' value='Stop' />
377 <input type='submit' name='ACTION' value='$Lang::tr{'restart'}' />
378 </td></tr></form></table>
380 <form method='post' action='$ENV{'SCRIPT_NAME'}'>
381 <table width='500px' cellspacing='0'><br>
382 <tr bgcolor='${Header::table1colour}'><td colspan='2' align='left'><b>Basisoptionen</b></td></tr>
383 <tr><td align='left'>Workgroup:</td><td><input type='text' name='WORKGRP' value='$sambasettings{'WORKGRP'}' size="30"></td></tr>
384 <tr><td align='left'>NetBIOS-Name:</td><td><input type='text' name='NETBIOSNAME' value='$sambasettings{'NETBIOSNAME'}' size="30"></td></tr>
385 <tr><td align='left'>Server-String:</td><td><input type='text' name='SRVSTRING' value='$sambasettings{'SRVSTRING'}' size="30"></td></tr>
386 <tr><td align='left'>Interfaces:</td><td><input type='checkbox' name='VPN' $checked{'VPN'}{'on'}><font size='2' color='$Header::colourovpn'><b> OpenVpn - $ovpnsettings{'DDEVICE'}</td></tr>
387 <tr><td align='left'></td><td><input type='checkbox' name='GREEN' $checked{'GREEN'}{'on'}><font size='2' color='$Header::colourgreen'><b> $Lang::tr{'green'} - $netsettings{'GREEN_DEV'}</td></tr>
390 if (&Header
::blue_used
()){
392 <tr><td align='left'></td><td><input type='checkbox' name='BLUE' $checked{'BLUE'}{'on'}><font size='2' color='$Header::colourblue'><b> $Lang::tr{'wireless'} - $netsettings{'BLUE_DEV'}</td></tr>
396 if (&Header
::orange_used
()){
398 <tr><td align='left'></td><td><input type='checkbox' name='ORANGE' $checked{'ORANGE'}{'on'}><font size='2' color='$Header::colourorange'><b> $Lang::tr{'dmz'} - $netsettings{'ORANGE_DEV'}</td></tr>
403 <tr><td align='center'>weitere</td><td><input type='text' name='OTHERINTERFACES' value='$sambasettings{'OTHERINTERFACES'}' size="30"></td></tr>
404 <tr><td align='left'><br></td><td></td></tr>
405 <tr bgcolor='${Header::table1colour}'><td colspan='2' align='left'><b>Sicherheitsoptionen</b></td></tr>
406 <tr><td align='left'>Security:</td><td><select name='SECURITY'>
407 <option value='share' $selected{'SECURITY'}{'share'}>Share</option>
408 <option value='user' $selected{'SECURITY'}{'user'}>User</option>
409 <option value='domain' $selected{'SECURITY'}{'domain'}>Domain</option>
410 <option value='ADS' $selected{'SECURITY'}{'ADS'}>ADS</option>
411 <option value='server' $selected{'SECURITY'}{'server'}>Server</option>
414 <tr><td align='left'>Map to guest:</td><td><select name='MAPTOGUEST'>
415 <option value='Never' $selected{'MAPTOGUEST'}{'Never'}>Never</option>
416 <option value='Bad User' $selected{'MAPTOGUEST'}{'Bad User'}>Bad User</option>
417 <option value='Bad Password' $selected{'MAPTOGUEST'}{'Bad Password'}>Bad Password</option>
419 <tr><td align='left'><br></td><td></td></tr>
420 <tr bgcolor='${Header::table1colour}'><td colspan='2' align='left'><b>Browsingoptionen</b></td></tr>
421 <tr><td align='left'>OS Level:</td><td><input type='text' name='OSLEVEL' value='$sambasettings{'OSLEVEL'}' size="30"></td></tr>
422 <tr><td align='left'><br></td><td></td></tr>
423 <tr bgcolor='${Header::table1colour}'><td colspan='2' align='left'><b>WINS-Optionen</b></td></tr>
424 <tr><td align='left'>WINS-Server:</td><td><input type='text' name='WINSSRV' value='$sambasettings{'WINSSRV'}' size="30"></td></tr>
425 <tr><td align='left'>WINS-Support:</td><td>on <input type='radio' name='WINSSUPPORT' value='on' $checked{'WINSSUPPORT'}{'on'}>/
426 <input type='radio' name='WINSSUPPORT' value='off' $checked{'WINSSUPPORT'}{'off'}> off</td></tr>
427 <tr><td colspan='2' align='center'><input type='submit' name='ACTION' value=$Lang::tr{'save'}></td></tr>
434 ############################################################################################################################
435 ########################################## Benutzerverwaltung für Usersecurity #############################################
437 if ($sambasettings{'SECURITY'} eq 'user')
439 &Header
::openbox
('100%', 'center', 'accounting - user Security');
443 <table width='500px' cellspacing='0'><br>
444 <tr><td colspan='6' align='left'>
445 <tr><td bgcolor='${Header::table1colour}' colspan='6' align='left'><b>Benutzerverwaltung</b>
446 <tr><td><u>Benutzername</u></td><td><u>Passwort</u></td><td><u>Status</u></td><td colspan='3' width="5"><u>Optionen</u></td></tr>
450 system('/usr/local/bin/sambactrl readsmbpasswd');
451 open(FILE
, "</var/ipfire/samba/private/smbpasswd") or die "Can't read user file: $!";
455 system('/usr/local/bin/sambactrl locksmbpasswd');
456 foreach $userentry (sort @user)
458 @userline = split( /\:/, $userentry );
460 <tr><td align='left'>$userline[0]</td><td>
463 if ($userline[2] =~ m/N/){
465 nicht gesetzt</td><td>
474 if ($userline[2] =~ m/D/){
477 <td><form method='post' action='$ENV{'SCRIPT_NAME'}'>
478 <input type='hidden' name='NAME' value='$userline[0]'>
479 <input type='hidden' name='ACTION' value='userdisable'>
480 <input type='image' alt='Deaktivieren' src='/images/off.gif'>
487 <td><form method='post' action='$ENV{'SCRIPT_NAME'}'>
488 <input type='hidden' name='NAME' value='$userline[0]'>
489 <input type='hidden' name='ACTION' value='userenable'>
490 <input type='image' alt='Aktivieren' src='/images/on.gif'>
496 <td><form method='post' action='$ENV{'SCRIPT_NAME'}'>
497 <input type='hidden' name='NAME' value='$userline[0]'>
498 <input type='hidden' name='ACTION' value='userchangepw'>
499 <input type='image' alt='Bearbeiten' src='/images/edit.gif'>
501 <td><form method='post' action='$ENV{'SCRIPT_NAME'}'>
502 <input type='hidden' name='NAME' value='$userline[0]'>
503 <input type='hidden' name='ACTION' value='userdelete'>
504 <input type='image' alt='Loeschen' src='/images/delete.gif'>
512 <table width='50px' cellspacing='0'><br>
513 <tr><td align='center'><form method='post' action='$ENV{'SCRIPT_NAME'}'>
514 <input type='hidden' name='ACTION' value='useradd'>
515 <input type='image' alt='Benutzer anlegen' src='/images/add.gif'></form></td>
516 <td align='center'><form method='post' action='$ENV{'SCRIPT_NAME'}'>
517 <input type='hidden' name='ACTION' value='usercaption'>
518 <input type='image' alt='Legende' src='/images/info.gif'></form>
523 if ($sambasettings{'ACTION'} eq 'usercaption')
526 <table width='500px' cellspacing='0'><br>
527 <tr><td><b>Legende:</b></td></tr>
528 <tr><td><img src='/images/add.gif'>Benutzer neu anlegen</td></tr>
529 <tr><td><img src='/images/on.gif'>Benutzer aktivieren</td></tr>
530 <tr><td><img src='/images/off.gif'>Benutzer deaktivieren</td></tr>
531 <tr><td><img src='/images/edit.gif'>Passwort wechseln</td></tr>
532 <tr><td><img src='/images/delete.gif'>Benutzer loeschen</td></tr>
538 if ($sambasettings{'ACTION'} eq 'userchangepw')
540 my $username = "$sambasettings{'NAME'}";
541 my $password = 'samba';
544 <form method='post' action='$ENV{'SCRIPT_NAME'}'>
545 <table width='500px' cellspacing='0'><br>
546 <tr bgcolor='${Header::table1colour}'><td colspan='2' align='left'><b>Passwort wechseln</b></td></tr>
547 <tr><td align='left'>Benutzername</td><td><input type='text' name='USERNAME' value='$username' size="30"></td></tr>
548 <tr><td align='left'>Passwort</td><td><input type='password' name='PASSWORD' value='$password' size="30"></td></tr>
549 <tr><td colspan='2' align='center'><input type='submit' name='ACTION' value='smbchangepw'></td></tr></form>
554 if ($sambasettings{'ACTION'} eq 'useradd')
556 my $username = "User";
557 my $password = 'samba';
560 <form method='post' action='$ENV{'SCRIPT_NAME'}'>
561 <table width='500px' cellspacing='0'><br>
562 <tr bgcolor='${Header::table1colour}'><td colspan='2' align='left'><b>Benutzer neu anlegen</b></td></tr>
563 <tr><td align='left'>Benutzername</td><td><input type='text' name='USERNAME' value='$username' size="30"></td></tr>
564 <tr><td align='left'>Passwort</td><td><input type='password' name='PASSWORD' value='$password' size="30"></td></tr>
565 <tr><td colspan='2' align='center'><input type='submit' name='ACTION' value='smbuseradd'></td></tr></form>
574 ############################################################################################################################
575 ############################################### Verwalten von Freigaben ####################################################
577 &Header
::openbox
('100%', 'center', 'Shares');
581 <table width='500px' cellspacing='0'><br>
582 <tr><td bgcolor='${Header::table1colour}' colspan='3' align='left'><b>Shareverwaltung</b>
583 <tr><td><u>Names des Shares</u></td><td colspan='2' width="5"><u>Optionen</u></td></tr>
588 foreach $shareentry (sort @Shares)
591 <tr><td align='left'>$shareentry</td>
592 <td><form method='post' action='$ENV{'SCRIPT_NAME'}'>
593 <input type='hidden' name='NAME' value='$shareentry'>
594 <input type='hidden' name='ACTION' value='sharechange'>
595 <input type='image' alt='Bearbeiten' src='/images/edit.gif'>
597 <td><form method='post' action='$ENV{'SCRIPT_NAME'}'>
598 <input type='hidden' name='NAME' value='$shareentry'>
599 <input type='hidden' name='ACTION' value='smbsharedel'>
600 <input type='image' alt='Loeschen' src='/images/delete.gif'>
608 <table width='50px' cellspacing='0'><br>
609 <tr><td align='center'><form method='post' action='$ENV{'SCRIPT_NAME'}'>
610 <input type='hidden' name='ACTION' value='shareadd'>
611 <input type='image' alt='neuen Share anlegen' src='/images/add.gif'></form></td>
612 <td align='center'><form method='post' action='$ENV{'SCRIPT_NAME'}'>
613 <input type='hidden' name='ACTION' value='sharecaption'>
614 <input type='image' alt='Legende' src='/images/info.gif'></form>
619 if ($sambasettings{'ACTION'} eq 'sharecaption')
622 <table width='500px' cellspacing='0'><br>
623 <tr><td><b>Legende:</b></td></tr>
624 <tr><td><img src='/images/add.gif'>Share neu anlegen</td></tr>
625 <tr><td><img src='/images/edit.gif'>Share bearbeiten</td></tr>
626 <tr><td><img src='/images/delete.gif'>Share loeschen</td></tr>
632 if ($sambasettings{'ACTION'} eq 'shareadd' || $sambasettings{'ACTION'} eq 'optioncaption' )
636 <table width='500px' cellspacing='0'><br>
637 <tr bgcolor='${Header::table1colour}'><td colspan='2' align='left'><b>neuen Share anlegen</b></td></tr>
638 <tr><td colspan='2' align='center'></td></tr>
639 <form method='post' action='$ENV{'SCRIPT_NAME'}'>
640 <tr><td colspan='2' align='center'>Anzeige der Optionen fuer Shares<input type='hidden' name='ACTION' value='optioncaption'>
641 <input type='image' alt='Legende' src='/images/info.gif'></td></tr></form>
642 <form method='post' action='$ENV{'SCRIPT_NAME'}'>
643 <tr><td colspan='2' align='center'><textarea name="SHAREOPTION" cols="50" rows="15" Wrap="off">$defaultoption</textarea></td></tr>
645 <table width='50px' cellspacing='0'><br>
646 <tr><td align='center'><input type='submit' name='ACTION' value='smbshareadd'></td></tr></form>
652 if ($sambasettings{'ACTION'} eq 'sharechange' || $sambasettings{'ACTION'} eq 'optioncaption2' )
654 my $sharename = "$sambasettings{'NAME'}";
658 for(my $i = 0; $i <= $#Shares; $i++)
661 $Shares[$i]=~s/\s//g;
662 if ( "$Shares[$i]" eq "$sharename" )
664 my $Zeilenbegin = $Zeilen[$i+1]-2;
665 my $Zeilenende = $Zeilen[$i+1]-$Zeilen[$i];
666 if ( $Zeilen[$i] eq $Zeilen[$#Shares] )
667 {$Zeilenende = $EOF-$Zeilen[$#Shares]+1;$Zeilenbegin = $EOF-$Zeilen[$#Shares]; $shareoption = qx(tail
-$Zeilenende $sharefile | head
-$Zeilenbegin);}
668 else{$shareoption = qx(head
-$Zeilenbegin $sharefile | tail
-$Zeilenende);}
674 <table width='500px' cellspacing='0'><br>
675 <tr bgcolor='${Header::table1colour}'><td colspan='2' align='left'><b>Share bearbeiten</b></td></tr>
676 <tr><td colspan='2' align='center'></td></tr>
677 <form method='post' action='$ENV{'SCRIPT_NAME'}'>
678 <tr><td colspan='2' align='center'>Anzeige der Optionen fuer Shares<input type='hidden' name='ACTION' value='optioncaption2'>
679 <input type='image' alt='Legende' src='/images/info.gif'></td></tr></form>
680 <form method='post' action='$ENV{'SCRIPT_NAME'}'>
681 <tr><td colspan='2' align='center'><textarea name="SHAREOPTION" cols="50" rows="15" Wrap="off">$shareoption</textarea></td></tr>
683 <table width='50px' cellspacing='0'><br>
684 <tr><td align='center'>
685 <input type='hidden' name='NAME' value='$sharename'>
686 <input type='submit' name='ACTION' value='smbsharechange'></td></tr></form>
692 if ($sambasettings{'ACTION'} eq 'optioncaption' || $sambasettings{'ACTION'} eq 'optioncaption2')
695 <table width='500px' cellspacing='0'><br>
696 <tr><td><b>Legende:</b></td></tr>
697 <tr><td><u>Option</u></td><td><u>Bedeutung</u> / <u>Beispiel</u></td></tr>
698 <tr><td>comment</td><td>Kommentar</td></tr>
699 <tr><td></td><td>comment = Mein neues Share</td></tr>
700 <tr><td><br></td><td></td></tr>
701 <tr><td>path</td><td>Pfad zum Verzeichnis</td></tr>
702 <tr><td></td><td>path = /share/neu</td></tr>
703 <tr><td><br></td><td></td></tr>
704 <tr><td>writeable</td><td>Verzeichnis schreibbar</td></tr>
705 <tr><td></td><td>writeable = yes</td></tr>
706 <tr><td><br></td><td></td></tr>
707 <tr><td>browseable</td><td>sichtbar in Verzeichnisliste</td></tr>
708 <tr><td></td><td>browsable = yes</td></tr>
709 <tr><td><br></td><td></td></tr>
710 <tr><td>user</td><td>Besitzer der Freigabe</td></tr>
711 <tr><td></td><td>user = samba</td></tr>
712 <tr><td><br></td><td></td></tr>
713 <tr><td>valid users</td><td>Liste der Zugriffsberechtigten</td></tr>
714 <tr><td></td><td>valid users = samba, user1</td></tr>
715 <tr><td><br></td><td></td></tr>
716 <tr><td>write list</td><td>Liste der Schreibberechtigten</td></tr>
717 <tr><td></td><td>write list = samba</td></tr>
718 <tr><td><br></td><td></td></tr>
719 <tr><td>read list</td><td>Liste der nur Leseberechtigten</td></tr>
720 <tr><td></td><td>read list = user1</td></tr>
721 <tr><td><br></td><td></td></tr>
722 <tr><td>admin users</td><td>Liste der Benutzer mit SuperUser Rechten</td></tr>
723 <tr><td></td><td>admin users = user1</td></tr>
724 <tr><td><br></td><td></td></tr>
725 <tr><td>invalid users</td><td>Liste der Benutzer denen der Zugriff verweigert wird</td></tr>
726 <tr><td></td><td>invalid users = user2</td></tr>
727 <tr><td><br></td><td></td></tr>
728 <tr><td>force user</td><td>Standartbenutzer fuer alle Dateien</td></tr>
729 <tr><td></td><td>force user = samba</td></tr>
730 <tr><td><br></td><td></td></tr>
731 <tr><td>directory mask</td><td>UNIX Verzeichnisberchtigung beim Erzeugen</td></tr>
732 <tr><td></td><td>directory mask = 0777</td></tr>
733 <tr><td><br></td><td></td></tr>
734 <tr><td>create mask</td><td>UNIX Dateiberchtigung beim Erzeugen</td></tr>
735 <tr><td></td><td>create mask = 0777</td></tr>
736 <tr><td><br></td><td></td></tr>
737 <tr><td>guest ok</td><td>Annonymer Zugriff</td></tr>
738 <tr><td></td><td>guest ok = yes</td></tr>
745 &Header
::closebigbox
();
746 &Header
::closepage
();
748 ############################################################################################################################
749 ############################################ Subfunktion für Sambadienste ##################################################
754 my $status = "<td align='center' bgcolor='${Header::colourred}'><font color='white'><b>$Lang::tr{'stopped'}</b></font></td>";
762 if (open(FILE
, "/var/run/${cmd}.pid"))
764 $pid = <FILE
>; chomp $pid;
766 if (open(FILE
, "/proc/${pid}/status"))
770 if (/^Name:\W+(.*)/) {
774 if ($testcmd =~ /$exename/)
776 $status = "<td align='center' bgcolor='${Header::colourgreen}'><font color='white'><b>$Lang::tr{'running'}</b></font></td>";