staging.inyokaproject.org

rsync für Ubuntu-Touch-Gerät

Status: Ungelöst | Ubuntu-Version: Ubuntu 18.04 (Bionic Beaver)
Antworten |

Heinrich_Schwietering Team-Icon

Wikiteam
Avatar von Heinrich_Schwietering

Anmeldungsdatum:
12. November 2005

Beiträge: 11335

Hi!

Ich versuche gerade, eine Sicherung für mein Ubuntu-Tablet durchzuführen; es geht um das Testen der Ubuntu_Touch-Artikels Baustelle/Ubuntu Touch/Sicherung und Wiederherstellung (Abschnitt „Komplett-ueber-WLAN-mit-rsync“). Ich habe mir auf dem Rechner einen neuen Benutzer angelegt, der - wenn ich nichts falsch gemacht habe - rsync, und nur rsync - mit root-Rechten ausführen darf, wie im Artikel angegeben (der Benutzer kann tatsächlich nichts anderes mit Rootrechten machen - hab ich getestet....

Im Artikel ist dieser Befehl für die Sicherunng angegeben, den ich in einem Terminal auf dem Rechner für den dafür angelegten Benutzers ausgeführt habe:

rsync --rsync-path="sudo rsync" --delete --stats -PSHAXhavxze ssh --exclude='/media/*/**' --link-dest=~/ut-backup-alt phablet@xxx.xx.xxx.xx:/home/phablet ~/ut-backup-neu  

(der Zugriff via ssh funktioniert, also stimmt auch die hier ausge-ixxte Adresse)

Ausgabe ist dann aber:

sudo: no tty present and no askpass program specified
rsync: connection unexpectedly closed (0 bytes received so far) [Receiver]
rsync error: error in rsync protocol data stream (code 12) at io.c(235) [Receiver=3.1.2]

Die Version ohne root-Rechte geht:

rsync --delete --stats -PSHAXhavxz --exclude='/media/*/**' --link-dest=~/ut-backup-alt phablet@xxx.xxx.xxx.xx:/home/phablet ~/ut-backup-neu  

liefert eine Sicherung des Homeverzeichnis vom Tablet auf dem Rechner im Konto des rsyncbenutzer.

Ist der erste Befehl ggf. unvollständig? Was ist das askpass programm? Im Netz finde ich immer nur, dass die sudoers-Datei angepasst werden muss; was ich sowohl auf dem Rechner als auch auf dem Tablet getan habe.

(Mir ist auch nicht ganz klar, wie das im Baustelle/Ubuntu Touch/Sicherung und Wiederherstellung mit der sudoers-Datei gemeint war, aber da ich vorübergehend das System beschreibbar machen soll, handelt es sich wohl um das Tablet... Muss ich auch auf dem Tablet auch noch einen eigenen rsyncbenutzer anlegen?)

so long
hank

kB Team-Icon

Supporter, Wikiteam
Avatar von kB

Anmeldungsdatum:
4. Oktober 2007

Beiträge: 9837

Vorweg: Ich benutze kein Ubuntu-Touch und kann selbst nicht testen, was ich hier schreibe, sondern bin auf Vermutungen angewiesen und in der Erwartung, dass sich rsync auf einem Ubuntu-Touch-Gerät genau so verhält wie auf einem herkömmlich Rechner mit Ubuntu-System!

Heinrich_Schwietering schrieb:

[…] ich in einem Terminal auf dem Rechner für den dafür angelegten Benutzers ausgeführt habe:

rsync --rsync-path="sudo rsync" --delete --stats -PSHAXhavxze ssh --exclude='/media/*/**' --link-dest=~/ut-backup-alt phablet@xxx.xx.xxx.xx:/home/phablet ~/ut-backup-neu 

Das kann m.E. so nicht über einen bereits aufgebauten SSH-Kanal funktionieren: Mit der Option -e wird die remote-shell angegeben, zu der das rsync-Programm auf dem Rechner eine Verbindung aufbauen soll. Im Zuge dieses neuen Verbindungsaufbaus muss sich der Benutzer natürlich anmelden und dazu in einem Terminal sein Passwort angeben.

Ich sehe diese Alternativen:

  1. Die SSH-Verbindung wie bisher vorher separat aufbauen, aber im rsync-Befehl die Option -e nicht verwenden.

  2. Die SSH-Verbindung nicht separat aufbauen, und den rsync-Befehl wie angegeben benutzen.

  3. Die SSH-Verbindung nicht separat aufbauen, und den rsync-Befehl wie angegeben benutzen, aber vorher für den Benutzer auf dem Ubuntu-Touch-Gerät die SSH-Authentifizierung per SSH-Schlüssel aktivieren und ggf. sogar die Authentifizierung per Passwort deaktivieren.

[…] (Mir ist auch nicht ganz klar, wie das im Baustelle/Ubuntu Touch/Sicherung und Wiederherstellung mit der sudoers-Datei gemeint war, aber da ich vorübergehend das System beschreibbar machen soll, handelt es sich wohl um das Tablet... Muss ich auch auf dem Tablet auch noch einen eigenen rsyncbenutzer anlegen?)

Beim Zugriff von einem Rechner per Netzwerk auf einen anderen Rechner hat man es immer mit zwei logisch zu unterscheidenden Benutzern zu tun:

  1. der Benutzer auf dem lokalen System

  2. der Benutzer auf dem entfernten (remote) System

Diese beiden Benutzer können den gleichen Namen führen und sind trotzdem nie (Ausnahme: beidseitige Anmeldung an Benutzer-Domäne, was hier nicht relevant ist.) derselbe.

In hier diskutierten Fall (rsync zwischen Rechner (= lokales) System und Tablet (= remote) ) benötigt der Benutzer auf dem Rechner m.E überhaupt keine besonderen Rechte und das Verfahren sollte mit dem normalen Benutzer eines Ubuntu-Systems funktionieren. Jedenfalls, wenn die Sicherungsdateien im Home-Verzeichnis abgelegt werden.

Dagegen benötigt der Benutzer, welcher sich auf dem Tablet anmeldet und dessen Name man beim ssh- bzw. rsync-Befehl angeben kann (und sollte!), sehr wohl die sudo-Berechtigung auf dem Tablet oder er muss root sein.

Wenn man beim ssh- bzw. rsync-Befehl keinen Benutzername angibt, dann gilt:

  • Benutzername auf lokalem System = Benutzername auf entferntem System = Benutzername des Ausführenden des Befehls

  • Aber: Benutzer auf lokalem System ≠ Benutzer auf entferntem System

Es ist also nur die sudoers-Datei auf dem Tablet anzupassen.

Heinrich_Schwietering Team-Icon

Wikiteam
(Themenstarter)
Avatar von Heinrich_Schwietering

Anmeldungsdatum:
12. November 2005

Beiträge: 11335

Hi!

Erstmal Danke, das hilft mir für den Hiontergrund auf alle fäälle schon mal weiter 😉 Konkret

kB schrieb:

Das kann m.E. so nicht über einen bereits aufgebauten SSH-Kanal funktionieren: Mit der Option -e wird die remote-shell angegeben, zu der das rsync-Programm auf dem Rechner eine Verbindung aufbauen soll. Im Zuge dieses neuen Verbindungsaufbaus muss sich der Benutzer natürlich anmelden und dazu in einem Terminal sein Passwort angeben.

Ich sehe diese Alternativen:

  1. Die SSH-Verbindung wie bisher vorher separat aufbauen, aber im rsync-Befehl die Option -e nicht verwenden.

ergibt:

Unexpected remote arg: phabletxxx.xxx.xxx.xx:/home/phablet
rsync error: syntax or usage error (code 1) at main.c(1361) [sender=3.1.2]
  1. Die SSH-Verbindung nicht separat aufbauen, und den rsync-Befehl wie angegeben benutzen

sudo: no tty present and no askpass program specified
rsync: connection unexpectedly closed (0 bytes received so far) [Receiver]
rsync error: error in rsync protocol data stream (code 12) at io.c(235) [Receiver=3.1.2]
  1. Die SSH-Verbindung nicht separat aufbauen, und den rsync-Befehl wie angegeben benutzen, aber vorher für den Benutzer auf dem Ubuntu-Touch-Gerät die SSH-Authentifizierung per SSH-Schlüssel aktivieren und ggf. sogar die Authentifizierung per Passwort deaktivieren.

Das war von Anfang an gegeben; sonst hatte ich vom Konto des rsyncbenutzer ja gar keinen Zugang auf das Tablet gehabt.

[…] Aber: Benutzer auf lokalem System ≠ Benutzer auf entferntem System

Es ist also nur die sudoers-Datei auf dem Tablet anzupassen.

Ok... aber auf dem Tablet gibt es doch gar keinen User rsyncbenutzer... muss ich den da dann doch anlegen?...

😳

so long
hank

EDIT Da muss ichz wohl Benno-007, whazzup und march mal drauf ansprechen, die haben das damals geschrieben

kB Team-Icon

Supporter, Wikiteam
Avatar von kB

Anmeldungsdatum:
4. Oktober 2007

Beiträge: 9837

Heinrich_Schwietering schrieb:

[…] Konkret […]

Wie von mir vorgewarnt: Ich konnte mein Geschreibsel vorher nicht testen. Vielleicht fehlt aber auch einfach der Benutzer.

Ok... aber auf dem Tablet gibt es doch gar keinen User rsyncbenutzer... muss ich den da dann doch anlegen?...

Generell: Der Benutzer, mit dem man sich per ssh anmeldet bzw. den rsync auf dem entfernten Rechner benutzt, muss natürlich auf dem entfernten Rechner als Benutzer existieren und er muss sich per ssh anmelden dürfen.

Beispiel: Auf dem lokalen Rechner L gibt es den Benutzer l, auf dem entfernten Rechner R gibt es den Benutzer r. Dann kann man rsync so benutzen:

rsync [Optionen] r@R:ZU-HOLENDE-ENTFERNTE-DATEI … [LOKALER-DATEINAME]            # pull-Modus
rsync [Optionen] ZU-SENDENDE-LOKALE-DATEI r@R:DATEINAME-AUF-ENTFERNTEM-RECHNER   # push-Modus

Auf dem lokalen Rechner wird rsync vom Benutzer l ausgeführt, auf dem entfernten Rechner erfolgen Dateizugriffe durch den Benutzer r. Wenn der entfernte Benutzer den gleichen Namen führt wie der lokale Benutzer (also r = l), (nur) dann kann man auf die Angabe des Namens verzichten.

Es ist also entweder der Name eines Benutzers auf dem entfernten Rechner anzugeben oder der lokale Benutzername muss auch auf dem entfernten Rechner einzurichten. In jedem Fall muss der Benutzer existieren, zur Anmeldung berechtigt und sudo-fähig sein.

Heinrich_Schwietering Team-Icon

Wikiteam
(Themenstarter)
Avatar von Heinrich_Schwietering

Anmeldungsdatum:
12. November 2005

Beiträge: 11335

Hi!

Ich dachte, dass da syntaxmäßig war nicht hinzuhaut; "Unexpected remote arg: phablet@xxx.xxx.xxx.xx:/home/phablet" scheint ja nicht in Ordnung zu sein...

Aber, wie geschrieben, ich denke, ich versuche mal Hilfe von der Autoren zu bekommnen.

so long
hank

kB Team-Icon

Supporter, Wikiteam
Avatar von kB

Anmeldungsdatum:
4. Oktober 2007

Beiträge: 9837

Heinrich_Schwietering schrieb:

[…] "Unexpected remote arg: phablet@xxx.xxx.xxx.xx:/home/phablet"

phablet“ ist der Benutzername, der zum Zugriff auf die Dateien benutzt wird (bzw. werden soll).

  • Existiert ein Benutzer „phablet“ auf dem Ubuntu-Touch-Gerät?

  • Darf sich dieser Benutzer auf dem Ubuntu-Touch-Gerät anmelden? Darf er sich per ssh anmelden?

  • Ist er sudo-fähig?

Wenn eine dieser Fragen verneint wird, kann es nicht funktionieren.

Heinrich_Schwietering Team-Icon

Wikiteam
(Themenstarter)
Avatar von Heinrich_Schwietering

Anmeldungsdatum:
12. November 2005

Beiträge: 11335

Hi!

Ja, phablet ist der einzige Benutzer auf den Ubuntu-Touch-Geräten, und er ist sudo-fähig. Ich sehen schon, ich muss da tiefer in die Materie einsteigen: Was bedeutet "darf er sich (per ssh) anmelden?" 😬

Per ssh greife ich mit ssh phablet@xxx.xxx.xxx.xx im Terminal von meinem Rechner und aus Nautilus/Nemo auf das Tablet zu, also darf er sich wohl anmelden, oder?

so long
hank

Antworten |