X-Git-Url: http://git.ipfire.org/?p=people%2Fpmueller%2Fipfire-2.x.git;a=blobdiff_plain;f=html%2Fcgi-bin%2Fsamba.cgi;h=b9bf9f3f3933974dd7310e34ec9090b00753fb20;hp=3747893eebb98d8aa97990891d1ccd6d28c7049b;hb=0ffbb688d3bf4a0890800b1ae35fb73bf60d1804;hpb=f57976dea7ad7be6a35f761bbb470575543a8ad4 diff --git a/html/cgi-bin/samba.cgi b/html/cgi-bin/samba.cgi index 3747893eeb..b9bf9f3f39 100644 --- a/html/cgi-bin/samba.cgi +++ b/html/cgi-bin/samba.cgi @@ -2,7 +2,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007 Michael Tremer & Christian Schmidt # +# Copyright (C) 2005-2013 IPFire Team # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -67,8 +67,7 @@ $ovpnip[3]=$ovpnip[3]+1; ############################################################################################################################ ############################################# Samba Dienste fr Statusberprfung ########################################## -my %servicenames = ('SMB Daemon' => 'smbd','NetBIOS Nameserver' => 'nmbd'); -#my %servicenames = ('SMB Daemon' => 'smbd','NetBIOS Nameserver' => 'nmbd','Winbind Daemon' => 'winbindd'); +my %servicenames = ('SMB Daemon' => 'smbd', 'NetBIOS Nameserver' => 'nmbd', 'Winbind Daemon' => 'winbindd'); &Header::showhttpheaders(); @@ -77,7 +76,7 @@ my %servicenames = ('SMB Daemon' => 'smbd','NetBIOS Nameserver' => 'nmbd'); $sambasettings{'WORKGRP'} = 'homeip.net'; $sambasettings{'NETBIOSNAME'} = 'IPFire'; -$sambasettings{'SRVSTRING'} = 'Samba running on IPFire 2.5'; +$sambasettings{'SRVSTRING'} = 'Samba running on IPFire 2.x'; $sambasettings{'INTERFACES'} = ''; $sambasettings{'SECURITY'} = 'share'; $sambasettings{'OSLEVEL'} = '33'; @@ -92,14 +91,17 @@ $sambasettings{'REMOTESYNC'} = ''; $sambasettings{'PASSWORDSYNC'} = 'off'; $sambasettings{'OTHERINTERFACES'} = '127.0.0.1'; $sambasettings{'GUESTACCOUNT'} = 'samba'; -$sambasettings{'MAPTOGUEST'} = 'Never'; +$sambasettings{'MAPTOGUEST'} = 'Bad User'; $sambasettings{'LOGLEVEL'} = '3 passdb:5 auth:5 winbind:2'; $sambasettings{'SYSLOGLEVEL'} = '1'; $sambasettings{'SYSLOGONLY'} = 'on'; $sambasettings{'DOSCHARSET'} = 'CP850'; $sambasettings{'UNIXCHARSET'} = 'UTF8'; $sambasettings{'DISPLAYCHARSET'} = 'CP850'; -$sambasettings{'SOCKETOPTIONS'} = 'TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192 SO_KEEPALIVE'; +$sambasettings{'SOCKETOPTIONS'} = 'TCP_NODELAY SO_RCVBUF=819200 SO_SNDBUF=819200 SO_KEEPALIVE'; +$sambasettings{'WIDELINKS'} = 'on'; +$sambasettings{'UNIXEXTENSION'} = 'off'; +$sambasettings{'SMB2'} = 'off'; ### Values that have to be initialized $sambasettings{'ACTION'} = ''; ### Samba CUPS Variablen @@ -123,6 +125,9 @@ my $PDCOPTIONS = `cat ${General::swroot}/samba/pdc`; 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); @@ -143,7 +148,7 @@ if ($sambasettings{'ACTION'} eq 'globalresetyes') system("/usr/local/bin/sambactrl smbglobalreset"); $sambasettings{'WORKGRP'} = 'homeip.net'; $sambasettings{'NETBIOSNAME'} = 'IPFire'; - $sambasettings{'SRVSTRING'} = 'Samba running on IPFire 2.0'; + $sambasettings{'SRVSTRING'} = 'Samba running on IPFire 2.x'; $sambasettings{'INTERFACES'} = ''; $sambasettings{'SECURITY'} = 'share'; $sambasettings{'OSLEVEL'} = '65'; @@ -158,7 +163,7 @@ if ($sambasettings{'ACTION'} eq 'globalresetyes') $sambasettings{'PASSWORDSYNC'} = 'off'; $sambasettings{'OTHERINTERFACES'} = '127.0.0.1'; $sambasettings{'GUESTACCOUNT'} = 'samba'; - $sambasettings{'MAPTOGUEST'} = 'Never'; + $sambasettings{'MAPTOGUEST'} = 'Bad User'; $sambasettings{'LOGLEVEL'} = '3 passdb:5 auth:5 winbind:2'; $sambasettings{'SYSLOGLEVEL'} = '1'; $sambasettings{'SYSLOGONLY'} = 'on'; @@ -171,16 +176,25 @@ if ($sambasettings{'ACTION'} eq 'globalresetyes') $sambasettings{'PRINTCAPNAME'} = 'cups'; $sambasettings{'PRINTERNAME'} = 'Printer'; ### Values that have to be initialized + $sambasettings{'WIDELINKS'} = 'on'; + $sambasettings{'UNIXEXTENSION'} = 'off'; $sambasettings{'ACTION'} = ''; $sambasettings{'LOCALMASTER'} = 'off'; $sambasettings{'DOMAINMASTER'} = 'off'; $sambasettings{'PREFERREDMASTER'} = 'off'; - $sambasettings{'SOCKETOPTIONS'} = 'TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192 SO_KEEPALIVE'; + $sambasettings{'SOCKETOPTIONS'} = 'TCP_NODELAY SO_RCVBUF=819200 SO_SNDBUF=819200 SO_KEEPALIVE'; + $sambasettings{'WIDELINKS'} = 'on'; + $sambasettings{'UNIXEXTENSION'} = 'off'; + $sambasettings{'SMB2'} = 'off'; $PDCOPTIONS = `cat ${General::swroot}/samba/pdc`; system("/usr/local/bin/sambactrl smbreload"); refreshpage(); } +if ($sambasettings{'ACTION'} eq 'join') { + $message .= &joindomain($sambasettings{'USERNAME'}, $sambasettings{'PASSWORD'}); +} + ############################################################################################################################ ################################################ Sicherheitsabfrage für den Reset ########################################## @@ -249,6 +263,8 @@ if ($sambasettings{'LOCALMASTER'} eq 'on'){ $sambasettings{'LOCALMASTER'} = "tru if ($sambasettings{'DOMAINMASTER'} eq 'on'){ $sambasettings{'DOMAINMASTER'} = "true";} else { $sambasettings{'DOMAINMASTER'} = "false";} if ($sambasettings{'PREFERREDMASTER'} eq 'on'){ $sambasettings{'PREFERREDMASTER'} = "true";} else { $sambasettings{'PREFERREDMASTER'} = "false";} if ($sambasettings{'SYSLOGONLY'} eq 'on'){ $sambasettings{'SYSLOGONLY'} = "yes";} else { $sambasettings{'SYSLOGONLY'} = "no";} +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 ################################################## @@ -263,7 +279,19 @@ print FILE </g; + + &Header::openbox('100%', 'left', $Lang::tr{'messages'}); + print "$message\n"; + &Header::closebox(); +} + ############################################################################################################################ ########################################## Aktivieren von Checkboxen und Dropdowns ######################################### @@ -381,6 +423,15 @@ $checked{'DOMAINMASTER'}{$sambasettings{'DOMAINMASTER'}} = "checked='checked'"; $checked{'PREFERREDMASTER'}{'off'} = ''; $checked{'PREFERREDMASTER'}{'on'} = ''; $checked{'PREFERREDMASTER'}{$sambasettings{'PREFERREDMASTER'}} = "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{'SMB2'}{'off'} = ''; +$checked{'SMB2'}{'on'} = ''; +$checked{'SMB2'}{$sambasettings{'SMB2'}} = "checked='checked'"; $checked{'GREEN'}{'off'} = ''; $checked{'GREEN'}{'on'} = ''; $checked{'GREEN'}{$sambasettings{'GREEN'}} = "checked='checked'"; @@ -394,6 +445,9 @@ $checked{'VPN'}{'off'} = ''; $checked{'VPN'}{'on'} = ''; $checked{'VPN'}{$sambasettings{'VPN'}} = "checked='checked'"; +if ( $sambasettings{'MAPTOGUEST'} eq "Never" ) { + $sambasettings{'MAPTOGUEST'}="Bad User"; +} $selected{'MAPTOGUEST'}{$sambasettings{'MAPTOGUEST'}} = "selected='selected'"; $selected{'SECURITY'}{$sambasettings{'SECURITY'}} = "selected='selected'"; @@ -404,14 +458,6 @@ $selected{'SECURITY'}{$sambasettings{'SECURITY'}} = "selected='selected'"; print < -END -; -if ( $message ne "" ) - { - print "
$message"; - } - -print <$Lang::tr{'all services'}
END @@ -448,7 +494,7 @@ print < + off @@ -481,6 +527,13 @@ END print < + + + + @@ -596,7 +648,7 @@ if ($sambasettings{'SECURITY'} eq 'user') &Header::openbox('100%', 'center', $Lang::tr{'accounting user pdc'}); } print < +
$Lang::tr{'log level'}
Sys$Lang::tr{'log level'}
Syslog onlyon / - off
$Lang::tr{'interfaces'}on / off | OpenVpn - $ovpnip[0].$ovpnip[1].$ovpnip[2].$ovpnip[3]/$ovpnnetwork[1]
$Lang::tr{'more'}

Wide linkson / + off
Unix extensionon / + off
SMB2 $Lang::tr{'protocol'}on / + off

$Lang::tr{'security options'}
$Lang::tr{'security'}
$Lang::tr{'map to guest'}
@@ -774,10 +826,10 @@ END
- + +
$Lang::tr{'change passwords'}
$Lang::tr{'username'}
$Lang::tr{'username'}
$Lang::tr{'password'}
-
END @@ -802,7 +854,7 @@ END $Lang::tr{'unix group'} $Lang::tr{'unix shell'} - + END @@ -823,7 +875,7 @@ END $Lang::tr{'unix group'} $Lang::tr{'unix shell'} - + END @@ -833,6 +885,55 @@ END &Header::closebox(); } +if ($sambasettings{'SECURITY'} eq "ADS") { + &Header::openbox('100%', 'center', $Lang::tr{'samba join a domain'}); + + my $AD_DOMAINNAME = uc($mainsettings{'DOMAINNAME'}); + + print < + + + + + + + + + + + + + + + + + + + + + +
+ $Lang::tr{'domain'} + + $AD_DOMAINNAME +
+ $Lang::tr{'administrator username'} + + +
+ $Lang::tr{'administrator password'} + + +
+ +
+ +END + + &Header::closebox(); +} + ############################################################################################################################ ############################################### Verwalten von Freigaben #################################################### @@ -842,29 +943,35 @@ my %shares = config("${General::swroot}/samba/shares"); print < +
- - +
$Lang::tr{'manage shares'} -
$Lang::tr{'sharename'}$Lang::tr{'options'}
+ + END ; my @Shares = keys(%shares); my $lines = 0; - +my $col=""; foreach my $shareentry (sort @Shares) { chomp $shareentry; - if ($lines % 2) {print "";} else {print "";} + if ($lines % 2) { + print ""; + $col="bgcolor='$color{'color20'}'"; + } else { + print ""; + $col="bgcolor='$color{'color22'}'"; + } print <$shareentry - + -
$Lang::tr{'manage shares'}
$Lang::tr{'sharename'}$Lang::tr{'options'}
+
$shareentry
+
@@ -990,7 +1097,7 @@ if ( -e "/var/ipfire/cups/enable") my @Printers = keys(%printer); print < +
$Lang::tr{'manage printers'} @@ -1130,7 +1237,7 @@ $Log=~s/\n/
/g; &Header::openbox('100%', 'center', $Lang::tr{'log'}); print < +
@@ -1256,3 +1363,13 @@ sub isrunning } return $status; } + +sub joindomain { + my $username = shift; + my $password = shift; + + my @options = ("/usr/local/bin/sambactrl", "join", $username, $password); + my $output = qx(@options); + + return $output; +}