SAMBA Server für FB7170 ohne ds-mod

odin568

Mitglied
Mitglied seit
27 Apr 2006
Beiträge
219
Punkte für Reaktionen
0
Punkte
16
Hi!

Gibt es eine Möglichkeit den Samba-Server in die FB einzubinden? Über den ds-mod gehts ja schon, allerdings hab ich schon so viele Änderungen an der debug.cfg vorgenommen die ich nicht verwerfen will - und nur wegen samba will ich den ds-mod nicht installieren (hatte ihn schon mal)

Gibt es eine Möglichkeit den Samba-Server "einfach" in die debug.cfg zu integrieren?

Danke!

@ds: respect trotzdem für dein pack - aber leider brauche ich nur den samba...
 
Geht: hier. Aber nur mit USB-Stick oder HDD. Ggf. kannst Du die binaries auch per http nachladen.
 
Leider ist da nichts zu sehen... Mehr als die Homepage bekomme ich von der Site nicht.

http://blog.eth0.cc schrieb:
Not Found

The requested URL /fritzbox-wlan-3070/integration-smbdnmbd-in-die-fritzbox-firmware/ was not found on this server.

Der Goolge-Cache hat die Seite aber. Nur steht da nichts wirklich brauchbares drin - außer "man nehme das ds-mod und versuche hinterher den crash mittels serieller Konsole zu debuggen" :meinemei:

Und genau das will odin568 ja gerade nicht:

odin568 schrieb:
Gibt es eine Möglichkeit den Samba-Server "einfach" in die debug.cfg zu integrieren?
 
Also von Samba (also der smb.conf) hab ich schon gut ne ahnung - bloß von Sachen wie:

Code:
# == starts & stops samba daemon ==
cd /var/media/ftp/Massstorage-Partition-0-1/samba

if [ "$1" = "stop" ]; then
        killall nmbd
        killall smbd
        sleep 2
        ps -ef |grep smbd
        ps -ef |grep nmbd
        exit 0
fi

export LD_LIBRARY_PATH=/var/media/ftp/Massstorage-Partition-0-1/samba/lib
export TMPDIR=/var/media/ftp/Massstorage-Partition-0-1/samba/tmp
./nmbd
./smbd

hab ich keine Ahnung...

Gibts keine konkrete Anleitung um alles aus dem Web nachzuladen (Platz ist nicht das problem) und dann automatisch zu starten über die debug.cfg?
 
Ich habe noch keine solche Anleitung gesehen, aber auch nicht explizit gesucht (hab ds-mod drauf...). Der von Dir zitierte Code ist ein Shell-Script, über den man samba starten und stoppen kann. Das müsste also in sowas wie samba.sh kopiert und die Datei dann ausführbar gemacht werden (chmod u+x samba.sh).

Muss aber nicht unbedingt sein, wenn Du damit leben kannst, dass Du ggf. samba halt per Hand (oder FBF-Reboot) neu starten musst (wer will den schon neu starten...). Es reicht also völlig, die letzen 4 Zeilen (ab export...) in die debug.cfg zu kopieren. Bitte unbedingt die Pfadangaben (/var/media/ftp/Massstorage-Partition-0-1) an die reale auf deiner FBF anpassen und die Dateien wie auf puschin.de beschrieben auf den Massenspeicher kopieren.

Ich bin mir nicht so sicher, ob die beiden letzten Zeilen nicht ein & am Ende brauchen. Und (da bin ich mir sicher, sofern Du den cd-Befehl aus der 2. Zeile nicht mit kopierst) eine komplette Pfadangabe. Also am besten mit cd:

Code:
export LD_LIBRARY_PATH=/var/media/ftp/Massstorage-Partition-0-1/samba/lib
export TMPDIR=/var/media/ftp/Massstorage-Partition-0-1/samba/tmp
cd /var/media/ftp/Massstorage-Partition-0-1/samba
./nmbd &
./smbd &

Das ganze klappt nur dann, wenn beim Reboot der Massenspeicher angeschlossen ist und die samba-Dateien dort auch drauf sind.

Wegen automatischem Nachladen per http: Ich bin mir da nicht so sicher, ob das geht. Man müsste per wget nmbd, smbd und die libraries nachladen. Letztere dann noch entpacken. Das sind recht viele MB...
 
Zuletzt bearbeitet:
Glaub da fehlt der Punkt zum ausführen! ;)

Code:
export LD_LIBRARY_PATH=/var/media/ftp/Massstorage-Partition-0-1/samba/lib
export TMPDIR=/var/media/ftp/Massstorage-Partition-0-1/samba/tmp
[COLOR="Red"].[/COLOR]/var/media/ftp/Massstorage-Partition-0-1/nmbd &
[COLOR="Red"].[/COLOR]/var/media/ftp/Massstorage-Partition-0-1/smbd &

kann des echt sein dass die 4 Zeilen schon ausreichen? des wär ja zu einfach ;)

wie könnte ich das per wget machen? will des nämlich net auf die Platte tun... quasi nur in der smb.conf dann auf den eigentlichen Speicher (die externe festplatte) eingehen. À propos: wie bekomme ich raus obs Massstorage-Partition-0-1 oder was anderes ist?

wundert mich dass das nicht vor mir schon jemand wollte... ist ja jetzt nicht so was exotisches...

nmblookup, smbstatus, smbclient, testparm, smbpasswd und so brauch ich ja eigentlich net, oder?

danke schonmal @ all!
 
Sorry, ich hatte das oben auch nochmal geändert. Mit cd, das spart auch Platz in der debug.cfg. Sind dann halt 5 Zeilen ;-)

Das Verzeichnis rausfinden ist ganz einfach: mit telnet auf die Box rauf und

Code:
ls /var/media/ftp

Wenn ein Massenspeicher angeschlossen ist, siehst Du dann, wie das mount-Verzeichnis heißt.
 
hätte nie gedacht dass das so einfach geht ;)

ich probiers dann mal mit

Code:
export LD_LIBRARY_PATH=/var/media/ftp/Massstorage-Partition-0-1/samba/lib
export TMPDIR=/var/media/ftp/Massstorage-Partition-0-1/samba/tmp
cd /var/media/ftp/Massstorage-Partition-0-1/samba
./nmbd &
./smbd &

aus und schreib obs geklappt hat!

p.s. is das filesystem von der ext. platte egal? kann auch schon was drauf sein?

gibts externe hdd's der die 500mV oder so von der fritzbox ausreichen?
 
Zuletzt bearbeitet:
Nun, das Filesystem ist eigentlich nicht egal. Ich könnte mir vorstellen, dass FAT32 Probleme macht wegen der execute-Rechte für die Programme. Ich würde sowieso dringend dazu raten, nicht sofort die debug.cfg zu ändern, sondern alles erst mal auf der Konsole zu testen. Also Datein auf Platte, dann mit telnet auf die Box und die Befehle direkt eintippen (bzw. copy-paste). Wenn es dann klappt - super, schon kann es in die debug.cfg. Wenn nicht hast Du Dir wenigstens keine Probleme beim Booten der Box eingehandelt.

Das mit dem Filesystem musst Du ausprobieren. Kann sein, dass alle Dateien auf FAT32 unter Linux immer execute gesetzt haben, weiß ich so nicht mehr.

Das Problem mit den 500mV wurde im Forum schon mal diskutiert, such mal danach. Ich glaube, das Ergebnis war, immer ein externes Netzteil für die Platten zu verwenden...
 
Hallo!

So, ich habe das auch mal probiert. Erst auf einer Fritz!Box Fon der ersten Generation, die scheint aber nicht genug Speicher zu haben. War natürlich so doof und habe direkt die debug.cfg editiert. Nach dem Neustart ist die Box dann ständig neu gestartet, vermutlich jedes mal, wenn der Speicher voll war, kann das sein? Hab dann ganz oft versucht, mich erst per telnet einzuloggen und dann auf FTP und schnell die wieder geänderte debug.cfg draufgespielt und per Konsole ins Flash kopiert. Das musste halt dann in dem schmalen Zeitfenster geschehen, wo die Box noch da war und noch nicht wieder neugestartet war. Etwas knifflig, aber jetzt läuft sie wieder, ohne Samba.

Dann habe ich noch eine 7170 und da klappt's auch nicht, wie es soll. nmbd und smbd geben ne 1 zurück, also sie laufen nicht richtig an. Scheint irgendwo ein Fehler zu sein.

Hier mein Code (bzw. die relevanten Ausschnitte):

debug.cfg
Code:
samba_host=www.somefilehost.com
samba_path=pcconfig/fritzbox/samba
[...]
Code:
/bin/update_led_on
ping -c 1 $samba_host
while [ $? != 0 ];
do
	sleep 5
	ping -c 1 $samba_host
done
		
cd /var/tmp
mkdir samba

cd /var/tmp/samba
mkdir lib
mkdir private
mkdir var
mkdir var/locks
mkdir tmp
		
wget http://$samba_host/$samba_path/nmbd
wget http://$samba_host/$samba_path/smbd
		
cd /var/tmp/samba/lib
wget http://$samba_host/$samba_path/lib/ld.so.1
wget http://$samba_host/$samba_path/lib/libc.so.6
wget http://$samba_host/$samba_path/lib/libcrypt.so.1
wget http://$samba_host/$samba_path/lib/libdl.so.2
wget http://$samba_host/$samba_path/lib/libm.so.6
wget http://$samba_host/$samba_path/lib/libnsl.so.2
wget http://$samba_host/$samba_path/lib/libnss_dns.so.2
wget http://$samba_host/$samba_path/lib/libnss_files.so.2
wget http://$samba_host/$samba_path/lib/libresolv.so.2
		
wget http://$samba_host/$samba_path/lib/smb.conf
		
chmod +x /var/tmp/samba/nmbd
chmod +x /var/tmp/samba/smbd
chmod 0600 /var/tmp/samba/lib/*
		
export LD_LIBRARY_PATH=/var/tmp/samba/lib
export TMPDIR=/var/tmp/samba/tmp
		
/bin/update_led_off
		
/var/tmp/samba/nmbd &
/var/tmp/samba/smbd &

nmbd un smbd sind von hier. Genauso die lib-Files, die sind aus der RAR-Datei.

Meine smb.conf sieht so aus, ich möchte gerne den Samba-Server auch als WINS-Server verwenden um auf die Rechnernamen zugreifen zu können:

smb.conf
Code:
[global]
interfaces = 192.168.2.1/255.255.255.0
guest account=root
workgroup=WORKGROUP
netbios name=FB_XYZ
server string=AVM Fritz!Box XYZ
null passwords=yes
security=share
preferred master=yes
os level = 20
log level = 2
#socketaddress = 192.168.2.1
wins_support = yes #Samba dient jetzt auch als WINS-Server
name resolve order = wins hosts lmhosts bcast #Reihenfolge der Namensaufloesung

Sieht jemand was, was da falsch sein könnte. Ich hab eine Vermutung: die lib-Files sind ja in dieser RAR-Datei und die habe ich mit WinRAR unter Windows entpackt und auf den Server gespielt. Vielleicht sind diese nun falsch codiert? Wie kann ich sie in UNIX-Codierung auf den Server bekommen? Oder kann es daran nicht liegen? Weiß nicht, kann ich die lib.rar irgendwie erst auf der FB selbst entpacken? Es gibt nur ein Kommando tar aber das scheint die Datei nicht zu fressen, ist sicher nicht TAR-komprimiert sondern rar... Müsste man also in ein tar umwandeln, oder?

Dann hab ich noch ne andre Frage: Ich mache mir etwas um die Sicherheit der ganzen Sache Sorgen: Wenn ich per wget die Dateien hole, dann ist es ja möglich, dass jemand die Daten auf dem Weg zur Box manipuliert und irgendwelchen Schadcode einspielt. Deshalb wollte ich mit einer Prüfsumme (md5) die Dateien nach dem EMpfang überprüfen. Die FB hat in /usr/bin ein Kommando md5sum, damit kann man eine Prüfsumme erstellen. Allerdings weiß ich nicht, wie die Syntax des Kommandos ist. Also ich würde dann per md5sum die Prüfsumme der empfangenen Datei erstellen und mit der Prüfsumme, die ich statisch berechnet und in die debug.cfg eingetragen habe vergleichen. Wenn sie stimmt geth's weiter, sonst wird ein paar mal neu runtergeladen (3 Versuche oder so), bis eben die Prüfsumme stimmt. Was meint Ihr?

Danke für die Hilfe! :)
 
Hi,
kurz ne idee wie das mit dem md5vergleich aussehen könnte ...

Code:
/bin/update_led_on
ping -c 1 $samba_host
while [ $? != 0 ];
do
	sleep 5
	ping -c 1 $samba_host
done
		
cd /var/tmp
mkdir samba

cd /var/tmp/samba
mkdir lib
mkdir private
mkdir var
mkdir var/locks
mkdir tmp

file_ok = 0	

while [ $file_ok -eq 0 ]; do	

   touch md5sum
   echo 'xxxxxx1 datei1' >> md5sum
   echo 'xxxxxx2 datei2' >> md5sum


   wget http://$samba_host/$samba_path/nmbd
   wget http://$samba_host/$samba_path/smbd
		
   wget http://$samba_host/$samba_path/lib/ld.so.1
   wget http://$samba_host/$samba_path/lib/libc.so.6
   wget http://$samba_host/$samba_path/lib/libcrypt.so.1
   wget http://$samba_host/$samba_path/lib/libdl.so.2
   wget http://$samba_host/$samba_path/lib/libm.so.6
   wget http://$samba_host/$samba_path/lib/libnsl.so.2
   wget http://$samba_host/$samba_path/lib/libnss_dns.so.2
   wget http://$samba_host/$samba_path/lib/libnss_files.so.2
   wget http://$samba_host/$samba_path/lib/libresolv.so.2
		
   wget http://$samba_host/$samba_path/lib/smb.conf
		
   md5sum --status -c md5sum
   if [ $? -eq 0 ]; then
       file_ok=1 
       mv *.1 lib/
       mv *.2 lib/
       mv *.6 lib/
       mv smb.conf lib/
   else
       rm *
   fi
done

chmod +x /var/tmp/samba/nmbd
chmod +x /var/tmp/samba/smbd
chmod 0600 /var/tmp/samba/lib/*
		
export LD_LIBRARY_PATH=/var/tmp/samba/lib
export TMPDIR=/var/tmp/samba/tmp
		
/bin/update_led_off
		
/var/tmp/samba/nmbd &
/var/tmp/samba/smbd &

Manual von md5sum

Die echo zeilen oben schreiben die md5summen aus der dbug.cfg in die datei md5sum, dann werden die dateien geprüft bei erfolg soll die variable file_ok auf 1 gesetzt werden ==> abbruchbedingung der äußeren while - schleife. habs nicht getestet und läuft bei falscher md5 summer auch ewig weiter ....

Gruß Daniel
 
Zuletzt bearbeitet:
Das Problem liegt in einer fest einkompilierten Pfadangabe.
Der Autor gibt schon einen spärlichen Hinweis: "Hier die statisch kompilierten Binaries für die Fritzbox."

Wenn du nmbd mit der Option -i startest bekommst du die entsprechende Fehlermeldung aufs Terminal.

Kann jemand smbd und nmbd kompilieren ohne diese Konstanten ?!
 
Einkompilierte Pfade umgehen mit ln -s

chimealheltei schrieb:
Schon jemand was hinbekommen in dieser Sache?

Ja, einfach mal herumprobiert - und es läuft auf meiner Fritz!Box WLAN 3050. Mein Start/Stop-Skript sieht so aus:

Code:
# == starts & stops samba daemon ==

hostname fritzbox
export MY_USB=/var/media/ftp/USBMassStorageDevice-Partition-0-1
cd $MY_USB/samba

if [ "$1" = "stop" ]; then
        killall nmbd
        killall smbd
        sleep 2
        ps -ef |grep smbd
        ps -ef |grep nmbd
        rm /var/media/ftp/MassStorageDevice-Partition-0-1
        rm /var/media/ftp/Massstorage-Partition-0-1
        exit 0
fi

export LD_LIBRARY_PATH=$MY_USB/samba/lib
export TMPDIR=$MY_USB/samba/tmp
ln -s $MY_USB /var/media/ftp/MassStorageDevice-Partition-0-1
ln -s $MY_USB /var/media/ftp/Massstorage-Partition-0-1
./nmbd
./smbd

Wie man sieht, setze ich zunächst den Hostnamen (ist wahrscheinlich nicht nötig, weil in der smb.conf sowieso einer steht, der im Netz zu sehen ist). Anschließend sorge ich dafür, daß es zwei symbolische Links zum Pfad meines USB-Sticks gibt (bitte MY_USB entsprechend ersetzen, falls Eurer anders aussieht). Diese beiden Pfade werden von smbd bzw. smbclient (laufen beide, hab's probiert) benötigt.

Jetzt zu meiner lib/smb.conf:

Code:
[global]
log level = 2
interfaces = 192.168.178.1/255.255.255.0
guest account=root
workgroup=Zuhause
netbios name=FritzBox-3050
server string=Fritz!Box 3050
null passwords=yes
encrypt passwords = yes
security=share
preferred master=yes
os level = 33
lock dir = /var/tmp/samba
wins support = yes

[USB-Stick]
path=/var/media/ftp/USBMassStorageDevice-Partition-0-1
comment=USB-Memory-Stick
public=yes
guest ok=yes
writable=yes
printable=no
browseable=yes

[Root]
path=/
comment=Root-Filesystem
public=yes
guest ok=yes
writable=yes
printable=no
browseable=yes

Wie man erkennt, gebe ich den USB-Stick - auch hier steht nochmals im Klartext(!) der Inhalt von MY_USB - direkt frei, außerdem noch das gesamte Root-Filesystem, über welches man sich sehr bequem auf der Box umschauen kann. Nur die Character Devices (/var/flash/*) listet Windows zwar, zeigt aber die Inhalte nicht an - klar.

Nebenbei gesagt, findet man den USB-Stick natürlich auch übers Root-Filesystem, und zwar dreimal wegen der beiden Symlinks - quod erat expectandum. ;-)

Ich hoffe, das hilft ein bißchen.
 
user passwörter

hallo,
in der smb.conf kann man folgende zeile verwenden um eine passwortabrage zu erzwingen: "security = user"

hat das einer von euch schon mal ausprobiert bzw. hin bekommen?
wenn ich mich per explorer (windows) auf den freigegebenen ordner verbinden will fragt er mich zwar nach einem benutzernamen und password...nur leider weis ich nicht was ich da eintragen soll.
wo muss ich den benutzernamen und das passwort bestimmen?
 
muss ich dann auch noch einen eintrag in die passwd machen?
wenn ich "smbpasswd -a frank" ausführe kommt folgendes:
Code:
# 
./smbpasswd -a frank
load_client_codepage: filename /var/media/ftp/Massstorage-Partition-0-1/samba/lib/codepages/codepage.850 does not exist.
load_unicode_map: filename /var/media/ftp/Massstorage-Partition-0-1/samba/lib/codepages/unicode_map.850 does not exist.
load_unicode_map: filename /var/media/ftp/Massstorage-Partition-0-1/samba/lib/codepages/unicode_map.ISO8859-1 does not exist.
New SMB password:

sind die drei meldungen ok oder ist da was nicht in ordnung?
 
Das sind die Codepages, die fehlen. Ist aber Ok. Der nimmt dann als Standard 850. Passwort kannst du ja eingeben.
 
muss ich dennoch was is die passwd eintragen?
hab es jetzt mal ausprobiert. klappt leider nicht.
in der smb.conf muss ich ja "security = user" eintragen oder?
oder reicht "security = share"?
wenn ich user benutze fragt er mich nach benutzername und passwort...so weit so gut. nur er nimmt dann das von mir mit smbpasswd erstellte nicht an.
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.