diff --git a/config/samba/default.global b/config/samba/default.global
new file mode 100644
index 000000000..5fed22e7e
--- /dev/null
+++ b/config/samba/default.global
@@ -0,0 +1,36 @@
+# global.settings by IPFire Project
+
+[global]
+netbios name = ipfire
+server string = Samba
+workgroup = homeip.net
+
+keep alive = 30
+os level = 33
+fstype = NTFS
+
+kernel oplocks = false
+map to guest = false
+smb ports = 445 139
+unix charset = CP850
+
+security = user
+encrypt passwords = yes
+guest account = samba
+unix password sync = false
+null passwords = yes
+
+bind interfaces only = true
+interfaces = eth0
+socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192 SO_KEEPALIVE
+
+username level = 1
+wins support = true
+
+log file = /var/log/samba/samba-log.%m
+lock directory = /var/lock/samba
+pid directory = /var/run/
+
+preferred master = false
+domain master = false
+local master = false
\ No newline at end of file
diff --git a/config/samba/default.pdc b/config/samba/default.pdc
new file mode 100644
index 000000000..887e387ea
--- /dev/null
+++ b/config/samba/default.pdc
@@ -0,0 +1,19 @@
+[homes]
+path = /home/%u
+comment = Benutzer-Verzeichnisse
+browseable = yes
+writeable = yes
+valid users = %S
+
+[netlogon]
+path = /var/samba/netlogon
+browseable = no
+writeable = no
+comment = NetLogON
+
+[profiles]
+path = /var/samba/profiles
+browseable = no
+writeable = yes
+comment = Benutzerprofile
+valid users = %S
diff --git a/config/samba/default.printer b/config/samba/default.printer
new file mode 100644
index 000000000..0a76b2e4c
--- /dev/null
+++ b/config/samba/default.printer
@@ -0,0 +1,23 @@
+# start printer
+[printers]
+ comment = Drucker
+ security = server
+ path = /var/log/spool/lpd/lp
+ lprm command = /usr/local/bin/lprm -P%p %j
+ lpq command = /usr/local/bin/lpq %p
+ browseable = yes
+ printable = yes
+ public = yes
+ writable = no
+ create mode = 0700
+
+[Drucker]
+ security = server
+ path = /var/log/spool/lpd/lp
+ printer name = lp
+ writable = no
+ public = yes
+ printable = yes
+ print command = lpr -r -h -P %p %s
+ use client driver = Yes
+# end printer
diff --git a/config/samba/default.settings b/config/samba/default.settings
new file mode 100644
index 000000000..99f817eda
--- /dev/null
+++ b/config/samba/default.settings
@@ -0,0 +1,16 @@
+NETBIOSNAME=ipfire
+BINDINTERFACESONLY=True
+WINSSUPPORT=on
+WINSSRV=
+GUESTACCOUNT=samba
+BLUE=off
+SECURITY=share
+OTHERINTERFACES=
+WORKGRP=homeip.net
+GREEN=on
+OSLEVEL=33
+MAPTOGUEST='Bad User'
+SRVSTRING='Samba'
+INTERFACES=' eth0'
+VPN=off
+ORANGE=off
diff --git a/config/samba/default.shares b/config/samba/default.shares
new file mode 100644
index 000000000..f7226df7c
--- /dev/null
+++ b/config/samba/default.shares
@@ -0,0 +1,21 @@
+[Temp]
+path = /var/samba/tmp
+comment = Temp
+browseable = yes
+writeable = yes
+create mask = 0777
+directory mask = 0777
+guest ok = yes
+public = yes
+force user = samba
+
+[P2P]
+path = /var/samba/p2p
+comment = P2P
+browseable = yes
+writeable = yes
+create mask = 0777
+directory mask = 0777
+guest ok = yes
+public = yes
+force user = samba
diff --git a/html/cgi-bin/logs.cgi/firewalllogip.dat b/html/cgi-bin/logs.cgi/firewalllogip.dat
index 38cce251d..99697ba46 100644
--- a/html/cgi-bin/logs.cgi/firewalllogip.dat
+++ b/html/cgi-bin/logs.cgi/firewalllogip.dat
@@ -7,8 +7,7 @@
# JC HERITIER
# page inspired from the initial firewalllog.dat
#
-# Modified for IPFire by Christian Schmidt
-# and Michael Tremer (www.ipfire.org)
+# modified for ipcop by Markus Hoffmann und Michael Winkler and for ipfire by Christian Schmidt
use strict;
use Geo::IP::PurePerl;
@@ -388,16 +387,16 @@ if ($showpie != 2 && $pienumber <= 50 && $pienumber != 0) {
$mygraph->set( dclrs => [ "colour1" , "colour2" , "colour3" , "colour4" , "colour5" , "colour6" , "colour7" , "colour8" , "colour9" , "colour10" ] );
my $myimage = $mygraph->plot(\@data) or die $mygraph->error;
- my @filenames = glob("/srv/web/ipfire/html/graphs/fwlog-ip*.png");
+ my @filenames = glob("/srv/web/ipfire/html/fwlogs/ip*.png");
unlink(@filenames);
my $imagerandom = rand(1000000);
- my $imagename = "/srv/web/ipfire/html/graphs/fwlog-ip$imagerandom.png";
+ my $imagename = "/srv/web/ipfire/html/fwlogs/ip$imagerandom.png";
open(FILE,">$imagename");
print FILE $myimage->png;
close(FILE);
#####################################################
print "
";
- print " ";
+ print " ";
print " |
";
}
diff --git a/html/cgi-bin/logs.cgi/firewalllogport.dat b/html/cgi-bin/logs.cgi/firewalllogport.dat
index 657180979..5cf00fb1a 100644
--- a/html/cgi-bin/logs.cgi/firewalllogport.dat
+++ b/html/cgi-bin/logs.cgi/firewalllogport.dat
@@ -7,8 +7,7 @@
# JC HERITIER
# page inspired from the initial firewalllog.dat
#
-# Modified for IPFire by Christian Schmidt
-# and Michael Tremer (www.ipfire.org)
+# modified for ipcop by Markus Hoffmann und Michael Winkler and for ipfire by Christian Schmidt
use strict;
@@ -388,16 +387,16 @@ if ($showpie != 2 && $pienumber <= 50 && $pienumber != 0) {
$mygraph->set( dclrs => [ "colour1" , "colour2" , "colour3" , "colour4" , "colour5" , "colour6" , "colour7" , "colour8" , "colour9" , "colour10" ] );
my $myimage = $mygraph->plot(\@data) or die $mygraph->error;
- my @filenames = glob("/srv/web/ipfire/html/graphs/fwlog-port*.png");
+ my @filenames = glob("/srv/web/ipfire/html/fwlogs/port*.png");
unlink(@filenames);
my $imagerandom = rand(1000000);
- my $imagename = "/srv/web/ipfire/html/graphs/fwlog-port$imagerandom.png";
+ my $imagename = "/srv/web/ipfire/html/fwlogs/port$imagerandom.png";
open(FILE,">$imagename");
print FILE $myimage->png;
close(FILE);
#####################################################
print "";
- print " ";
+ print " ";
print " |
";
}
diff --git a/html/cgi-bin/samba.cgi b/html/cgi-bin/samba.cgi
index ab2d0ad39..066f9d069 100644
--- a/html/cgi-bin/samba.cgi
+++ b/html/cgi-bin/samba.cgi
@@ -22,7 +22,7 @@ my %netsettings = ();
my %ovpnsettings = ();
my $message = "";
my $errormessage = "";
-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";
+my $defaultoption= "[Share]\npath = /var/samba/share1\ncomment = Share - Public Access\nbrowseable = yes\nwriteable = yes\ncreate mask = 0777\ndirectory mask = 0777\nguest ok = yes\npublic = yes\nforce user = samba";
my $userentry = "";
my @user = ();
my @userline = ();
@@ -33,19 +33,14 @@ my $userfile = "/var/ipfire/samba/private/smbpasswd";
&General::readhash("${General::swroot}/ovpn/settings", \%ovpnsettings);
############################################################################################################################
-############################################# Samba Dienste für Statusüberprüfung ##########################################
+############################################# Samba Dienste fr Statusberprfung ##########################################
-my %servicenames =
-(
- 'SMB Daemon' => 'smbd',
- 'NetBIOS Nameserver' => 'nmbd',
- 'Winbind Daemon' => 'winbindd'
-);
+my %servicenames = ('SMB Daemon' => 'smbd','NetBIOS Nameserver' => 'nmbd','Winbind Daemon' => 'winbindd');
&Header::showhttpheaders();
############################################################################################################################
-#################################### Initialisierung von Samba Sharess für die Verarbeitung ################################
+#################################### Initialisierung von Samba Sharess fr die Verarbeitung ################################
my @Zeilen= ();
my @Shares= ();
@@ -57,6 +52,7 @@ my @shares = ();
my @shareline = ();
my $sharefile = "/var/ipfire/samba/shares";
my $EOF = qx(cat $sharefile | wc -l);
+my $Status = qx(/usr/local/bin/sambactrl smbstatus);
@shares = `grep -n '^\\[' $sharefile`;
foreach $shareentry (@shares)
@@ -66,7 +62,7 @@ foreach $shareentry (@shares)
}
############################################################################################################################
-#################################### Initialisierung von Samba Variablen für global Settings ###############################
+#################################### Initialisierung von Samba Variablen fr global Settings ###############################
$sambasettings{'WORKGRP'} = 'homeip.net';
$sambasettings{'NETBIOSNAME'} = 'IPFIRE';
@@ -80,13 +76,23 @@ $sambasettings{'ORANGE'} = 'off';
$sambasettings{'VPN'} = 'off';
$sambasettings{'WINSSRV'} = "$netsettings{'GREEN_NETADDRESS'}";
$sambasettings{'WINSSUPPORT'} = 'off';
+$sambasettings{'PASSWORDSYNC'} = 'off';
$sambasettings{'OTHERINTERFACES'} = '';
$sambasettings{'GUESTACCOUNT'} = 'samba';
$sambasettings{'MAPTOGUEST'} = 'Never';
-$sambasettings{'BINDINTERFACESONLY'} = 'True';
### Values that have to be initialized
$cgisettings{'ACTION'} = '';
+################################################## Samba PDC Variablen #####################################################
+
+$sambasettings{'LOCALMASTER'} = 'off';
+$sambasettings{'DOMAINMASTER'} = 'off';
+$sambasettings{'PREFERREDMASTER'} = 'off';
+my $PDCOPTIONS = `cat ${General::swroot}/samba/pdc`;
+
+
+############################################################################################################################
+
&General::readhash("${General::swroot}/samba/settings", \%sambasettings);
&Header::getcgihash(\%sambasettings);
@@ -94,12 +100,12 @@ $cgisettings{'ACTION'} = '';
&Header::openbigbox('100%', 'left', '', $errormessage);
############################################################################################################################
-############################################# Samba Rootskript aufrufe für SU-Actions ######################################
+############################################# Samba Rootskript aufrufe fr SU-Actions ######################################
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 'smbuserdelete'){system("/usr/local/bin/sambactrl smbuserdelete $sambasettings{'NAME'}");}
-if ($sambasettings{'ACTION'} eq 'smbuseradd'){system("/usr/local/bin/sambactrl smbuseradd $sambasettings{'USERNAME'} $sambasettings{'PASSWORD'}");}
+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");}
@@ -127,6 +133,18 @@ system('/usr/local/bin/sambactrl smbsharesreset');
}
}
+############################################################################################################################
+########################################### Samba Benutzer oder PC l�chen #################################################
+
+if ($sambasettings{'ACTION'} eq 'userdelete' && $sambasettings{'NAME'} =~ /\$/)
+{
+system("/usr/local/bin/sambactrl smbpcdelete $sambasettings{'NAME'}");
+}
+elsif ($sambasettings{'ACTION'} eq 'userdelete')
+{
+system("/usr/local/bin/sambactrl smbuserdelete $sambasettings{'NAME'}");
+}
+
############################################################################################################################
############################################## Samba Share neu anlegen #####################################################
@@ -160,7 +178,7 @@ system("/usr/local/bin/sambactrl smbsafeconf");
}
############################################################################################################################
-################################################## Samba Share löschen #####################################################
+################################################## Samba Share l�chen #####################################################
if ($sambasettings{'ACTION'} eq 'smbsharedel')
{
@@ -223,7 +241,7 @@ system("/usr/local/bin/sambactrl smbsafeconf");
}
}
############################################################################################################################
-################################################## Sambashare ändern #######################################################
+################################################## Sambashare �dern #######################################################
if ($sambasettings{'ACTION'} eq 'smbsharechange')
{
@@ -294,56 +312,80 @@ if ($sambasettings{'VPN'} eq 'on'){ $sambasettings{'INTERFACES'} .= " $ovpnsetti
if ($sambasettings{'OTHERINTERFACES'} ne ''){ $sambasettings{'INTERFACES'} .= " $sambasettings{'OTHERINTERFACES'}";}
############################################################################################################################
-############################################# Schreiben der Samba globals ##################################################
+##################################### Schreiben settings und bersetzen fr smb.conf #######################################
&General::writehash("${General::swroot}/samba/settings", \%sambasettings);
+
+if ($sambasettings{'PASSWORDSYNC'} eq 'on'){ $sambasettings{'PASSWORDSYNC'} = "true";} else { $sambasettings{'PASSWORDSYNC'} = "false";}
+if ($sambasettings{'WINSSUPPORT'} eq 'on'){ $sambasettings{'WINSSUPPORT'} = "true";} else { $sambasettings{'WINSSUPPORT'} = "false";}
+if ($sambasettings{'LOCALMASTER'} eq 'on'){ $sambasettings{'LOCALMASTER'} = "true";} else { $sambasettings{'LOCALMASTER'} = "false";}
+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{'MAPTOGUEST'} eq 'on'){ $sambasettings{'MAPTOGUEST'} = "true";} else { $sambasettings{'MAPTOGUEST'} = "false";}
+
+############################################################################################################################
+############################################# Schreiben der Samba globals ##################################################
open (FILE, ">${General::swroot}/samba/global") or die "Can't save the global settings: $!";
flock (FILE, 2);
print FILE <${General::swroot}/samba/pdc") or die "Can't save the pdc settings: $!";
+ flock (FILE, 2);
+ print FILE <
-
+
+
END
;
- if ( $message ne "" ) {
- print "$message";
- }
-print <| Alle Dienste | |
-
+if ( $message ne "" )
+ {
+ print "$message";
+ }
+
+print <
| |
+| Alle Dienste |
+
+ {
+ print <
+
|
+ | Legende: |
+ Einstellungen speichern |
+ Auf default zurueck setzen |
+
END
;
-}
+ }
+
&Header::closebox();
############################################################################################################################
-########################################## Benutzerverwaltung für Usersecurity #############################################
+########################################## Benutzerverwaltung fr Usersecurity #############################################
if ($sambasettings{'SECURITY'} eq 'user')
-{
-&Header::openbox('100%', 'center', 'accounting - user Security');
-
-print <
-
+END
+;
+ }
+
+ if ($sambasettings{'ACTION'} eq 'userchangepw')
+ {
+ my $username = "$sambasettings{'NAME'}";
+ my $password = 'samba';
+ print <
+