Seite 1 von 1

Verbindung zu "SAMBA"-Freigabe im lokalen Netz her

Verfasst: 1. Juli 2008 20:15
von sigvdr
Hallo zusammen,

für ein kleines Projekt ( mein erstes mit Linux und QT4 ) suche ich nach einer Möglichkeit per Programm ( C++ / QT4 ) eine Verbindung zu einer "SAMBA"-Freigabe im lokalen Netzwerk herzustellen.
Das soll dann unter Linux und einer normalen Benutzeranmeldung funktionieren.
Aus den Parametern:
Rechnername/IP-Nummer,Freigabename,Benutzername und Password
sollte das doch irgendwie möglich sein.

Ich habe bisher erfolglos mit QProgress versucht einen entsprechenden Mount - Befehl auszuführen. Das Problem dabei war, dass der Mount-Befehl nur mit "root" - Rechten ausführbar ist und bei "sudo mount ..." scheitert es an der Übergabe des Passwortes.

Gruß Sig

Verfasst: 1. Juli 2008 20:55
von upsala
Das hat eigentlich nichts mit Qt zu tun. mount muß nicht immer als root ausgeführt werden, und bei sudo braucht man kein Passwort. Genaueres steht in den entsprechen man-Pages.

Verfasst: 1. Juli 2008 21:40
von sigvdr
Hallo,
mount muß nicht immer als root ausgeführt werden
Dann brauche ich entsprechende Einträge in der fstab und somit wieder den "root"
So geht es aber nicht :
mount -t smbfs //rechnername/freigabe /mnt/test
mount: Nur „root“ kann dies tun
sudo braucht man kein Passwort
???
Das hat eigentlich nichts mit Qt zu tun
Wo bin ich denn hier gelandet?
"Da bin ich nicht zuständig" hab ich bei diversen Behörden schon oft gehört.

Also noch einmal etwas anders formuliert:
Gibt es eine Möglichkeit mit C++/QT4 und ohne Root-Rechte ( also auch nicht durch Konfiguration diverser Dateien wie fstab ... ) eine Datei von einem anderen PC zu laden ?


Gruß Sig

Verfasst: 1. Juli 2008 22:46
von PeterLustig
Über Sockets wär das sicher möglich, also Dateitransfer.

Verfasst: 2. Juli 2008 07:09
von MiKla
oder via scp???

Verfasst: 2. Juli 2008 10:19
von RHBaum
Du hasst also keine chance die eintraege in der fstab zu bekommen ?
Über Sockets wär das sicher möglich, also Dateitransfer.
Dazu muesst er entweder auf dem Rechner mit dem verzeichniss nen eigenes programm zum laufen zu bekommen, um sein eigenes protokoll zu fahren(ist sicher ned immer möglich)
oder er muesst das smb protokoll clientseitig nachimplementieren (gibts da ne lib zu ? ), was sicher aufwandtechnisch ned unerheblich ist ...

Benutzt du nen desktop manager ala KDE oder gnome ? vielleicht geht ueber die schiene was ? soviel ich weiss gibts da "module" die dir netztwerkzugriffe transparent machen koennen, und da z.b. auch smb unterstuetzen.

im dolphin z.b. kommst ja auch auf smb shares drauf, ohne die mounten zu muessen ...

Ciao ...

Verfasst: 2. Juli 2008 23:00
von sigvdr
Über die fstab möchte ich das nicht machen, das ist mir nicht flexibel genug. Dazu ändert sich zu viel an den Verzeichnisstrukturen. Den entsprechenden Administrationsaufwand möchte ich vermeiden.

Es gibt doch bei jedem modernen Linux Programme wie nautilus, konqueror usw. die es ermöglichen eine Samba-Freigabe zu mounten. Aber wie läuft das dort ab?

Gruß Sig

Verfasst: 3. Juli 2008 08:41
von CaptnChaos
Es gibt doch auch ein SAMBA-Client-Programm. Greif einfach per QProcess darauf zurück. Ist dann nur evtl ein wenig Arbeit die Ausgaben des Client-Programms auszuwerten.

Hier mal ein Link zur Beschreibung von smbclient.

http://de.samba.org/samba/docs/using_samba/ch05.html

So wie ich das sehe dürfte es damit kein Problem sein.

Verfasst: 3. Juli 2008 20:10
von sigvdr
@kernelpanic

Das war ein schubs in die richtige Richtung:
Auf der von dir verlinkten Seite bin ich auf smbmount gestossen. Bisher dachte ich immer
mount -t smbfs wäre identisch zu smbmount ( quasi eine Art symlink ) aber mit smbmount geht das ganze auch ohne "root" Rechte.

Gruß Sig