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?
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