Hey, bitte registriere dich, um alle Funktionen nutzen zu können!

Mach's gut, CyanogenMod. Hallo LineageOS. ♥ Unsere Community freut sich auf die neue Ära.


Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Kein Lesezugriff auf /storage/emulated
#1
Hallo,

von den Daten meines Fairphone 2 konnte ich unter Fairphone Open OS vom PC aus mit rsync per ssh bequem Backups erstellen. Unter LineageOS 15.1 geht das nicht, weil nur root auf /storage/emulated lesend zugreifen darf, was sich aber nicht ändern lässt:

Code:
FP2:/ # whoami
root

FP2:/storage # ls -ld emulated/                                                                                              
drwx--x--x 4 root sdcard_rw 4096 2019-04-25 17:11 emulated/                                                                  
FP2:/storage # chmod o+r emulated/                                                                                            
FP2:/storage # ls -ld emulated/                                                                                              
drwx--x--x 4 root sdcard_rw 4096 2019-04-25 17:11 emulated/

Obiger Code ist aus der ADB-Shell, aber auf dem Gerät ist es mit der vorinstallierten Shell und auch mit der Shell-App Termux (die benötige ich u.a. wegen deren SSH-Daemon) genauso.

Nach der Installation von LineageOS habe ich in den Systemeinstellungen angewählt, dass das Smartphone verschlüsselt werden soll (das hatte ich bei Fairphone Open OS nicht gemacht). Als ich nach wenigen Minuten wieder hinsah, konnte ich schon normal weiter arbeiten. Und in den Systemeinstellungen ist noch immer der Menüpunkt zum Verschlüsseln anwählbar. Deshalb bin ich mir nicht sicher, ob es überhaupt verschlüsselt wurde.

Aber selbst wenn das Smartphone verschlüsselt sein sollte, daran kann es doch eigentlich nicht liegen, dass der normale Benutzer keinen Lesezugriff auf /storage/emulated hat und dass sich das nicht ändern lässt, oder?

Wie sind die Zugriffsrechte für /storage/emulated denn bei euch?

Wie bekomme ich für /storage/emulated die Leserechte für normale Benutzer?
Antworten
#2
Gar nicht, weil das ein Systemverzeichnis ist. Benutzer dürfen nur auf /storage/emulated/0 bzw. storage/emulated/10 usw. zugreifen.
Die Zugriffsrechte werden auch primär nicht durch diese Unix-Rechte verwaltet sondern durch Regeln des SE-Linux.
Wenn ein Benutzer also ein Backup seiner User-Daten machen möchte, braucht und kann er das nur unterhalb von .../0 bzw. .../10 uswusf.


G900F mit LOS16
Antworten
#3
Wegen Rsync kannst Du Dir ja mal das hier angucken. Ziemlich komplex in der Bedienung aber am Ende vollautomatisch ;o)

http://android.kowalczuk.eu/rsync4android/

G900F mit LOS16
Antworten
#4
Danke für die Antworten.
Das sind allerdings schlechte Nachrichten. Die aber anscheinend wirklich nur Termux betreffen. Denn damit kann ich noch nicht mal auf /storage/emulated/0 (oder darunter) zugreifen, was ich rsync auf dem PC als Verzeichnis übergebe und was mit Fairphone Open OS funktioniert hat. Leider kennt Termux weder useradd noch usermod und sie lassen sich auch nicht nachinstallieren (Termux hat eine eigene Paketverwaltung). Die vorinstallierte Shell und die ADB-Shell können tatsächlich auf /storage/emulated/0 zugreifen.

Ich möchte möglichst nicht noch andere Apps nachinstallieren, um das mit rsync hinzubekommen. Wenn überhaupt, dann aus F-Droid.

Die in LineageOS vorinstallierte Shell kennt immerhin die Befehle sshd und rsync. Vielleicht wäre das ja ein Ansatz. Ich weiß aber noch nicht, wie das da mit der Schlüsselverwaltung geht. Der normale Benutzer „u0_73" hat kein Home-Verzeichnis, wie ich es es von Linux her kenne und wo normalerweise der Keyring gespeichert wird.
Gibt es für die vorinstallierte Shell oder sogar für rsync mit deser Shell irgendwo eine Anleitung?
Antworten
#5
Konzeptionell ist Android eher ein Client-OS als ein Server-OS. Somit muss man sich ganz schön verrenken um von Aussen mit hohen Rechten darauf zu zugreifen ohne die Systemsicherheit zu verbiegen. Prinzipiell könntest Du das ganze auch mit Scripting vom Telefon aus anstossen, wodurch der ganze Prozess von Authentifizierung und Autorisierung wesentlich vereinfacht würde. Genau das macht rsync4android.
Alternativ könntest Du auch SE-Linux temporär abschalten, was ich aber mittlerweile nicht mehr empfehle um Probleme zu lösen.
Die Standard-shell com.android.shell ist nicht nur rudimentär ausgestattet sondern auch mMn ziemlich schlecht dokumentiert.
Was also spricht dagegen den BackupProzess clientseitig zu steuern? Insbesondere wenn letztlich kein Admin/Benutzereingriff notwendig ist?
Wenn Du Dich mit Rsync auskennst ist rsync4android ein Kinderspiel! ;o)
Und selbst wenn der Backup-Server nicht dauerhaft läuft bleibt als einzige Handlung ein manuelles Anstoßen übrig.

G900F mit LOS16
Antworten
#6
Wenn Du gucken willst was rsync4android auf dem Telefon so macht empfehle ich einen Emu auf dem PC. Da kannst Du mit vielen guten Tools in die Prozesse gucken. Außer dem üblichen "Scheisse, wo zum Geier liegt jetzt meine Einstellungsdatei" (fopen > error) habe ich nix böses gefunden ;o)

G900F mit LOS16
Antworten
#7
Ich möchte natürlich mit möglichst wenig Aufwand zum Ziel kommen. Deshalb hat mich unangenehm überrascht, dass die SELinux-Rechtevergabe in LineageOS anscheinend eine andere ist als in Fairphone Open OS. Und dass Termux nicht daran angepasst ist. Alles scheitert nur daran, dass der normale Benutzer in Termux nicht auf /storage/emulated/0 zugreifen darf.

Es ist also eigentlich nur eine Kleinigkeit, die verhindert, dass ich mein Bash-Skript weiter verwenden kann. Und das besteht ja nicht nur aus dem Aufruf von rsync. Es baut die gewünschte Verzeichnisstruktur der einzelnen Backups auf dem PC auf und sorgt dafür, dass Hardlinks gesetzt werden (okay, das macht rsync selbst), die wiederum dafür sorgen, dass aus jedem inkrementellen Backup faktisch ein vollständiges wird. Und noch ein paar Sachen mehr. Und ich wollte es noch so erweitern, dass es ältere Backups ab einer gewissen Anzahl automatisch löscht, wie ich es auch für die Backups des PC verwende. Die Entwicklung des Skripts auf dem PC hat mich viel Zeit gekostet, u.a. auch, weil ich mich mit rsync nicht so gut auskenne. Aber immerhin habe ich am PC eine richtige Tastatur, einen großen Bildschirm und eine grafische Oberfläche. Solch ein Skript auf dem Smartphone zu entwickeln (wenn das überhaupt geht), stelle ich mir sehr mühselig vor.

Ich denke, ich nehme mal mit dem Programmierer von Termux Kontakt auf und schildere ihm das Problem. Möglicherweise kennt er es noch nicht und kann die App entsprechend anpassen oder hat eine andere Lösung.
Antworten
#8
Der Termux-App kannst Du keine root-Rechte geben? Du musst im Script doch dann nur die richtige shell (die Termux-shell) angeben?

G900F mit LOS16

Eventuell habe ich auch irgendwo einen Denkfehler?
Du hast auf dem Gerät ein Script liegen? Du machst vom PC aus eine Shell auf und willst dort das Script laufen lassen? Oder läuft das Script auf dem PC und öffnet im Script eine ssh-shell auf dem Telefon?

G900F mit LOS16
Antworten



Möglicherweise verwandte Themen...
Thema Verfasser Antworten Ansichten Letzter Beitrag
  S10 mit LOS 20 kein Bluetooth nach Kopplung Userix 5 1.059 23.01.2024, 20:04
Letzter Beitrag: Userix
  Kein TWRP bei LOS20 und OnePlus 7T maya33 3 1.154 30.11.2023, 21:27
Letzter Beitrag: maya33
  [LineageOS] Kein Systemstart Bernd1712 1 1.231 20.09.2023, 16:31
Letzter Beitrag: wowi63
  Was ist mit /storage/emulated los? Volker Wysk 0 999 25.02.2023, 15:13
Letzter Beitrag: Volker Wysk
  Mediendateien gehen nicht - kein Ton - Videos ruckeln MrMojoRisin666 17 11.691 31.01.2023, 01:11
Letzter Beitrag: pogpu

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste