Externe Freigabe per mount Befehl einbinden, keine Berechtigung

viktor_sc

Benutzer
Mitglied seit
30. März 2020
Beiträge
9
Punkte für Reaktionen
0
Punkte
0
Hallo,

ich versuche von der Synology aus per Script (Aufgabenplaner) ein Remote-Laufwerk (smb auf einem Raspberry Pi) zu mounten. Der Mount ansich funktioniert und ich sehe die Ordner und Dateien direkt in dem Ordner. Jedoch kann ich nichts öffnen. Versuche ich einen Ordner zu öffnen, erscheint eine Fehlermeldung, die Datei oder der Ordner sei nicht vorhanden.
Verbinde ich es über den Synology-Mechanismus (File Station > Extras > Remote Ordner bereitstellen), so funktioniert es einwandfrei. Dort steht bei Dateiprotokoll auch cifs, das müsste also richtig sein.
Ich hätte es aber gerne im Script, da der Raspi gern mal neugestartet wird und weil ich diese Verbindung nur selten benötige.

Mein Befehl, direkt im Script-Bereich der geplanten Aufgabe eingefügt:
Rich (BBCode):
mount -t cifs -o username=openhabian,password=meinpasswort //192.168.0.1/openHAB-share /volume1/Transfer/openhabBackup
Ich habe bereits "rw" und "umask=000" bei den Optionen versucht. Dann kommt der Fehler:
mount: wrong fs type, bad option, bad superblock on //192.168.0.1/openHAB-share,
missing codepage or helper program, or other error
(for several filesystems (e.g. nfs, cifs) you might
need a /sbin/mount.<type> helper program)

In some cases useful info is found in syslog - try
dmesg | tail or so.

Wenn ich -t ext4 versuche statt cifs, erhalte ich die Meldung:
mount: special device //192.168.0.1/openHAB-share does not exist


Hat jemand einen Tipp?

Danke und Grüße
Viktor
 

luddi

Benutzer
Mitglied seit
05. September 2012
Beiträge
1.558
Punkte für Reaktionen
15
Punkte
64
Wer führt denn dieses Script aus, sprich welcher user? Hat dieser user die nötigen rechte für ein mount?

--luddi
 

viktor_sc

Benutzer
Mitglied seit
30. März 2020
Beiträge
9
Punkte für Reaktionen
0
Punkte
0
Hi,
das Script, bzw. die Aufgabe, wird als root ausgeführt. Habe auch schon meinen eigenen Admin probiert, gleiches Verhalten.

Grüße
 

luddi

Benutzer
Mitglied seit
05. September 2012
Beiträge
1.558
Punkte für Reaktionen
15
Punkte
64
Hast du den mount Befehl vorher einmal in der Kommandozeile geprüft bevor du ihn im Script verwendet hast? Wenn ja welche Fehlermeldung bkommst du?

--luddi
 

viktor_sc

Benutzer
Mitglied seit
30. März 2020
Beiträge
9
Punkte für Reaktionen
0
Punkte
0
Du meinst über SSH in der Commandozeile? Nein, das habe ich nicht versucht.
Aber wie gesagt, der (zuerst genannte) Befehl funktioniert ja bei mir, bloß kann ich nicht lesend zugreifen.

Oder welchen Befehl meinst du genau?
 

luddi

Benutzer
Mitglied seit
05. September 2012
Beiträge
1.558
Punkte für Reaktionen
15
Punkte
64
Genau. Erst einmal direkt über SSH in der Konsole.

Folgenden Befehl aus deinem Ersten Post mit einer kleinen Erweiterung.
Rich (BBCode):
sudo mount -t cifs -o username=openhabian,password=meinpasswort,uid=<user>,gid=<group> //192.168.0.1/openHAB-share /volume1/Transfer/openhabBackup
Wobei du nun die user ID und die group ID des Benutzers angibst mit dem du den Zugriff realisieren möchtest.
Und zwar derjenige von deiner NAS.

Hier sollten auch die Namen der User funktionieren und nicht nur die ID's selbst.

Probier doch folgendes aus.
Für <user> verwendest du root, und für <group> auch erst einmal root.
Wenn der uname nicht akzeptiert wird dann müsste man hier die ID selbst eingebaen. Für root wäre das z.B. uid=0 und gid=0.

Wenn der mount zustande kommt dann versuch eine Datei in dem gemounteten Share anzulegen.
Rich (BBCode):
touch /volume1/Transfer/openhabBackup/file.txt
--luddi
 

viktor_sc

Benutzer
Mitglied seit
30. März 2020
Beiträge
9
Punkte für Reaktionen
0
Punkte
0
Ich weiß nicht wie ich mich an ssh per root anmelden kann, da gibt es keinen User und ich wüsste kein Kennwort. Aber mit meinem Admin-User kann ich mich anmelden.
Wenn ich meinen Befehl mit meinem Admin-User versuche, erhalte ich die Meldung:
mount: only root can use "--options" option

Ein sudo davor klappt, allerdings wieder schreib- und lesegeschützt: Permission denied beim touch Befehl.

Nun habe ich deinen Vorschlag getestet. Also uid (mein Admin-User) und gid (von der Administrators-Gruppe) eingefügt (als Zahl). Mount klappt. Allerdings touch wieder: permission denied.
 

luddi

Benutzer
Mitglied seit
05. September 2012
Beiträge
1.558
Punkte für Reaktionen
15
Punkte
64
Ich hatte das eben nur auf meinem Linux Desktop probiert. Sobald ich den Befehl aber auf des Disksation ausführe bekomme ich folgende Fehlermeldung:

Rich (BBCode):
mount -t cifs -o username=user,password=pass,,uid=<user>,gid=<group> //host-IP/smbshare /volume1/foo/bar/
mount: mount //host-IP/smbshare on /volume1/foo/bar/ failed: Operation not supported
Auf der Diskstation habe ich den gleichen Befehl verwendet wie auf der Desktop Client. Beide male den gleichen Befehl zur gleichen Freigabe. Aber das Verhalten scheint ja zu deinem Fall ein ganz anderes zu sein. :confused:
So auf die Schnelle habe ich gerade keine weitere Idee.

--luddi
 

viktor_sc

Benutzer
Mitglied seit
30. März 2020
Beiträge
9
Punkte für Reaktionen
0
Punkte
0
Okay, das ist seltsam.
Ich sehe zwei Kommas hintereinander, aber das wird wohl kaum das Problem bei dir sein. Und am Ende habe ich kein Abschluss-Slash. Aber glaube auch nicht, dass es daran liegt...

Danke dennoch für deine Mühe!!
 

luddi

Benutzer
Mitglied seit
05. September 2012
Beiträge
1.558
Punkte für Reaktionen
15
Punkte
64
Ich sehe zwei Kommas hintereinander [...]

Und am Ende habe ich kein Abschluss-Slash. Aber glaube auch nicht, dass es daran liegt...
Das zweite Komma ist mir hier beim Edit hineingerutscht. Natürlich hatte ich den Befehl mit nur einem Komma ausgefürht.
An dem hinteren Slash liegt das nicht.

Ich finde es insofern seltsam, dass ich auf der DS solch eine Fehlermeldung bekomme. Ist mir selbst ein Rätsel.

Da ich mich immer direkt per root an der Konsole anmelde habe ich nun den anderen Weg versucht den Login mit einen Admin zu gestalten und den Befehl erneut auszuführen.
Als nicht root bekomme ich bei dem exakt gleichen Befehl folgende Meldung:
Rich (BBCode):
mount: only root can use "--options" option
Also muss es zwingend root sein der ein mount mit Optionen ausfürhen darf. Das leuchtet mir noch ein, aber eben nicht die Fehlermeldung "failed: Operation not supported"


--luddi
 

viktor_sc

Benutzer
Mitglied seit
30. März 2020
Beiträge
9
Punkte für Reaktionen
0
Punkte
0
Guten Morgen,
wie gesagt, wenn ich mich mit einem normalen Admin anmelde, habe ich dasselbe Thema. Mit sudo aber wird der Befehl dennoch (nach erneuter Passwort-Eingabe) ausgeführt.
 

luddi

Benutzer
Mitglied seit
05. September 2012
Beiträge
1.558
Punkte für Reaktionen
15
Punkte
64
Ich verstehe dich. Nur wollte ich dir meine Erfahrung mit dem Befehl von meinem System mitteilen. Leider habe ich nun keine brauchbare Lösung für dich. Ich stehe selbst auf dem Schlauch.

Hoffentlich gibt es jemanden hier im Forum der dir an dieser Stelle weiter helfen kann.

Schöne Grüße
luddi
 

bfpears

Benutzer
Mitglied seit
09. Februar 2009
Beiträge
383
Punkte für Reaktionen
0
Punkte
16
Hi,
habe hier nicht alles im Detail gelesen und meine Wissen bezieht sich auf den Zugriff von einem Desktop Linux auf die DS.

mount geht nur als root bzw mit sudo (wobei ich nicht weiß wie sich sudo in einem Script verhält).

Testen auf der Console:
ssh admin@diskstation (hast du ja wahrscheinlich so oder so ähnlich gemacht)
sudo -s (zum Wechsel von admin zum root)

die uid Option (siehe Beitrag von luddi) übersetzt die uid (vom root der DS) auf die uid des Benutzer openhabian auf dem Raspi für die Rechte.
(ich weiß nicht ob die UNIX Erweiterung auf dem SMB Server Auswirkungen hat, bei meiner DS sind sie Deaktiviert)

Wenn die Zugriffsrechte nicht passen, kann man sich diese mal für die entsprechende Datei angucken:
Console mit "ls -al"
FileStation Spalte mit den Zugriffsrechten und dem Eigentümer einblenden.

BF
 

viktor_sc

Benutzer
Mitglied seit
30. März 2020
Beiträge
9
Punkte für Reaktionen
0
Punkte
0
Hi BF,

genau umgekehrt. Ich möchte in der DS einen Remote-Ordner eines Linux Desktops einbinden, also der Zugriff von DS auf Linux.
 

viktor_sc

Benutzer
Mitglied seit
30. März 2020
Beiträge
9
Punkte für Reaktionen
0
Punkte
0
Problem gelöst.
Nachdem ich "nounix" meinem ursprünglichen Befehl mit angehängt habe, funktioniert es:

mount -t cifs -o nounix,username=openhabian,password=meinpasswort //192.168.0.1/openHAB-share /volume1/Transfer/openhabBackup
Danke euch für eure Hilfe!
 

luddi

Benutzer
Mitglied seit
05. September 2012
Beiträge
1.558
Punkte für Reaktionen
15
Punkte
64
Dir vielen Dank für das teilen deiner Lösung.

Das werde ich bei mir auch einmal mit dem "nounix" versuchen.

--luddi
 

luddi

Benutzer
Mitglied seit
05. September 2012
Beiträge
1.558
Punkte für Reaktionen
15
Punkte
64
Hallo viktor_sc,

Das werde ich bei mir auch einmal mit dem "nounix" versuchen.
Gesagt getan und mit einer neuen Erkenntnis zurück.

Ich muss vielleicht noch erwähnen von welchem Remote System versucht wurde eine SMB/CIFS Freigabe auf der Diskstation einzubinden.
Bei mir war es ursprünglich ein RaspberryPi mit Kodi unter der Distro LibreELEC. Bei dem Versuch wie beschrieben, selbst mit nounix, bin ich zunächst nicht weiter gekommen und ein Mount war nicht möglich. Dabei bekam ich folgende Fehlermeldung.
Rich (BBCode):
Befehl:
mount -t cifs -o nounix,username=user,password=pass,uid=root,gid=root //LibreELEC/Share /volume1/mnt/target

Fehler:
Operation not supported

Anschließend habe ich einen zweiten Versuch auf einem anderen Remote Share gestartet. Dieses mal ein Win10 mit SMB Freigabe. Gleicher Mount Befehl wie auch vorher nur eine andere Fehlermeldung.
Rich (BBCode):
Befehl:
mount -t cifs -o nounix,username=user,password=pass,uid=root,gid=root //Win10/Share /volume1/mnt/target

Fehler:
Host is down
Somit war mir klar dass es nichts mit der Diskstation zu hat. Nach ein wenig Recherche bin ich auf folgendes Argument gestoßen welches der Schlüssel zum Erfolg war.
Rich (BBCode):
mount -t cifs -o nounix,username=user,password=pass,vers=3.0,uid=root,gid=root //Server/Share /volume1/mnt/target
Scheinbar sind die Freigaben unter LibreELEC und Win10 über das SMB Protokoll V3 erreichbar. Zwingt man nun das Mount CIFS default Protokoll auf die Version SMB3 so klappt dies nun auch in meiner Umgebung.


--luddi
 

viktor_sc

Benutzer
Mitglied seit
30. März 2020
Beiträge
9
Punkte für Reaktionen
0
Punkte
0
Hi luddi,

spannend. Bei mir ist es ein "openhabian", was meines Wissens im Grunde ein Raspbian Buster ist.

Deine Meldung "host is down" klingt für mich erstmal eher nach einem DNS-Thema. Deine Beschreibung allerdings nicht.

Nun ja, gut zu wissen, wieder was gelernt :)

Btw, uid und gid war bei mir nicht nötig mit nounix...
 

luddi

Benutzer
Mitglied seit
05. September 2012
Beiträge
1.558
Punkte für Reaktionen
15
Punkte
64
Hi victor_sc,

danke auch dir nochmals für deine Rückmeldung.

Deine Meldung "host is down" klingt für mich erstmal eher nach einem DNS-Thema.
Könnte man meinen, aber nicht wenn du wüsstest dass ich hier die lokale IP Adresse direkt eingegeben habe und nicht den Hostname. ;)

Nun ja, gut zu wissen, wieder was gelernt [...]
Ich aber auch :)

Btw, uid und gid war bei mir nicht nötig mit nounix...
Das kann ich auch nochmal probieren.
a.) mit nounix / ohne uid, gid
b.) ohne nounix / mit uid, gid
c.) ohne nounix / ohne uid, gid

Ergebnis:

Alle drei Varianten a.) b.) und c.) sind möglich und das sogar jeweils mit Schreibrechten!
Hier nochmals die genauen Befehle:
Rich (BBCode):
a.) mount -t cifs -o nounix,username=user,password=pass,vers=3.0 //LibreELEC/Share /volume1/mnt/target

b.) mount -t cifs -o username=user,password=pass,vers=3.0,uid=root,gid=root //LibreELEC/Share /volume1/mnt/target

c.) mount -t cifs -o nounix,username=user,password=pass,vers=3.0 //LibreELEC/Share /volume1/mnt/target

--luddi
 
Zuletzt bearbeitet: