Discussion:
[e1] Samba 9.0.0 (Status 'unstable')
(zu alt für eine Antwort)
Thomas Bork
2020-02-19 14:01:01 UTC
Permalink
Hi @all,

es steht eine eisfair-Samba-Version 9.0.0 mit dem Status 'testing' für
eisfair-1 zur Verfügung.

Diese Version gestattet in der Voreinstellung (SAMBA_COMPAT=no) keine
Verbindungen mehr von und zu Rechnern mit dem veralteten und unsicheren
Protokoll SMB1.

Wer noch alte Clients in seinem Netz hat und auf SMB1 angewiesen ist,
kann SAMBA_COMPAT=yes setzen.

Davor muss ich aber dringend warnen:

1.
SMB1 ist unsicher und wird Schritt für Schritt aus den Windows-Versionen
entfernt. Die Samba-Entwickler ziehen nach und es ist fraglich, wie
lange sich SMB1 auf diese Art und Weise noch aktivieren lässt.

2.
SAMBA_COMPAT habe ich mal eingeführt, um alten Clients noch einen
Zugriff auf eisfair-Samba möglich zu machen. Da damit sogar noch alten
DOS-Clients eine Verbindung gelingt, sollte aber jedem klar sein, dass
es sich damit ein gewaltiges Loch in sein Netzwerk reisst. Neben den
Optionen, die SMB1 wieder zur Verfügung stellen, werden auch alle
möglichen anderen Optionen aktiviert, die es erlauben, sichere
SMB-Verbindungen zu unterlaufen.

Aktiviert deswegen SAMBA_COMPAT bitte NICHT!

Dieses Paket bei https://pack-eis.de:
=====================================
https://www.pack-eis.de/index.php?p=36017

Changelog:
==========
https://www.pack-eis.de/?action=showfile&pid=36017&filename=usr/share/doc/samba/changes.txt

8.10.0 --> 9.0.0
----------------
- 4.11.6 (4.11.6-for-eisfair-1-patch-1, status unstable).
- Require libgnutls30 2.8.8.
- /var/install/config.d/samba.sh:
- Deactivate "allocation roundup size = 4096" in
do_write_strict_allocate. This is deprecated since samba
4.11.x.
- Deactivate "blocking locks = $SAMBA_OPLOCKS". This is
deprecated.
- If SAMBA_COMPAT is yes, then set
client min protocol = CORE
server min protocol = LANMAN1
Defaults changed in samba 4.11.x to avoid smb1.
SAMBA_COMPAT is insecure!
- If /samba_printer_drivers/COLOR exist and there are
files in it and /samba_printer_drivers/color is empty,
move files from /samba_printer_drivers/COLOR to
/samba_printer_drivers/color and delete
/samba_printer_drivers/COLOR afterwards to avoid
problems with case insensitive clients like windows.
- /tmp/preinstall.sh:
- Don't use /var/install/include/virtlib anymore.
- Save samba versions earlier 4.11.x.


Das dazugehörige devel-Paket bei https://pack-eis.de:
=====================================================
https://www.pack-eis.de/index.php?p=36018

Changelog:
==========
https://www.pack-eis.de/?action=showfile&pid=36018&filename=usr/share/doc/samba-dev/changes.txt

8.10.0 -> 9.0.0
---------------
- Changed status to unstable.
- /var/install/packages/samba-dev:
Require package samba 9.0.0 internal samba version 4.11.6.


Changelog interne Samba-Version:
================================
https://www.samba.org/samba/history/samba-4.10.0.html
https://www.samba.org/samba/history/samba-4.11.0.html


Ich danke allen Mitgliedern des Teams für Tests und Unterstützung und
wünsche allen Anwendern weiterhin viel Spass mit eisfair!


Das Posting geht parallel an spline.eisfair und spline.eisfair.dev.
Produktive Rückmeldungen bitte an spline.eisfair.dev.
--
der tom
[eisfair-team]
Marcus Röckrath
2020-02-19 14:26:18 UTC
Permalink
Hallo,
Post by Thomas Bork
Diese Version gestattet in der Voreinstellung (SAMBA_COMPAT=no) keine
Verbindungen mehr von und zu Rechnern mit dem veralteten und unsicheren
Protokoll SMB1.
Wer noch alte Clients in seinem Netz hat und auf SMB1 angewiesen ist,
kann SAMBA_COMPAT=yes setzen.
Verzichtet man auf SMB1, sieht man unter Windows unter Netzwerk im Explorer
die Freigaben anbietenden Rechner nicht mehr.

Es gibt aber einen simplen Trick: Man lege auf dem Desktop ein Verknüpfung
mit dem Ziel \\ip-des-servers ab. Klickt man darauf, öffnet sich ein
Explorerfenster mit allen vefügbaren Freigaben dieses Servers.
--
Gruß Marcus
[eisfair-Team]
Detlef Paschke
2020-02-19 20:29:10 UTC
Permalink
Post by Marcus Röckrath
Hallo,
Hallo Marcus,
Post by Marcus Röckrath
Verzichtet man auf SMB1, sieht man unter Windows unter Netzwerk im Explorer
die Freigaben anbietenden Rechner nicht mehr.
das ist auch der einzige Grund, warum ich smb1 noch aktiviert habe.
Ich kann ohnehin nicht recht verstehen, warum so eine Grundlegende Sache
aus dem Samba Protokoll entfernt wurde.
Da wurde die Computermaus erfunden damit man nur noch auf Buttons
Klicken muss und für eine Samba-Freigabe muss man doch wieder den Pfad
per Hand im Dateimanager eintippeln.
Post by Marcus Röckrath
Es gibt aber einen simplen Trick: Man lege auf dem Desktop ein Verknüpfung
mit dem Ziel \\ip-des-servers ab. Klickt man darauf, öffnet sich ein
Explorerfenster mit allen vefügbaren Freigaben dieses Servers.
Nun ja, für Klicken und Ziehen mit den Explorer.

Viele Grüße
Detlef Paschke
--
registered Fli4l-User #00000209
Das "Zitat des Augenblicks" gibt es nur auf
http://www.schabau.goip.de
Detlef Paschke
2020-02-20 08:06:38 UTC
Permalink
Post by Detlef Paschke
Post by Marcus Röckrath
Hallo,
Hallo Marcus,
Post by Marcus Röckrath
Es gibt aber einen simplen Trick: Man lege auf dem Desktop ein Verknüpfung
mit dem Ziel \\ip-des-servers ab. Klickt man darauf, öffnet sich ein
Explorerfenster mit allen vefügbaren Freigaben dieses Servers.
Nun ja, für Klicken und Ziehen mit den Explorer.
Evtl. ist das hier eine mögliche Lösung.

https://www.borncity.com/blog/2018/06/23/windows-10-v1803-netzwerkprobleme-besttigt/

Ich werde es dieser Tage mal Testen und dann berichten.

Viele Grüße
Detlef Paschke
--
registered Fli4l-User #00000209
Das "Zitat des Augenblicks" gibt es nur auf
http://www.schabau.goip.de
Marcus Roeckrath
2020-02-20 11:56:41 UTC
Permalink
Hallo Detlef,

Detlef Paschke schrieb am Thu, 20 February 2020 09:06
Evtl. ist das hier eine mögliche Lösung.
https://www.borncity.com/blog/2018/06/23/windows-10-v1803-netzwerkproble
me-besttigt/
Das dÃŒrfte Richtung Linux-Samba-Server nicht helfen, da Samba neuere
Win-Freigaben-Browser-Dienste nicht kennt und man in Windows aus
SicherheitsgrÃŒnden den SMB1-Client nicht mehr aktivieren sollte, der
sowieso in absehbarer Zeit wohl endgÃŒltig begraben wird.
--
Gruß Marcus
Peter Bäumer
2020-02-20 19:04:26 UTC
Permalink
Glück Auf! an Alle,
ich meine das wir das Thema schon mal hatten und irgend jemand was von wsdd geschrieben hat.

https://github.com/christgau/wsdd

Wenn man das Python-Skript mit den passenden Optionen aufruft taucht der Sambaserver in der Netzwerkumgebung wider auf.

Ich kann aber nicht beurteilen wie das mit der Sicherheit ist, da müsste jemand anders einen Kommentar zu abgeben!

MfG
Peter B.

https://xtechbiz.com/wsdd-ubuntu-19-04/
Post by Marcus Roeckrath
Hallo Detlef,
Detlef Paschke schrieb am Thu, 20 February 2020 09:06
Post by Detlef Paschke
Evtl. ist das hier eine mögliche Lösung.
https://www.borncity.com/blog/2018/06/23/windows-10-v1803-netzwerkproble
me-besttigt/
Das dürfte Richtung Linux-Samba-Server nicht helfen, da Samba neuere
Win-Freigaben-Browser-Dienste nicht kennt und man in Windows aus
Sicherheitsgründen den SMB1-Client nicht mehr aktivieren sollte, der
sowieso in absehbarer Zeit wohl endgültig begraben wird.
Thomas Bork
2020-02-20 23:07:59 UTC
Permalink
Post by Peter Bäumer
ich meine das wir das Thema schon mal hatten und irgend jemand was von wsdd geschrieben hat.
War ich.
Post by Peter Bäumer
Wenn man das Python-Skript mit den passenden Optionen aufruft taucht der
Sambaserver in der Netzwerkumgebung wider auf.
Ist mir bekannt. Setzt python3 voraus.
Post by Peter Bäumer
Ich kann aber nicht beurteilen wie das mit der Sicherheit ist, da müsste
jemand anders einen Kommentar zu abgeben!
Mit chroot ziemlich sicher. Machst Du ein Paket daraus?
--
der tom
[eisfair-team]
Peter Bäumer
2020-02-21 17:57:04 UTC
Permalink
Post by Thomas Bork
Post by Peter Bäumer
ich meine das wir das Thema schon mal hatten und irgend jemand was von wsdd geschrieben hat.
War ich.
Hatte ich mir schon fast gedacht ;)
Post by Thomas Bork
Post by Peter Bäumer
Wenn man das Python-Skript mit den passenden Optionen aufruft taucht der Sambaserver in der Netzwerkumgebung wider auf.
Ist mir bekannt.
Setzt python3 voraus.
Gibt es als Paket :)
Ist also kein Hindernis sonder nur ein <require-package> ;)
Post by Thomas Bork
Post by Peter Bäumer
Ich kann aber nicht beurteilen wie das mit der Sicherheit ist, da müsste jemand anders einen Kommentar zu abgeben!
Mit chroot ziemlich sicher.
Hatte mit der Version 0.4 getestet und mit dem chroot Paket vom Jürgen die chroot Umgebung zum laufen bekommen.
Der weg ist ziemlich "fummelig" da man alle Sachen für Python mit in die Umgebung kopieren muss.
Damit ein Paket machen wäre mir zu aufwendig.

Ab der Version 0.5 gibt es die Option -c was die Sacher vereinfacht und mit der Option -u kann der auszuführende User/Gruppe mit gegeben werden.
Post by Thomas Bork
Machst Du ein Paket daraus?
So richtig motiviert bin ich noch nicht...

Aber man kann sich mal ein paar Gedanken dazu machen ;)

Paketnamen wsdd?



require-package:
python3
samba

init-Skript schreiben.

Skript für Logrotate?

Welche Optionen ins Menü wandern soll bin ich mir auch noch nicht sicher.
-c CHROOT, --chroot CHROOT directory to chroot into

Will hoffen das das mit der Option -c geht, hab noch nicht feststellen können es geht oder nicht.

-u USER, --user USER drop privileges to user:group

Welchen User und Gruppe wäre da zu verwenden wsdd:wsdd ?

-i INTERFACE, --interface INTERFACE interface address to use
Gibt es für das Eisfair-Menü ein fertigen Check wo man den NIC-Namen auswählen kann?

-v, --verbose increase verbosity
Der Dämon ist nicht gerade redselig. Beim Starten gibt es 3 Zeilen output und beim beenden noch mal 2 wenn mit -v gestartet wurde.

-s, --shortlog log only level and message
habe ich noch nicht ausprobiert, aber wenn bei Verbose nur 3 Zeilen kommen - was soll bei --shortlog passieren?

-H HOPLIMIT, --hoplimit HOPLIMIT hop limit for multicast packets (default = 1)
Ein Hop sollte im allgemeinen ausreichen, gib es Szenarios wo man mehr braucht?

-U UUID, --uuid UUID UUID for the target device
Keine Ahnung für was das gut sein soll :(


-w WORKGROUP, --workgroup WORKGROUP set workgroup name (default WORKGROUP)
Der Workgroup Name kann aus der /etc/config.d/samba ermittelt werden (SAMBA_WORKGROUP)

-d DOMAIN, --domain DOMAIN set domain name (disables workgroup)
Kann der Domainname auch aus der /etc/config.d/samba ermittelt werden?


-n HOSTNAME, --hostname HOSTNAME override (NetBIOS) hostname to be used (default hostname)
Optional, brauchen wir das ?

-p, --preserve-case preserve case of the provided/detected hostname

Optional, die Darstellung des Hostnamen bleibt wie sie ist und nicht in Großbuchstaben.

-t, --nohttp disable http service (for debugging, e.g.)
nur für den Debug-Modus ?

-4, --ipv4only use only IPv4 (default = off)
Hab ich noch nicht ausprobiert

-6, --ipv6only use IPv6 (default = off)
Hab ich noch nicht ausprobiert
Keins, -4 oder -6 --> beides macht kein spass ;)

MfG
Peter B.
Thomas Bork
2020-02-21 20:16:11 UTC
Permalink
Post by Peter Bäumer
Post by Thomas Bork
Setzt python3 voraus.
Gibt es als Paket :)
Ist also kein Hindernis sonder nur ein <require-package> ;)
Natürlich.
Post by Peter Bäumer
Ab der Version 0.5 gibt es die Option -c was die Sacher vereinfacht und
mit der Option -u kann der auszuführende User/Gruppe mit gegeben werden.
Ja, funktioniert auch genau so.
Post by Peter Bäumer
Paketnamen wsdd?
Klar.
Post by Peter Bäumer
  python3
  samba
Klar.
Post by Peter Bäumer
init-Skript schreiben.
Hab ich. Wertet keine Konfiguration aus, startet, stoppt und gibt den
Status aus.
Post by Peter Bäumer
Skript für Logrotate?
Klar.
Post by Peter Bäumer
Welche Optionen ins Menü wandern soll bin ich mir auch noch nicht sicher.
-c CHROOT, --chroot CHROOT directory to chroot into
  Will hoffen das das mit der Option -c geht, hab noch nicht
feststellen können es geht oder nicht.
Geht, kann immer gesetzt werden.
Post by Peter Bäumer
-u USER, --user USER  drop privileges to user:group
  Welchen User und Gruppe wäre da zu verwenden wsdd:wsdd ?
nobody:nogroup
Post by Peter Bäumer
-i INTERFACE, --interface INTERFACE interface address to use
  Gibt es für das Eisfair-Menü ein fertigen Check wo man den NIC-Namen
auswählen kann?
Funktioniert bei mir ohne.
Post by Peter Bäumer
-H HOPLIMIT, --hoplimit HOPLIMIT  hop limit for multicast packets
(default = 1)
  Ein Hop sollte im allgemeinen ausreichen, gib es Szenarios wo man
mehr braucht?
Systeme mit mehreren Netzwerkkarten?
Post by Peter Bäumer
-U UUID, --uuid UUID  UUID for the target device
  Keine Ahnung für was das gut sein soll :(
Die sollte für ein System immer gleich sein, bildet wsdd aus dem
Hostnamen, wenn man nix setzt.
Post by Peter Bäumer
-w WORKGROUP, --workgroup WORKGROUP  set workgroup name (default WORKGROUP)
  Der Workgroup Name kann aus der /etc/config.d/samba ermittelt werden
(SAMBA_WORKGROUP)
Parst das init-Skript aus testparm.
Post by Peter Bäumer
-d DOMAIN, --domain DOMAIN  set domain name (disables workgroup)
  Kann der Domainname auch aus der /etc/config.d/samba ermittelt werden?
Funktioniert sowohl mit Workgroup als auch Domäne.
Post by Peter Bäumer
-n HOSTNAME, --hostname HOSTNAME override (NetBIOS) hostname to be used (default hostname)
  Optional, brauchen wir das ?
Nö.
Post by Peter Bäumer
-p, --preserve-case   preserve case of the provided/detected hostname
  Optional, die Darstellung des Hostnamen bleibt wie sie ist und nicht
in Großbuchstaben.
Braucht man nicht.
Post by Peter Bäumer
-t, --nohttp          disable http service (for debugging, e.g.)
  nur für den Debug-Modus ?
Braucht man nicht.
Post by Peter Bäumer
-4, --ipv4only        use only IPv4 (default = off)
  Hab ich noch nicht ausprobiert
-6, --ipv6only        use IPv6 (default = off)
  Hab ich noch nicht ausprobiert
Keins, -4 oder -6 --> beides macht kein spass ;)
Braucht man wohl nicht. Funktioniert hier auch so.
--
der tom
[eisfair-team]
Peter Bäumer
2020-02-24 12:11:58 UTC
Permalink
Glück Auf! Thomas,
Post by Peter Bäumer
init-Skript schreiben.
Hab ich. Wertet keine Konfiguration aus, startet, stoppt und gibt den Status aus.
Hab jetzt auch eins ;)
Post by Peter Bäumer
Skript für Logrotate?
Klar
Lohnt fast gar nicht da der Dämon nicht geschwätzig ist.
Im Log steh bei mir nur:
2020-02-24 10:28:46,961:wsdd WARNING(pid 30962): no interface given, using all interfaces

Es wird etwas besser wenn --verbose angeben ist:
beim Start:
2020-02-24 11:18:45,057:wsdd WARNING(pid 1387): no interface given, using all interfaces
2020-02-24 11:18:45,057:wsdd INFO(pid 1387): using pre-defined UUID 0776c8a5-eec8-538f-84c9-8373accf31fa
2020-02-24 11:18:45,064:wsdd INFO(pid 1387): joined multicast group ('239.255.255.250', 3702) on 172.31.0.157%eth0
2020-02-24 11:18:45,068:wsdd INFO(pid 1387): joined multicast group ('ff02::c', 3702, 22364, 2) on fe80::31ff:fe00:157%eth0
2020-02-24 11:18:45,069:wsdd INFO(pid 1387): chrooted successfully to /var/lib/wsdd
2020-02-24 11:18:45,069:wsdd INFO(pid 1387): running as nobody:nogroup (65534:65534)
2020-02-24 11:18:45,097:wsdd INFO(pid 1387): 172.31.1.1 - - "POST /0776c8a5-eec8-538f-84c9-8373accf31fa HTTP/1.1" 200 -
2020-02-24 11:18:45,134:wsdd INFO(pid 1387): fe80::21a0:7b0b:89c0:d7d0%eth0 - - "POST /0776c8a5-eec8-538f-84c9-8373accf31fa HTTP/1.1" 200 -
2020-02-24 11:18:45,155:wsdd INFO(pid 1387): 172.31.1.1 - - "POST /0776c8a5-eec8-538f-84c9-8373accf31fa HTTP/1.1" 200 -
2020-02-24 11:18:45,172:wsdd INFO(pid 1387): 172.31.1.1 - - "POST /0776c8a5-eec8-538f-84c9-8373accf31fa HTTP/1.1" 200 -
2020-02-24 11:18:45,186:wsdd INFO(pid 1387): 172.31.1.1 - - "POST /0776c8a5-eec8-538f-84c9-8373accf31fa HTTP/1.1" 200 -
beim Stop:
2020-02-24 11:22:39,170:wsdd INFO(pid 1387): received SIGTERM, tearing down
2020-02-24 11:22:39,170:wsdd INFO(pid 1387): shutting down gracefully...
2020-02-24 11:22:40,308:wsdd INFO(pid 1387): Done.
Post by Peter Bäumer
Welche Optionen ins Menü wandern soll bin ich mir auch noch nicht sicher.
-c CHROOT, --chroot CHROOT directory to chroot into
   Will hoffen das das mit der Option -c geht, hab noch nicht feststellen können es geht oder nicht.
Geht, kann immer gesetzt werden.
Hab es jetzt auch im Log gesehen :)
Ist /var/lib/wsdd der passende Oedner für das chroot ?
Post by Peter Bäumer
-H HOPLIMIT, --hoplimit HOPLIMIT  hop limit for multicast packets (default = 1)
   Ein Hop sollte im allgemeinen ausreichen, gib es Szenarios wo man mehr braucht?
Systeme mit mehreren Netzwerkkarten?
Dürfte doch nur von Interesse sein wenn es über einen Router geht soll?
und in einer zweiten Kollisionsdomäne verfügbar sein soll?
Post by Peter Bäumer
-U UUID, --uuid UUID  UUID for the target device
   Keine Ahnung für was das gut sein soll :(
Die sollte für ein System immer gleich sein, bildet wsdd aus dem Hostnamen, wenn man nix setzt.
Wenn das wsdd automatisch macht braucht man das auch nicht im Menü konfigurieren :)
Post by Peter Bäumer
-w WORKGROUP, --workgroup WORKGROUP  set workgroup name (default WORKGROUP)
   Der Workgroup Name kann aus der /etc/config.d/samba ermittelt werden (SAMBA_WORKGROUP)
Parst das init-Skript aus testparm.
Post by Peter Bäumer
-d DOMAIN, --domain DOMAIN  set domain name (disables workgroup)
   Kann der Domainname auch aus der /etc/config.d/samba ermittelt werden?
Funktioniert sowohl mit Workgroup als auch Domäne.
Gehe ich richtig in der Annahme wenn server role nicht ROLE_STANDALONE ist
dann ist ein Domänencontroller (PDC) oder Domän-Memberserver ?

if testparm -s 2>&1 |grep -q "ROLE_STANDALONE" ; then
SERVER_ROLE="--workgroup"
else
SERVER_ROLE="--domain"
fi

Wenn ich das Python Skript richtig lese wäre der einzige unterschied
das der Hostname bei Workgoup in Großbuchstaben dargestellt wird und bei Domain und kleinen.

Für das Eis-Menü hätte ich bis jetzt:
START_WSDD=yes|no
WSDD_VERBOSE=yes|no
WSDD_LOG_COUNT='10'
WSDD_LOG_INTERVAL='monthly'

und die Links für start|stop|restart|status

Optional:
Wäre toll wenn Samba bei einer Konfigurationsänderung den wssd Dämon mit Restarten könnte,
damit wsdd Änderungen sofort mit bekommt.

MfG
Peter B.


/etc/init.d/wsdd (noch im Bastel status)
#!/bin/bash

#. /etc/config.d/wsdd
. /etc/init.d/functions
packageName='wsdd'
CHROOT="/var/lib/wsdd" # --chroot -c
USER="nobody:nogroup" # --user -u
INTERFACE="" # --interface -i
HOPLIMIT="" # --hoplimit -H
UUID="" # --uuid -U
WORKGROUP="$(testparm -s --parameter-name workgroup 2>/dev/null)"
LOG_DIR="${CHROOT}/var/log"
#-n HOSTNAME
#--preserve-case
#--nohttp
#--ipv4only
#--ipv6only

# check WORKGROP oder DOMAIN #
if testparm -s 2>&1 |grep -q "ROLE_STANDALONE" ; then
SERVER_ROLE="--workgroup"
else
SERVER_ROLE="--domain"
fi

# create Lod dir #
[ -d ${LOG_DIR} ] || mkdir -p ${LOG_DIR}

START_WSDD=yes
WSDD_VERBOSE=yes

if [ ${WSDD_VERBOSE} = "yes" ]; then
VERBOSE="--verbose"
else
VERBOSE=""
fi

_do_start ()
{
if ${forcestart:-false}; then
START_WSDD=yes
fi

if [ "${START_WSDD}" = 'yes' ]; then
cd ${CHROOT}
boot_mesg " * Starting wsdd ... "
if pidof python3 bin/wsdd > /dev/null 2>&1 ; then
if ! ${_quiet}; then
CURS_UP="\\033[1A\\033[0G"
echo -e "${CURS_UP} * Starting wsdd ... is still running with Process ID(s) $(pidof python3 bin/wsdd)."
echo_warning
fi
else
bin/wsdd.py ${SERVER_ROLE} ${WORKGROUP} --chroot ${CHROOT} --user ${USER} >> ${LOG_DIR}/wsdd.log 2>&1 &
RC=$?
a=0
PID=""
while [ -z $PID ]
do
let a=$a+1
if [ $a = 10 ];then
break
fi
PID=$(pidof python3 bin/wsdd)
done
if [ -n "${PID}" ]; then
echo "${PID}" > /run/wsdd.pid
echo_ok
else
echo_warning
[ -f /run/wsdd.pid ] && rm /run/wsdd.pid
fi
fi
fi
}

_do_stop ()
{
boot_mesg " * Stopping wsdd ..."
if pidof python3 bin/wsdd > /dev/null 2>&1 ;then
kill $(pidof python3 bin/wsdd )
RC=$?
while pidof python3 bin/wsdd > /dev/null 2>&1
do
sleep .25
let a=$a+1
if [ $a = 10 ];then
RC=3
fi
done
if [ "$RC" = "0" ];then
echo_ok
else
echo_warning
fi
else
if ! ${_quiet}; then
echo -e "${CURS_UP} * Stopping wsdd ... is not running"
echo_warning
fi
fi
[ -f /run/wsdd.pid ] && rm /run/wsdd.pid
}


_do_status ()
{
if pidof python3 bin/wsdd > /dev/null 2>&1 ; then
echo "wsdd is running with Process ID(s) $(pidof python3 bin/wsdd)."
else
echo "wsdd is not running."
[ -f /run/wsdd.pid ] && rm /run/wsdd.pid
fi
}

_do_usage ()
{
echo "Usage: $0 [-q|--quiet] {start|forcestart|stop|restart|status}"
}

#------------------------------------------------------------------
# main
#------------------------------------------------------------------
while [ ${#} -gt 0 ]
do
case "${1}" in
-q|--quiet)
_quiet=true
shift
;;
*)
_action=${1}
shift
;;
esac
done

case "${_action}" in

start)
_do_start
;;

forcestart)
forcestart=true
_do_start
;;
stop)
_do_stop
;;

restart)
_do_stop
while pidof python3 bin/wsdd > /dev/null 2>&1
do
sleep .25
let a=$a+1
[ $a = 10 ] && exit 2
done
_do_start
;;

status)
_do_status
;;

*)
_do_usage
exit 1
;;
esac

exit 0
Thomas Bork
2020-02-24 19:24:35 UTC
Permalink
Post by Peter Bäumer
Post by Thomas Bork
Geht, kann immer gesetzt werden.
Hab es jetzt auch im Log gesehen :)
Ist /var/lib/wsdd der passende Oedner für das chroot ?
Ich habe /run/wsdd/chroot genommen.
Post by Peter Bäumer
Post by Thomas Bork
Post by Peter Bäumer
-U UUID, --uuid UUID  UUID for the target device
   Keine Ahnung für was das gut sein soll :(
Die sollte für ein System immer gleich sein, bildet wsdd aus dem
Hostnamen, wenn man nix setzt.
Wenn das wsdd automatisch macht braucht man das auch nicht im Menü konfigurieren :)
Richtig.
Post by Peter Bäumer
Post by Thomas Bork
Post by Peter Bäumer
-w WORKGROUP, --workgroup WORKGROUP  set workgroup name (default WORKGROUP)
   Der Workgroup Name kann aus der /etc/config.d/samba ermittelt
werden (SAMBA_WORKGROUP)
Parst das init-Skript aus testparm.
Post by Peter Bäumer
-d DOMAIN, --domain DOMAIN  set domain name (disables workgroup)
   Kann der Domainname auch aus der /etc/config.d/samba ermittelt werden?
Funktioniert sowohl mit Workgroup als auch Domäne.
Gehe ich richtig in der Annahme wenn server role nicht ROLE_STANDALONE ist
dann ist ein Domänencontroller (PDC) oder Domän-Memberserver ?
  if testparm -s 2>&1 |grep -q "ROLE_STANDALONE" ; then
      SERVER_ROLE="--workgroup"
  else
      SERVER_ROLE="--domain"
  fi
Wenn ich das Python Skript richtig lese wäre der einzige unterschied
das der Hostname bei Workgoup in Großbuchstaben dargestellt wird und bei
Domain und kleinen.
Es muss nur Workgroup definiert werden. Die andere Option ist nur für
AD-Domänen, die ich nicht unterstütze.
Post by Peter Bäumer
  START_WSDD=yes|no
  WSDD_VERBOSE=yes|no
  WSDD_LOG_COUNT='10'
  WSDD_LOG_INTERVAL='monthly'
und die Links für start|stop|restart|status
  Wäre toll wenn Samba bei einer Konfigurationsänderung den wssd Dämon
mit Restarten könnte,
  damit wsdd Änderungen sofort mit bekommt.
Ich habe das im Moment so bei mir zu laufen, als wäre wsdd Bestandteil
des Samba-Paketes. Ich kopiere mal das init-Skript hierher:

#!/bin/sh
# Copyright 2017 Steffen Christgau
# Distributed under the terms of the MIT licence

#set -x

#. /etc/config.d/wsdd
. /etc/init.d/functions

NAME='wsdd'
DAEMON="/usr/bin/${NAME}"
WSDD_USER='nobody'
WSDD_GROUP='nogroup'
WSDD_CHROOT='/run/wsdd/chroot'
SMB_CONFIG_FILE='/etc/smb.conf'
LOG_FILE="${WSDD_LOG_FILE:-/var/log/log.wsdd}"
WSDD_PIDFILE=/run/${NAME}/${NAME}.pid
PID=''

wsdd_start()
{
if [ -e ${WSDD_PIDFILE} ]
then
PID=`cat ${WSDD_PIDFILE}`
else
PID=`ps ax | grep "python3 ${DAEMON}" | grep -v 'grep' | head -1 |
awk '{print $1}'`
fi

if [ -n "$PID" ]
then
boot_mesg " * ${NAME} is already running ..."
echo_warning
exit 0
fi

#boot_mesg " * Starting ${NAME} ..."
boot_mesg " - Starting ${NAME} ..."
OPTS="${WSDD_OPTS} -u ${WSDD_USER}:${WSDD_GROUP} -c ${WSDD_CHROOT}"

if [ -z "$WSDD_WORKGROUP" ]
then
# try to extract workgroup with Samba's testparm
if which testparm >/dev/null 2>/dev/null
then
GROUP="$(testparm -s --parameter-name workgroup 2>/dev/null)"
fi

# fallback to poor man's approach if testparm is unavailable or failed
for some reason
if [ -z "$GROUP" ] && [ -r "${SMB_CONFIG_FILE}" ]
then
GROUP=`grep -i '^\s*workgroup\s*=' ${SMB_CONFIG_FILE} | cut -f2 -d= |
tr -d '[:blank:]'`
fi

if [ -n "${GROUP}" ]
then
OPTS="-w ${GROUP} ${OPTS}"
fi
else
OPTS="-w ${WSDD_WORKGROUP} ${OPTS}"
fi

if [ ! -r "${LOG_FILE}" ]
then
touch "${LOG_FILE}"
fi
chown ${WSDD_USER}:${WSDD_GROUP} "${LOG_FILE}"

if [ ! -d ${WSDD_CHROOT} ]
then
mkdir -p ${WSDD_CHROOT}
chown -R ${WSDD_USER}:${WSDD_GROUP} "${WSDD_CHROOT}"
fi

startproc -l ${LOG_FILE} ${DAEMON} ${OPTS}

idx=0
while [ ${idx} -le 5 ]
do
sleep 1
PID=`ps ax | grep "python3 ${DAEMON}" | grep -v 'grep' | head -1 | awk
'{print $1}'`
if [ -n "$PID" ]
then
echo "$PID" > ${WSDD_PIDFILE}
kill -0 "$PID"
evaluate_retval
break
fi
idx=`expr $idx + 1`
done
}

wsdd_stop()
{
#boot_mesg " * Stopping ${NAME} ..."
if [ -e ${WSDD_PIDFILE} ]
then
PID=`cat ${WSDD_PIDFILE}`
else
PID=`ps ax | grep "python3 ${DAEMON}" | grep -v 'grep' | head -1 |
awk '{print $1}'`
fi

if [ -n "$PID" ]
then
boot_mesg " - Stopping ${NAME} ..."
for signal in "TERM" "INT" "HUP" "KILL"
do
kill -$signal ${PID}
if [ $? -eq 0 ]
then
echo_ok
break
fi
boot_mesg " * Warning: kill -$signal ${PID} failed."
echo_warning
sleep 1
done
sleep 1
rm -f ${WSDD_PIDFILE}
else
boot_mesg " Warning: ${NAME} is not running."
echo_warning
fi

rm -rf "${WSDD_CHROOT}"
}

wsdd_restart()
{
wsdd_stop
sleep 1
wsdd_start
}

case $1 in
start)
wsdd_start
;;
forcestart)
wsdd_start
;;
status)
if [ -e ${WSDD_PIDFILE} ]
then
PID=`cat ${WSDD_PIDFILE}`
else
PID=`ps ax | grep "python3 ${DAEMON}" | grep -v 'grep' | head -1 |
awk '{print $1}'`
fi

if [ -n "$PID" ]
then
#boot_mesg " * ${NAME} is running with pid $PID ..."
boot_mesg "${NAME} is running with pid $PID."
else
#boot_mesg " * ${NAME} is not running ..."
boot_mesg "${NAME} is not running."
fi
;;
stop)
wsdd_stop
;;
restart)
wsdd_restart
;;
esac




Das dazugehörige Skript von Samba 9.0.0:

#! /bin/sh
#----------------------------------------------------------------------------
# /etc/init.d/samba - init samba
#
# Copyright (c) 2002-2019 Thomas Bork, tom(at)eisfair(dot)net
#
# usage: /etc/init.d/samba {start|forcestart|status|stop|restart|reload}
#
# Creation : 2001-11-04 tb
# Last Update: 2019-01-16 tb
#
# 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
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#----------------------------------------------------------------------------
#set -x
. /etc/config.d/samba
. /etc/init.d/functions

lockdir='/var/lib/samba'
socketsdir='/run/samba'
sambastatus='/var/install/bin/samba-check-status'
tdbbackupbin='/usr/bin/tdbbackup'
nmbdbin='/usr/sbin/nmbd'
smbdbin='/usr/sbin/smbd'
winbinddbin='/usr/sbin/winbindd'
netbin='/usr/bin/net'
mountpoint='/samba_dfs'
imgdir='/usr/local/share/samba'
dfsimage="$imgdir/dfs_root.img"
mountbin='/bin/mount'
umountbin='/bin/umount'

do_mount_dfs_image ()
{
if [ "$1" = "--u" ]
then
if [ -n "`"$mountbin" -t ext3 | grep " $mountpoint "`" ]
then
cd /
"$mountbin" -t ext3 | grep " $mountpoint " |
while read mounted
do
"$umountbin" "$mountpoint"
if [ $? -ne 0 ]
then
boot_mesg " Cannot umount $mountpoint."
echo_failure
fi
done
fi
rm -rf "$mountpoint"
else
mountoption="$1"
if [ -z "$mountoption" ]
then
mountoption='--rw'
fi

if [ -f "$dfsimage" -a ! "`"$mountbin" -t ext3 | grep "
$mountpoint "`" ]
then
modprobe loop 2>/dev/null
mkdir "$mountpoint"
"$mountbin" -o loop $mountoption "$dfsimage" "$mountpoint"
if [ $? -ne 0 ]
then
boot_mesg " Cannot mount $dfsimage $mountpoint
$mountoption."
echo_failure
rmdir "$mountpoint"
fi
fi
fi
}

do_loadnmbd ()
{
if [ $nmbdstatus = alive ]
then
boot_mesg " Warning: nmbd is already running."
echo_warning
else
# create socketsdir /run/samba, nmbd and smbd cannot start
# without and run is in new versions mounted as tmpfs
if [ ! -d "$socketsdir" ]
then
mkdir -p "$socketsdir"
if [ $? -ne 0 ]
then
boot_mesg " Error: Cannot create directory $socketsdir!"
echo_failure
exit 1
fi
fi

if [ ! -d "$lockdir" ]
then
mkdir -p "$lockdir"
if [ $? -ne 0 ]
then
boot_mesg " Error: Cannot create directory $lockdir!"
echo_failure
exit 1
fi
fi

for tdb in $lockdir/brlock.tdb \
$lockdir/connections.tdb \
$lockdir/group_mapping.ldb \
$lockdir/group_mapping.tdb \
$lockdir/locking.tdb \
$lockdir/messages.tdb \
$lockdir/namelist.debug \
$lockdir/printing/?*.tdb \
$lockdir/sessionid.tdb \
$lockdir/unexpected.tdb \
$lockdir/winbindd_cache.tdb
do
rm -f $tdb
done

for tdb in $lockdir/?*.tdb \
/etc/?*.tdb
do
if [ -f $tdb ]
then
rm -f $tdb.samba.bak
$tdbbackupbin -l -s .samba.bak $tdb
$tdbbackupbin -v $tdb 1>/dev/null
fi
done

# clean up old messaging sockets
rm -f /etc/msg.sock/?*
rm -f $lockdir/msg.lock/?*

if [ "$SAMBA_PDC" = "yes" ]
then
/var/install/bin/samba-pdc-groupmapping -q addall
fi

do_mount_dfs_image --ro

boot_mesg " - Starting nmbd ..."
"$nmbdbin" -D
evaluate_retval
fi
}

do_loadsmbd ()
{
if [ $smbdstatus = alive ]
then
boot_mesg " Warning: smbd is already running."
echo_warning
else
boot_mesg " - Starting smbd ..."
"$smbdbin" -D
if [ $? -eq 0 ]
then
echo_ok
if [ "$SAMBA_START_MESSAGE_SEND" = "yes" ]
then
/var/install/bin/samba-netsend "all" "$SAMBA_START_MESSAGE"
fi
else
echo_failure
fi
fi
}

do_loadwinbindd ()
{
if [ $winbinddstatus = alive ]
then
boot_mesg " Warning: winbindd is already running."
echo_warning
else
boot_mesg " - Starting winbindd ..."
"$winbinddbin"
evaluate_retval
fi
}

do_startsamba ()
{
boot_mesg " * Starting Samba ..."
. $sambastatus
do_loadnmbd
do_loadsmbd

if [ -n "$SAMBA_PASSWORD_SERVER" ]
then
do_loadwinbindd
fi

if [ -f /etc/init.d/wsdd ]
then
/etc/init.d/wsdd start
fi
}

do_showmapping ()
{
"$netbin" groupmap list | grep -v " -> -1" | sort |
while read line
do
set -- $line
domaingroup="$1"
eisfairgroup="$3 $4"
echo "$domaingroup $eisfairgroup"
done
}

do_passwordserver ()
{
if [ -n "$SAMBA_PASSWORD_SERVER" ]
then
echo "Available domain groups:"
wbinfo -g
echo "Available domain users:"
wbinfo -u
fi
}

case $1 in
'start')
if [ "$START_SAMBA" = "yes" ]
then
do_startsamba
fi
;;
'forcestart')
do_startsamba
;;
'status')
/usr/local/bin/colecho "Checking status of Samba ..." gn
. $sambastatus

if [ $nmbdstatus = alive ]
then
echo "nmbd is running."
else
echo "nmbd is not running."
fi

if [ $smbdstatus = alive ]
then
echo "smbd is running."
else
echo "smbd is not running."
fi

if [ $winbinddstatus = alive ]
then
echo "winbindd is running."
do_passwordserver
else
echo "winbindd is not running."
fi

if [ -f /etc/init.d/wsdd ]
then
/etc/init.d/wsdd status
fi

if [ "$SAMBA_PDC" = "yes" ]
then
echo "Static groupmapping from windows groups to unix groups:"
do_showmapping
fi
;;
'stop')
boot_mesg " * Stopping Samba ..."

if [ -f /etc/init.d/wsdd ]
then
/etc/init.d/wsdd stop
fi

. $sambastatus

if [ $winbinddstatus = alive ]
then
boot_mesg " - Stopping winbindd ..."
for signal in "TERM" "INT" "HUP" "KILL"
do
/usr/bin/killall -$signal winbindd
if [ $? -eq 0 ]
then
echo_ok
break
fi
boot_mesg " Warning: killall -$signal winbindd failed."
echo_warning
sleep 1
done
sleep 1
rm -f $winbinddpidfile
else
if [ -n "$SAMBA_PASSWORD_SERVER" ]
then
boot_mesg " Warning: winbindd is not running."
echo_warning
fi
fi

if [ $smbdstatus = alive ]
then
if [ "$SAMBA_SHUTDOWN_MESSAGE_SEND" = "yes" ]
then
if [ -n "`ps ax | grep smbd | grep -v grep`" ]
then
/var/install/bin/samba-netsend
"$SAMBA_SHUTDOWN_MESSAGE_HOSTS" "$SAMBA_SHUTDOWN_MESSAGE"
fi
fi

boot_mesg " - Stopping smbd ..."
for signal in "TERM" "INT" "HUP" "KILL"
do
/usr/bin/killall -$signal smbd
if [ $? -eq 0 ]
then
echo_ok
break
fi
boot_mesg " Warning: killall -$signal nmbd failed."
echo_warning
sleep 1
done
sleep 1
rm -f $smbdpidfile
else
boot_mesg " Warning: smbd is not running."
echo_warning
fi

if [ $nmbdstatus = alive ]
then
boot_mesg " - Stopping nmbd ..."
for signal in "TERM" "INT" "HUP" "KILL"
do
/usr/bin/killall -$signal nmbd
if [ $? -eq 0 ]
then
echo_ok
break
fi
boot_mesg " Warning: killall -$signal nmbd failed."
echo_warning
sleep 1
done
sleep 1
rm -f $nmbdpidfile
else
boot_mesg " Warning: nmbd is not running."
echo_warning
fi

do_mount_dfs_image --u
;;
'restart')
$0 stop && $0 forcestart
;;
'reload')
boot_mesg " * Reloading Samba ..."
. $sambastatus

if [ $smbdstatus = alive -a $nmbdstatus = alive ]
then
for i in `ps ax | grep nmbd | grep -v grep | cut -c1-6`
do
boot_mesg " - Reloading nmbd with pid $i ..."
/bin/kill -SIGHUP $i
evaluate_retval
done

for i in `ps ax | grep smbd | grep -v grep | cut -c1-6`
do
boot_mesg " - Reloading smbd with pid $i ..."
/bin/kill -SIGHUP $i
evaluate_retval
done

for i in `ps ax | grep winbindd | grep -v grep | cut -c1-6`
do
boot_mesg " - Reloading winbindd with pid $i ..."
/bin/kill -SIGHUP $i
evaluate_retval
done
else
echo " Samba is not running, performing restart ..."
$0 restart
fi
;;
*)
echo "usage: /etc/init.d/`basename $0`
{start|forcestart|status|stop|restart|reload}" >&2
exit 1
;;
esac


Die Ausgaben von Samba:

pvscsi # /etc/init.d/samba stop
* Stopping Samba ...
- Stopping wsdd ...
- Stopping smbd ...
- Stopping nmbd ...
pvscsi # /etc/init.d/samba start
* Starting Samba ...
- Starting nmbd ...
[ OK ]
- Starting smbd ...
[ OK ]
- Starting wsdd ...
[ OK ]
pvscsi # /etc/init.d/samba stop
* Stopping Samba ...
- Stopping wsdd ...
[ OK ]
- Stopping smbd ...
[ OK ]
- Stopping nmbd ...
[ OK ]
pvscsi # /etc/init.d/samba restart
* Stopping Samba ...
Warning: wsdd is not running.
[ WARN ]
Warning: smbd is not running.
[ WARN ]
Warning: nmbd is not running.
[ WARN ]
* Starting Samba ...
- Starting nmbd ...
[ OK ]
- Starting smbd ...
[ OK ]
- Starting wsdd ...
[ OK ]
pvscsi # /etc/init.d/samba status
Checking status of Samba ...
nmbd is running.
smbd is running.
winbindd is not running.
wsdd is running with pid 3150.
Static groupmapping from windows groups to unix groups:
Domänen-Administratoren -> root
Domänen-Benutzer -> users
Domänen-Computer -> machines
Domänen-Gäste -> nogroup
Domänen-Hauptbenutzer -> sys
pvscsi #
--
der tom
[eisfair-team]
Thomas Bork
2020-02-26 18:31:07 UTC
Permalink
Post by Thomas Bork
Ich habe /run/wsdd/chroot genommen.
Wie wollen wir weiter verfahren?
--
der tom
[eisfair-team]
Peter Bäumer
2020-02-27 05:16:56 UTC
Permalink
Post by Thomas Bork
Post by Thomas Bork
Ich habe /run/wsdd/chroot genommen.
Ist mir eigentlich egal wo das chroot Verzeichnis ist, ich hatte mich am bind Paket orientiert.
Post by Thomas Bork
Wie wollen wir weiter verfahren?
Ein Paket habe ich schon zusammen und es ist Installierbar und der Dienst funktioniert wie vorgesehen.
Logrotate funzt auch.
Wenn START_WSDD = no ist, ist das logrotate Skript noch vorhanden. Könnte man dann auch löschen und bei START_WSDD = yes neu erstellen.

Es fehlen noch die Start/Stop-Links zum Init-Skrip.
Könnte auch in Abhängigkeit anlegen wenn START_WSDD = yes und wsdd nicht im Init-Skript von Samba auftaucht --> dann brauchst Du nicht sofort eine neue Samba Version zu releasen.
Bei START_WSDD = no werden keine angelegt bzw. gelöscht.

Komm wahrscheinlich erst am Wochenende da weiter zu machen.


ein Menü wäre auch schon da :)

┌─────────────────────────────┐
│ eisfair setup 4.. │
├───┌─────────────────────────────────┐
│ 1 │ Administration of services 4.. │
│ 2 ├───┌───────────────────────────────────────────┐
│ 3 │ 1 │ wsddadministration 2.. │
│ 4 │ 2 ├───────────────────────────────────────────┤
│ 5 │ 3 │ 1 View documentation │
│ │ 4 │ 2 Edit configuration │
│ 0 │ │ 3 Advanced configuration file handling │
└───│ 0 │ 4 Start wsdd │
└───│ 5 Stop wsdd │
│ 6 Restart wsdd │
│ 7 Show wsddtatus │
│ │
│ 0 Return │
└───────────────────────────────────────────┘

Da Fehlt noch ein wenig Beschreibung...
│------------------------------------------------------------------------------│
│ Basic configuration │
│------------------------------------------------------------------------------│
│ │
│ START_WSDD = yes │
│ │
│------------------------------------------------------------------------------│
│ LOG configuration │
│------------------------------------------------------------------------------│
│ │
│ WSDD_VERBOSE = yes │
│ WSDD_LOG_INTERVAL = daily │
│ WSDD_LOG_COUNT = 7 │
│ │
│ │
└──────────────────────────────────────────────────────────────────────────────┘
┌──────────────────────────────────────────────────────────────────────────────┐
│ no help available



Ist zu überlegen ob Es einen eigenen Eintrag in >Administration of services< bekommt
┌─────────────────────────────┐
│ eisfair setup 4.. │
├───┌─────────────────────────────────┐
│ 1 │ Administration of services 2.. │
│ 2 ├─────────────────────────────────┤
│ 3 │ 1 Samba │
│ 4 │ 2 wsdd │

oder im Samba Menü?

│ 1 │ Administration of services 1.. │
│ 2 ├───┌───────────────────────────────────┐
│ 3 │ 1 │ Samba Administration 7.. │
│ 4 │ 2 ├───────────────────────────────────┤
│ 5 │ 3 │ 1 Read Samba Documentation │
│ │ 4 │ 2 Samba Configuration Handling │
│ 0 │ │ 3 Samba User Handling │
└───│ 0 │ 4 Samba Server Handling │
└───│ 5 Samba Domain Handling │
│ 6 SMB Filesystem Handling │
│ 7 Send Message to SMB Hosts │
8 Modules configuration
│ │
│ 0 Return │
└───────────────────────────────────┘

│ 0 │ 5 │ 3 │ 1 │ Samba module administration 1.. │
└───│ 6 │ │ 2 ├────────────────────────────────────┤
│ 7 │ 0 │ 3 │ 1 wsdd Administration │
│ 8 └───│ 4 │ │
│ 9 Pu│ │ 0 Return │
│ 10 Re│ 0 └────────────────────────────────────┘
So in etwa...
Schneller ist der eigene Eintrag --> der ist ja schon fertig ;)

Dein Init Skript muss ich noch mit meinen zusammen bringen.
Deinstallation habe ich auch noch nicht getestet, da muss bestimmt noch was eintragen (Log Dateien, chroot Ordner).

MfG
Peter B.
Thomas Bork
2020-02-27 20:12:05 UTC
Permalink
Post by Peter Bäumer
Post by Thomas Bork
Ich habe /run/wsdd/chroot genommen.
Ist mir eigentlich egal wo das chroot Verzeichnis ist, ich hatte mich am
bind Paket orientiert.
Ich hieran:

https://github.com/christgau/wsdd/blob/master/etc/systemd/wsdd.service
Post by Peter Bäumer
Ein Paket habe ich schon zusammen und es ist Installierbar und der
Dienst funktioniert wie vorgesehen.
Logrotate funzt auch.
Wenn START_WSDD = no ist, ist das logrotate Skript noch vorhanden.
Könnte man dann auch löschen und bei START_WSDD = yes neu erstellen.
Die sinnvolle Samba-Integration wirft dabei Fragen auf:

Wenn ich in Samba wsdd triggere, muss/sollte START_WSDD gar nicht auf
yes stehen. Denn ein start, stop, restart, status triggert dann in Samba
auch die Aktionen des wsdd.

Oder aber Du führst eine zusätzliche Variable

WSDD_TRIGGERD_BY_SAMBA

ein. Wenn WSDD_TRIGGERD_BY_SAMBA = no, dann startest und stoppst Du wsdd
beim Start und Stop des Rechners, wenn WSDD_TRIGGERD_BY_SAMBA = yes,
macht Samba das. Denn wenn Du wsdd schon bei START_WSDD = yes startest,
würde Samba das noch einmal starten wollen. Beim Beenden das selbe Spiel.

So könntest Du bestimmte Dinge an START_WSDD festmachen, andere wieder
an WSDD_TRIGGERD_BY_SAMBA.
Post by Peter Bäumer
Es fehlen noch die Start/Stop-Links zum Init-Skrip.
Könnte auch in Abhängigkeit anlegen wenn START_WSDD = yes und wsdd nicht
im Init-Skript von Samba auftaucht --> dann brauchst Du nicht sofort
eine neue Samba Version zu releasen.
Bei START_WSDD = no werden keine angelegt bzw. gelöscht.
Ich habe kein Problem eine testing-Version von Samba zu releasen, die
wsdd integriert.

Ansonsten siehe oben:
Mit der zusätzlichen Variable WSDD_TRIGGERD_BY_SAMBA behältst Du die
Kontrolle. Bei WSDD_TRIGGERD_BY_SAMBA = yes benötigst Du keine
Start-/Stop-Links, weil das von Samba gemacht wird.
Post by Peter Bäumer
Komm wahrscheinlich erst am Wochenende da weiter zu machen.
Ok.
Post by Peter Bäumer
ein Menü wäre auch schon da :)
┌─────────────────────────────┐
│ eisfair setup  4..          │
├───┌─────────────────────────────────┐
│ 1 │ Administration of services  4.. │
│ 2 ├───┌───────────────────────────────────────────┐
│ 3 │ 1 │ wsddadministration  2..                   │
│ 4 │ 2 ├───────────────────────────────────────────┤
│ 5 │ 3 │ 1   View documentation                    │
│   │ 4 │ 2   Edit configuration                    │
│ 0 │   │ 3   Advanced configuration file handling  │
└───│ 0 │ 4   Start wsdd                            │
    └───│ 5   Stop wsdd                             │
        │ 6   Restart wsdd                          │
        │ 7   Show wsddtatus                        │
wsdd status
Post by Peter Bäumer
        │                                           │
        │ 0   Return                                │
        └───────────────────────────────────────────┘
[...]
Post by Peter Bäumer
Ist zu überlegen ob Es einen eigenen Eintrag in >Administration of services< bekommt
┌─────────────────────────────┐
│ eisfair setup  4..          │
├───┌─────────────────────────────────┐
│ 1 │ Administration of services  2.. │
│ 2 ├─────────────────────────────────┤
│ 3 │ 1   Samba                       │
│ 4 │ 2   wsdd                        │
oder im Samba Menü?
│ 1 │ Administration of services  1.. │
│ 2 ├───┌───────────────────────────────────┐
│ 3 │ 1 │ Samba Administration  7..         │
│ 4 │ 2 ├───────────────────────────────────┤
│ 5 │ 3 │ 1   Read Samba Documentation      │
│   │ 4 │ 2   Samba Configuration Handling  │
│ 0 │   │ 3   Samba User Handling           │
└───│ 0 │ 4   Samba Server Handling         │
    └───│ 5   Samba Domain Handling         │
        │ 6   SMB Filesystem Handling       │
        │ 7   Send Message to SMB Hosts     │
          8   Modules configuration
        │                                   │
        │ 0   Return                        │
        └───────────────────────────────────┘
│ 0 │ 5 │ 3 │ 1 │ Samba module administration    1.. │
└───│ 6 │   │ 2 ├────────────────────────────────────┤
    │ 7 │ 0 │ 3 │ 1   wsdd Administration            │
    │ 8 └───│ 4 │                                    │
    │ 9   Pu│   │ 0   Return                         │
    │ 10  Re│ 0 └────────────────────────────────────┘
So in etwa...
Schneller ist der eigene Eintrag --> der ist ja schon fertig ;)
Eigener Eintrag ist sinnvoller.
Post by Peter Bäumer
Dein Init Skript muss ich noch mit meinen zusammen bringen.
Deinstallation habe ich auch noch nicht getestet, da muss bestimmt noch
was eintragen (Log Dateien, chroot Ordner).
In meinem init-Skript wird das chroot-Verzeichnis bei jedem Beenden
gelöscht. Aber nicht das PID-Verzeichnis.
--
der tom
[eisfair-team]
Thomas Bork
2020-03-04 20:50:04 UTC
Permalink
Post by Thomas Bork
Ich habe kein Problem eine testing-Version von Samba zu releasen, die
wsdd integriert.
Diese Version ist jetzt draussen:

https://www.pack-eis.de/index.php?p=36088
https://www.pack-eis.de/index.php?p=36090
--
der tom
[eisfair-team]
Detlef Paschke
2020-02-21 09:54:41 UTC
Permalink
Post by Detlef Paschke
Evtl. ist das hier eine mögliche Lösung.
https://www.borncity.com/blog/2018/06/23/windows-10-v1803-netzwerkprobleme-besttigt/
Ich werde es dieser Tage mal Testen und dann berichten.
Also hier hat es nicht wirklich funktioniert aber mir ist etwas anderes
aufgefallen.

Man (oder zumindest ich) muss smb1 gar nicht benutzen, es genügt wenn es
in Win10 installiert ist.

Man könnte smb1 nun auch noch ganz deaktivieren,

sc.exe config lanmanworkstation depend= bowser/mrxsmb20/nsi
sc.exe config mrxsmb10 start= disabled

doch davon halte ich nicht viel. Irgend wann hat man evtl. eine Bude
(NAS, Drucker, Cam, weiß der Geier...) die tatsächlich nur smb1 kann und
weil mal lägst vergessen hat, dass man smb1 deaktiviert hat sucht man
ewig warum man keine Verbindung bekommt.

Ich nutze derzeit Samba 8.10.0 und SAMBA_COMPAT steht hier auf 'no'.
Gebe ich smbstatus ein zeigt die Ausgabe, dass alle Clients als
Protokoll SMB3_11 verwenden.

Solange MS smb1 also nicht vollständig entfernt und ich nehme an,
solange noch etliche NAS-Boxen, Drucker-Kombigeräte... ausschließlich
mit smb1 laufen trauen sie sich nicht, scheint es kein Problem zu geben.
Und dann wäre ja immer noch Peters Vorschlag mit dem wsdd ins Feld zu
werfen.

Viele Grüße
Detlef Paschke
--
registered Fli4l-User #00000209
Das "Zitat des Augenblicks" gibt es nur auf
http://www.schabau.goip.de
Marcus Roeckrath
2020-02-21 10:27:03 UTC
Permalink
Hallo Detlef,

Detlef Paschke schrieb am Fri, 21 February 2020 10:54
Man (oder zumindest ich) muss smb1 gar nicht benutzen, es genÃŒgt
wenn es
in Win10 installiert ist.
Man könnte smb1 nun auch noch ganz deaktivieren,
sc.exe config lanmanworkstation depend= bowser/mrxsmb20/nsi
sc.exe config mrxsmb10 start= disabled
doch davon halte ich nicht viel. Irgend wann hat man evtl. eine Bude
(NAS, Drucker, Cam, weiß der Geier...) die tatsÀchlich nur smb1
kann und
weil mal lÀgst vergessen hat, dass man smb1 deaktiviert hat sucht
man
ewig warum man keine Verbindung bekommt.
Ich nutze derzeit Samba 8.10.0 und SAMBA_COMPAT steht hier auf
'no'.
Gebe ich smbstatus ein zeigt die Ausgabe, dass alle Clients als
Protokoll SMB3_11 verwenden.
Ob bei aktiviertem Client-SMB1-Protokoll - sofern die Gegenstelle es
zulÀßt - immer die höchstmögliche Protokollvariante benutzt wird,
ist aus Sicherheitstechnischer Sicht völlig unerheblich.

Solange ein Protokollvariante vorhanden ist, kann sie von Schadsoftware
auch ausgenutzt werden.
--
Gruß Marcus
Detlef Paschke
2020-02-21 13:47:52 UTC
Permalink
Post by Marcus Roeckrath
Hallo Detlef,
Hallo Marcus,
Post by Marcus Roeckrath
Ob bei aktiviertem Client-SMB1-Protokoll - sofern die Gegenstelle es
zuläßt - immer die höchstmögliche Protokollvariante benutzt wird,
ist aus Sicherheitstechnischer Sicht völlig unerheblich.
Solange ein Protokollvariante vorhanden ist, kann sie von Schadsoftware
auch ausgenutzt werden.
das ist schon richtig und mag in einem Firmennetzwerk einen ganz anderen
Stellenwert haben. Dann bleibt wie erwähnt immer noch die Möglichkeit
das smb1 Protokoll bei Erhalt der Computer Browser Funktion zu deaktivieren.

sc.exe config lanmanworkstation depend= bowser/mrxsmb20/nsi
sc.exe config mrxsmb10 start= disabled

Ob ein kleinen privates Netzwerk in dem ein gesundes Maß an Misstrauen
und Vorsicht herrscht so für Angriffe prädestiniert ist, dass man die
Bedienbarkeit immer weiter Einschränkt muss wohl jeder für sich entscheiden.

Viele Grüße
Detlef Paschke
--
registered Fli4l-User #00000209
Das "Zitat des Augenblicks" gibt es nur auf
http://www.schabau.goip.de
Marcus Röckrath
2020-02-21 14:02:39 UTC
Permalink
Hallo Detlef,
Post by Detlef Paschke
Post by Marcus Roeckrath
Solange ein Protokollvariante vorhanden ist, kann sie von Schadsoftware
auch ausgenutzt werden.
Ob ein kleinen privates Netzwerk in dem ein gesundes Maß an Misstrauen
und Vorsicht herrscht so für Angriffe prädestiniert ist, dass man die
Bedienbarkeit immer weiter Einschränkt muss wohl jeder für sich entscheiden.
Genau das, ich wollte auch nur auf das mögliche Riskio in Zeiten von Emotet
und Co hinweisen.
--
Gruß Marcus
[eisfair-Team]
Loading...