X-Git-Url: http://git.ipfire.org/?a=blobdiff_plain;f=html%2Fcgi-bin%2Fsamba.cgi;h=0ea3cc789c5655eccf0633a85355833894380316;hb=8936e2d21b57d96d86638208b427373bb16ac7ab;hp=062b4c85ad695bace0908102a368fb5b9ff9ae93;hpb=eef84767b0425924af530a70583cf9a46c010797;p=people%2Fpmueller%2Fipfire-2.x.git diff --git a/html/cgi-bin/samba.cgi b/html/cgi-bin/samba.cgi index 062b4c85ad..0ea3cc789c 100644 --- a/html/cgi-bin/samba.cgi +++ b/html/cgi-bin/samba.cgi @@ -32,38 +32,27 @@ my %sambasettings = (); my %cgisettings = (); my %checked = (); my %netsettings = (); -my %ovpnsettings = (); my %color = (); my %mainsettings = (); my $message = ""; my $errormessage = ""; -my $Status = qx(/usr/local/bin/sambactrl smbstatus); -$Status = &Header::cleanhtml($Status); - my $userentry = ""; my @user = (); my @userline = (); my $userfile = "${General::swroot}/samba/private/smbpasswd"; my %selected= () ; -my $defaultoption= "[Share]\npath = /var/ipfire/samba/share1\ncomment = Share - Public Access\nbrowseable = yes\nwriteable = yes\ncreate mask = 0777\ndirectory mask = 0777\npublic = yes\nforce user = samba"; +my $defaultoption= "[My Share]\npath = \ncomment = Share - Public Access\nbrowseable = yes\nwriteable = yes\ncreate mask = 0644\ndirectory mask = 0755\npublic = yes\nforce user = samba"; my %shares = (); &General::readhash("${General::swroot}/ethernet/settings", \%netsettings); -&General::readhash("${General::swroot}/ovpn/settings", \%ovpnsettings); &General::readhash("${General::swroot}/main/settings", \%mainsettings); &General::readhash("/srv/web/ipfire/html/themes/".$mainsettings{'THEME'}."/include/colors.txt", \%color); -my @ovpnnetwork = split(/\//,$ovpnsettings{'DOVPN_SUBNET'}); -my @ovpnip = split(/\./,$ovpnnetwork[0]); -$ovpnip[3]=$ovpnip[3]+1; - ############################################################################################################################ ############################################# Samba Dienste fr Statusberprfung ########################################## -my %servicenames = ('SMB Daemon' => 'smbd', 'NetBIOS Nameserver' => 'nmbd', 'Winbind Daemon' => 'winbindd'); - &Header::showhttpheaders(); ############################################################################################################################ @@ -72,54 +61,35 @@ my %servicenames = ('SMB Daemon' => 'smbd', 'NetBIOS Nameserver' => 'nmbd', 'Win $sambasettings{'WORKGRP'} = 'homeip.net'; $sambasettings{'INTERFACES'} = ''; $sambasettings{'SECURITY'} = 'user'; -$sambasettings{'OSLEVEL'} = '33'; -$sambasettings{'GREEN'} = 'on'; -$sambasettings{'BLUE'} = 'off'; -$sambasettings{'ORANGE'} = 'off'; -$sambasettings{'VPN'} = 'off'; $sambasettings{'REMOTEANNOUNCE'} = ''; $sambasettings{'REMOTESYNC'} = ''; -$sambasettings{'PASSWORDSYNC'} = 'off'; -$sambasettings{'OTHERINTERFACES'} = '127.0.0.1'; $sambasettings{'GUESTACCOUNT'} = 'samba'; $sambasettings{'MAPTOGUEST'} = 'Bad User'; -$sambasettings{'WIDELINKS'} = 'on'; -$sambasettings{'UNIXEXTENSION'} = 'off'; $sambasettings{'ENCRYPTION'} = 'optional'; ### Values that have to be initialized $sambasettings{'ACTION'} = ''; my $LOGLINES = '50'; -################################################## Samba PDC Variablen ##################################################### - -my $PDCOPTIONS = `cat ${General::swroot}/samba/pdc`; - - ############################################################################################################################ &General::readhash("${General::swroot}/samba/settings", \%sambasettings); &Header::getcgihash(\%sambasettings); -sub refreshpage{&Header::openbox( 'Waiting', 1, "" );print "

$Lang::tr{'pagerefresh'}
";&Header::closebox();} - -if (($sambasettings{'WIDELINKS'} eq 'on') & ($sambasettings{'UNIXEXTENSION'} eq 'on')) - {$errormessage = "$errormessage
Don't enable 'Wide links' and 'Unix extension' at the same time"; } - &Header::openpage('Samba', 1, ''); &Header::openbigbox('100%', 'left', '', $errormessage); ############################################################################################################################ ############################################# Samba Rootskript aufrufe fr SU-Actions ####################################### -if ($sambasettings{'ACTION'} eq 'smbuserdisable'){system("/usr/local/bin/sambactrl smbuserdisable $sambasettings{'NAME'}");refreshpage();} -if ($sambasettings{'ACTION'} eq 'smbuserenable'){system("/usr/local/bin/sambactrl smbuserenable $sambasettings{'NAME'}");refreshpage();} -if ($sambasettings{'ACTION'} eq 'smbuseradd'){system("/usr/local/bin/sambactrl smbuseradd $sambasettings{'USERNAME'} $sambasettings{'PASSWORD'} $sambasettings{'GROUP'} $sambasettings{'SHELL'}");refreshpage();} -if ($sambasettings{'ACTION'} eq 'smbpcadd'){system("/usr/local/bin/sambactrl smbpcadd $sambasettings{'PCNAME'} $sambasettings{'GROUP'} $sambasettings{'SHELL'}");refreshpage();} -if ($sambasettings{'ACTION'} eq 'smbchangepw'){system("/usr/local/bin/sambactrl smbchangepw $sambasettings{'USERNAME'} $sambasettings{'PASSWORD'}");refreshpage();} -if ($sambasettings{'ACTION'} eq 'smbrestart'){system("/usr/local/bin/sambactrl smbrestart");refreshpage();} -if ($sambasettings{'ACTION'} eq 'smbstart'){system("/usr/local/bin/sambactrl smbstart");refreshpage();} -if ($sambasettings{'ACTION'} eq 'smbstop'){system("/usr/local/bin/sambactrl smbstop");refreshpage();} -if ($sambasettings{'ACTION'} eq 'smbreload'){system("/usr/local/bin/sambactrl smbreload");refreshpage();} +if ($sambasettings{'ACTION'} eq 'smbuserdisable'){system("/usr/local/bin/sambactrl smbuserdisable $sambasettings{'NAME'}");} +if ($sambasettings{'ACTION'} eq 'smbuserenable'){system("/usr/local/bin/sambactrl smbuserenable $sambasettings{'NAME'}");} +if ($sambasettings{'ACTION'} eq 'smbuseradd'){system("/usr/local/bin/sambactrl smbuseradd $sambasettings{'USERNAME'} $sambasettings{'PASSWORD'} $sambasettings{'GROUP'} $sambasettings{'SHELL'}");} +if ($sambasettings{'ACTION'} eq 'smbpcadd'){system("/usr/local/bin/sambactrl smbpcadd $sambasettings{'PCNAME'} $sambasettings{'GROUP'} $sambasettings{'SHELL'}");} +if ($sambasettings{'ACTION'} eq 'smbchangepw'){system("/usr/local/bin/sambactrl smbchangepw $sambasettings{'USERNAME'} $sambasettings{'PASSWORD'}");} +if ($sambasettings{'ACTION'} eq 'smbrestart'){system("/usr/local/bin/sambactrl smbrestart");} +if ($sambasettings{'ACTION'} eq 'smbstart'){system("/usr/local/bin/sambactrl smbstart");} +if ($sambasettings{'ACTION'} eq 'smbstop'){system("/usr/local/bin/sambactrl smbstop");} +if ($sambasettings{'ACTION'} eq 'smbreload'){system("/usr/local/bin/sambactrl smbreload");} if ($sambasettings{'ACTION'} eq 'join') { $message .= &joindomain($sambasettings{'USERNAME'}, $sambasettings{'PASSWORD'}); } @@ -127,30 +97,19 @@ if ($sambasettings{'ACTION'} eq 'join') { ############################################################################################################################ ########################################### Samba Benutzer oder PC l�chen ################################################# -if ($sambasettings{'ACTION'} eq 'userdelete'){system("/usr/local/bin/sambactrl smbuserdelete $sambasettings{'NAME'}");refreshpage();} +if ($sambasettings{'ACTION'} eq 'userdelete'){system("/usr/local/bin/sambactrl smbuserdelete $sambasettings{'NAME'}");} ############################################################################################################################ ##################################### Umsetzen der Werte von Checkboxen und Dropdowns ###################################### if ($sambasettings{'ACTION'} eq $Lang::tr{'save'}) { -$sambasettings{'INTERFACES'} = ''; -if ($sambasettings{'GREEN'} eq 'on'){ $sambasettings{'INTERFACES'} .= " $netsettings{'GREEN_DEV'}";} -if ($sambasettings{'BLUE'} eq 'on'){ $sambasettings{'INTERFACES'} .= " $netsettings{'BLUE_DEV'}";} -if ($sambasettings{'ORANGE'} eq 'on'){ $sambasettings{'INTERFACES'} .= " $netsettings{'ORANGE_DEV'}";} -if ($sambasettings{'VPN'} eq 'on'){$sambasettings{'INTERFACES'} .= " ";} -if ($sambasettings{'OTHERINTERFACES'} ne ''){ $sambasettings{'INTERFACES'} .= " $sambasettings{'OTHERINTERFACES'}";} - ############################################################################################################################ ##################################### Schreiben settings und bersetzen fr smb.conf ####################################### delete $sambasettings{'__CGI__'};delete $sambasettings{'x'};delete $sambasettings{'y'}; &General::writehash("${General::swroot}/samba/settings", \%sambasettings); -if ($sambasettings{'PASSWORDSYNC'} eq 'on'){ $sambasettings{'PASSWORDSYNC'} = "true";} else { $sambasettings{'PASSWORDSYNC'} = "false";} -if ($sambasettings{'WIDELINKS'} eq 'on'){ $sambasettings{'WIDELINKS'} = "yes";} else { $sambasettings{'WIDELINKS'} = "no";} -if ($sambasettings{'UNIXEXTENSION'} eq 'on'){ $sambasettings{'UNIXEXTENSION'} = "yes";} else { $sambasettings{'UNIXEXTENSION'} = "no";} - ############################################################################################################################ ############################################# Schreiben der Samba globals ################################################## @@ -167,15 +126,11 @@ workgroup = $sambasettings{'WORKGRP'} realm = $mainsettings{'DOMAINNAME'} passdb backend = smbpasswd -wide links = $sambasettings{'WIDELINKS'} -unix extensions = $sambasettings{'UNIXEXTENSION'} -os level = $sambasettings{'OSLEVEL'} - map to guest = $sambasettings{'MAPTOGUEST'} security = $sambasettings{'SECURITY'} guest account = $sambasettings{'GUESTACCOUNT'} -unix password sync = $sambasettings{'PASSWORDSYNC'} +unix password sync = no bind interfaces only = true interfaces = green0 blue0 127.0.0.0/8 @@ -190,6 +145,12 @@ winbind use default domain = yes # Log to syslog logging = syslog +# Enable support for Apple +vfs objects = catia fruit streams_xattr recycle + +# Enable following symlinks +wide links = yes + END ; @@ -208,7 +169,6 @@ close FILE; system("/usr/local/bin/sambactrl smbsafeconf"); system("/usr/local/bin/sambactrl smbreload"); -refreshpage(); } &General::readhash("${General::swroot}/samba/settings", \%sambasettings); @@ -233,27 +193,6 @@ if ($message) { ############################################################################################################################ ########################################## Aktivieren von Checkboxen und Dropdowns ######################################### -$checked{'PASSWORDSYNC'}{'off'} = ''; -$checked{'PASSWORDSYNC'}{'on'} = ''; -$checked{'PASSWORDSYNC'}{$sambasettings{'PASSWORDSYNC'}} = "checked='checked'"; -$checked{'WIDELINKS'}{'off'} = ''; -$checked{'WIDELINKS'}{'on'} = ''; -$checked{'WIDELINKS'}{$sambasettings{'WIDELINKS'}} = "checked='checked'"; -$checked{'UNIXEXTENSION'}{'off'} = ''; -$checked{'UNIXEXTENSION'}{'on'} = ''; -$checked{'UNIXEXTENSION'}{$sambasettings{'UNIXEXTENSION'}} = "checked='checked'"; -$checked{'GREEN'}{'off'} = ''; -$checked{'GREEN'}{'on'} = ''; -$checked{'GREEN'}{$sambasettings{'GREEN'}} = "checked='checked'"; -$checked{'BLUE'}{'off'} = ''; -$checked{'BLUE'}{'on'} = ''; -$checked{'BLUE'}{$sambasettings{'BLUE'}} = "checked='checked'"; -$checked{'ORANGE'}{'off'} = ''; -$checked{'ORANGE'}{'on'} = ''; -$checked{'ORANGE'}{$sambasettings{'ORANGE'}} = "checked='checked'"; -$checked{'VPN'}{'off'} = ''; -$checked{'VPN'}{'on'} = ''; -$checked{'VPN'}{$sambasettings{'VPN'}} = "checked='checked'"; $selected{'ENCRYPTION'}{'optional'} = ''; $selected{'ENCRYPTION'}{'desired'} = ''; $selected{'ENCRYPTION'}{'required'} = ''; @@ -269,93 +208,143 @@ $selected{'SECURITY'}{$sambasettings{'SECURITY'}} = "selected='selected'"; ################################### Aufbau der HTML Seite fr globale Sambaeinstellungen ################################### &Header::openbox('100%', 'center', $Lang::tr{'samba'}); -print < - - -
$Lang::tr{'all services'}
+ +my %servicenames = ( + "nmbd" => $Lang::tr{'netbios nameserver daemon'}, + "smbd" => $Lang::tr{'smb daemon'}, + "winbindd" => $Lang::tr{'winbind daemon'}, +); + +print < + + + END -; -my $key = ''; -foreach $key (sort keys %servicenames) - { - print ""; - my $shortname = $servicenames{$key}; - my $status = &isrunning($shortname); - print "$status"; - } +foreach my $service (sort keys %servicenames) { + my $status = &isrunning($service); -print < -
-
$Lang::tr{'all services'}
$key
- - - -
-
-
-
- - - - - - - - - - - + print < + + $status + END -; -# +} + print < - - - - -
$Lang::tr{'basic options'}
$Lang::tr{'workgroup'}

Wide linkson / - off
Unix extensionon / - off

$Lang::tr{'security options'}
$Lang::tr{'security'}
$Lang::tr{'encryption'}
$Lang::tr{'map to guest'}
$servicenames{$service}
$Lang::tr{'unix password sync'}on / -# off

$Lang::tr{'network options'}
$Lang::tr{'os level'}
$Lang::tr{'remote announce'}
$Lang::tr{'remote browse sync'}
-
- - - -
- -
- -
-END -; + -if ($sambasettings{'ACTION'} eq 'globalcaption') - { - print < - - - - +
+ +
$Lang::tr{'caption'}
$Lang::tr{'save settings'}
$Lang::tr{'restore settings'}
+ + + + +
+
+ + +
+
+
+ + +
+
+
+ + +
+
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
$Lang::tr{'basic options'}
$Lang::tr{'workgroup'} + +

$Lang::tr{'security options'}
$Lang::tr{'security'} + +
$Lang::tr{'encryption'} + +
$Lang::tr{'map to guest'} + +

$Lang::tr{'network options'}
$Lang::tr{'remote announce'} + +
$Lang::tr{'remote browse sync'} + +
+ +
+ + + + + +
+ + + + +
END ; - } &Header::closebox(); @@ -366,9 +355,8 @@ if ($sambasettings{'SECURITY'} eq 'user') { &Header::openbox('100%', 'center', $Lang::tr{'user management'}); print <
- +
@@ -459,37 +447,11 @@ END -END -; - - print <
- - -
+
$Lang::tr{'accounting'}
$Lang::tr{'username'}$Lang::tr{'password'}
END ; - if ($sambasettings{'ACTION'} eq 'usercaption') - { - print < - - - - - - - - - - -
$Lang::tr{'caption'}
$Lang::tr{'add user'}
$Lang::tr{'pc add'}
$Lang::tr{'delete user'}
$Lang::tr{'delete pc'}
$Lang::tr{'activate user'}
$Lang::tr{'deactivate user'}
$Lang::tr{'change passwords'}
$Lang::tr{'save config'}
-END -; - } - if ($sambasettings{'ACTION'} eq 'userchangepw') { my $username = "$sambasettings{'NAME'}"; @@ -497,7 +459,7 @@ END print <
- +
@@ -520,7 +482,7 @@ END print < -
$Lang::tr{'change passwords'}
$Lang::tr{'username'}
$Lang::tr{'password'}
+
@@ -542,7 +504,7 @@ END print < -
$Lang::tr{'add user'}
$Lang::tr{'username'}
$Lang::tr{'password'}
+
@@ -567,7 +529,7 @@ if ($sambasettings{'SECURITY'} eq "ADS") { -
$Lang::tr{'pc add'}
$Lang::tr{'client'}
$Lang::tr{'unix group'}
+
+ + + END ; + $lines++; +} -if ($sambasettings{'ACTION'} eq 'sharecaption') - { - print < -
@@ -614,115 +576,119 @@ END my %shares = config("${General::swroot}/samba/shares"); - -print < -
- - - +print < + + + + END -; -my @Shares = keys(%shares); +my @shares = keys(%shares); my $lines = 0; my $col=""; -foreach my $shareentry (sort @Shares) - { +foreach my $shareentry (sort @shares) { chomp $shareentry; + if ($lines % 2) { - print ""; - $col="bgcolor='$color{'color20'}'"; + $col = "bgcolor='$color{'color20'}'"; } else { - print ""; - $col="bgcolor='$color{'color22'}'"; - } - print <$shareentry - - -END -; - $lines++; + $col = "bgcolor='$color{'color22'}'"; } -print < -
-
$Lang::tr{'manage shares'}
$Lang::tr{'sharename'}$Lang::tr{'options'}
$Lang::tr{'sharename'}
- - - -
- - - -
- - - -
- - -
- - -
+ print < +
$shareentry +
+ + + +
+
+
+ + + +
+
- - - - - +print < -END -; - } -if ($sambasettings{'ACTION'} eq 'shareadd' || $sambasettings{'ACTION'} eq 'optioncaption' ) - { - print < -
$Lang::tr{'caption'}
$Lang::tr{'add share'}
$Lang::tr{'edit share'}
$Lang::tr{'save config'}
$Lang::tr{'delete share'}
- - - -
$Lang::tr{'add share'}
-
- - +
+ +
-
+ + +
+
+ + +
+
END -; - } -if ($sambasettings{'ACTION'} eq 'sharechange' || $sambasettings{'ACTION'} eq 'optioncaption2' ) - { +if ($sambasettings{'ACTION'} eq 'shareadd') { + print < + +
+ + + + + + + + + + +
$Lang::tr{'add share'}
+ +
+ + +
+
+END +} + +if ($sambasettings{'ACTION'} eq 'sharechange') { my $shareoption = $shares{$sambasettings{'NAME'}}; - print < - - - - -
$Lang::tr{'edit share'}
-
- - -
- -
+ + print < + +
+ + + + + + + + + + + + +
$Lang::tr{'edit share'}
+ +
+ + +
+
END -; - } +} if ($sambasettings{'ACTION'} eq 'smbshareadd') { @@ -748,16 +714,17 @@ if ($sambasettings{'ACTION'} eq 'smbsharechange') ############################################################################################################################ ############################################### Anzeige des Sambastatus #################################################### -&Header::openbox('100%', 'center', 'Status'); +&Header::openbox('100%', 'left', $Lang::tr{'status'}); -print < - - - -
$Lang::tr{'samba status'}
$Status
+my $status = qx(/usr/local/bin/sambactrl smbstatus); +$status = &Header::cleanhtml($status); + +print < +
$status
+ END -; + &Header::closebox(); &Header::closebigbox(); @@ -814,7 +781,6 @@ close FILE; system("/usr/local/bin/sambactrl smbsafeconf"); system("/usr/local/bin/sambactrl smbreload"); -refreshpage(); } sub isrunning