![Não é possível editar o arquivo do sistema/snap/phpstorm... mesmo com conta root no Ubuntu 18.04](https://rvso.com/image/1157723/N%C3%A3o%20%C3%A9%20poss%C3%ADvel%20editar%20o%20arquivo%20do%20sistema%2Fsnap%2Fphpstorm...%20mesmo%20com%20conta%20root%20no%20Ubuntu%2018.04%20.png)
Instalei um pacote snap no pacote Ubuntu 18.04 e quero editar um de seus arquivos usando a conta root. Primeiro mudei para root com su
, mas quando abri o arquivo no nano ele me disse:
[ File '/snap/phpstorm/36/bin/phpstorm64.vmoptions' is unwritable ]
Então eu tentei isso:
root@elahe-VPCEA31FX:/home/elahe# sudoedit /snap/phpstorm/36/bin/phpstorm64.vmoptions
após o comando acima o arquivo foi aberto no nano, mas depois de fazer alterações e salvar com Ctrl+ Oe depois de sair com Ctrl+ xrecebi esta mensagem:
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
Até tentei alterar as permissões do arquivo com este comando:
root@elahe-VPCEA31FX:/home/elahe# chmod 755 /snap/phpstorm/36/bin/phpstorm64.vmoptions
e consegui isso:
chmod: changing permissions of '/snap/phpstorm/36/bin/phpstorm64.vmoptions': Read-only file system
É realmente incrível que o usuário root não possa editar um arquivo! Isso é um inseto?
Responder1
Os arquivos snap são montados como somente leitura (ro) e você pode verificar isso usando o comando 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)
Para modificar arquivos no squashfs, você precisa descompactá-lo, modificar os arquivos e refazer o arquivo squashfs. Por exemplo, se eu quiser modificar arquivos em/var/lib/snapd/snaps/vlc_365.snap
sudo umount /snap/vlc/365
sudo unsquashfs /var/lib/snapd/snaps/vlc_365.snap
Modifique o que quiser squashfs-root
(é onde todos os arquivos são descompactados) e, em seguida, empacote-o novamente.
sudo mksquashfs squashfs-root vlc_365.snap
Copie-o de volta ao local original e monte-o novamente.
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