Systemdatei /snap/phpstorm kann nicht bearbeitet werden … auch nicht mit Root-Konto in Ubuntu 18.04

Systemdatei /snap/phpstorm kann nicht bearbeitet werden … auch nicht mit Root-Konto in Ubuntu 18.04

Ich habe ein Snap-Paket im Ubuntu 18.04-Paket installiert und möchte eine seiner Dateien mit dem Root-Konto bearbeiten. Zuerst bin ich mit zu Root gewechselt su, aber als ich dann die Datei in Nano geöffnet habe, wird mir Folgendes angezeigt:

 [ File '/snap/phpstorm/36/bin/phpstorm64.vmoptions' is unwritable ]

Dann habe ich Folgendes versucht:

root@elahe-VPCEA31FX:/home/elahe# sudoedit  /snap/phpstorm/36/bin/phpstorm64.vmoptions

Nach dem obigen Befehl wurde die Datei in Nano geöffnet, aber nachdem ich Änderungen vorgenommen und mit Ctrl+ gespeichert hatte Ound nach dem Beenden mit Ctrl+ xerhielt ich diese Meldung:

sudoedit: unable to write to /snap/phpstorm/36/bin/phpstorm64.vmoptions: Read-only file system
sudoedit: contents of edit session left in /var/tmp/phpstorm64XXRCQzZi.vmoptions

Ich habe sogar versucht, die Berechtigungen der Datei mit diesem Befehl zu ändern:

root@elahe-VPCEA31FX:/home/elahe# chmod 755  /snap/phpstorm/36/bin/phpstorm64.vmoptions

und bekam dies:

chmod: changing permissions of '/snap/phpstorm/36/bin/phpstorm64.vmoptions': Read-only file system

Es ist wirklich erstaunlich, dass der Root-Benutzer eine Datei nicht bearbeiten kann! Ist das ein Fehler?

Antwort1

Die Snap-Dateien werden schreibgeschützt (ro) gemountet. Sie können dies mit dem Befehl „mount“ überprüfen.

mount |grep snap
/var/lib/snapd/snaps/vlc_158.snap on /snap/vlc/158 type squashfs (ro,nodev,relatime,x-gdu.hide)
/var/lib/snapd/snaps/core_4486.snap on /snap/core/4486 type squashfs (ro,nodev,relatime,x-gdu.hide)
/var/lib/snapd/snaps/core_4571.snap on /snap/core/4571 type squashfs (ro,nodev,relatime,x-gdu.hide)
/var/lib/snapd/snaps/vlc_365.snap on /snap/vlc/365 type squashfs (ro,nodev,relatime,x-gdu.hide)
/var/lib/snapd/snaps/vlc_190.snap on /snap/vlc/190 type squashfs (ro,nodev,relatime,x-gdu.hide)
/var/lib/snapd/snaps/core_4650.snap on /snap/core/4650 type squashfs (ro,nodev,relatime,x-gdu.hide)

Um Dateien in Squashfs zu ändern, müssen Sie es entpacken, die Dateien ändern und dann die Squashfs-Datei neu erstellen. Wenn ich beispielsweise Dateien in/var/lib/snapd/snaps/vlc_365.snap

sudo umount /snap/vlc/365
sudo unsquashfs /var/lib/snapd/snaps/vlc_365.snap

Ändern Sie darin alles, was Sie möchten squashfs-root(dort werden alle Dateien entpackt) und packen Sie es anschließend erneut.

sudo mksquashfs squashfs-root vlc_365.snap

Kopieren Sie es zurück an seinen ursprünglichen Speicherort und mounten Sie es erneut.

sudo cp vlc_365.snap /var/lib/snapd/snaps/vlc_365.snap
sudo mount -t squashfs -o ro,nodev,relatime,x-gdu.hide /var/lib/snapd/snaps/vlc_365.snap /snap/vlc/365

verwandte Informationen