web-dev-qa-db-fra.com

Impossible de modifier le fichier système / snap / phpstorm ... même avec un compte root dans Ubuntu 18.04

J'ai installé un paquet logiciel enfichable dans le paquet Ubuntu 18.04 et je veux éditer l'un de ses fichiers en utilisant le compte root. D'abord, je suis passé à root avec su, mais ensuite, lorsque j'ai ouvert le fichier dans nano, il me dit:

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

Puis j'ai essayé ceci:

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

après la commande ci-dessus, le fichier ouvert dans nano, mais après avoir effectué les modifications et sauvegardé avec Ctrl+O et après avoir quitté avec Ctrl+x J'ai eu ce message:

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

J'ai même essayé de changer les permissions du fichier avec cette commande:

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

et obtenu ceci:

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

Il est vraiment étonnant que l'utilisateur root ne puisse pas éditer un fichier! Est-ce un bug?

3
Mr Jan

Les fichiers de capture sont montés en lecture seule (ro), et vous pouvez le vérifier en utilisant la commande mount.

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)

Pour modifier des fichiers dans squashfs, vous devez l'annuler, modifier les fichiers, puis reconfigurer le fichier squashfs. Par exemple, si je veux modifier des fichiers dans /var/lib/snapd/snaps/vlc_365.snap

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

Modifiez ce que vous voulez dans squashfs-root (c'est là que tous les fichiers sont décompressés), puis remballez-le.

Sudo mksquashfs squashfs-root vlc_365.snap

Copiez-le à son emplacement d'origine et remontez-le.

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
5
Bernard Wei