Невозможно редактировать системный файл / snap / phpstorm… даже с учетной записью root в Ubuntu 18.04 [дубликат]

На этот вопрос уже есть ответ здесь:

Я установил пакет snap в пакете Ubuntu 18.04 и хочу отредактировать один из его файлов, используя учетную запись root. Сначала я переключился на root с помощью su , но затем, когда я открыл файл в nano, он сказал мне:

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

Затем я попробовал следующее:

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

после указанной выше команды файл открылся в nano, но после внесения изменений и сохранение с помощью Ctrl + O и после выхода с Ctrl + x я получил это сообщение:

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

Я даже пытался изменить разрешения файла с помощью этой команды:

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

и получил следующее:

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

Это действительно удивительно, что пользователь root не может редактировать файл! Это ошибка?

3
задан 15 June 2018 в 11:53

1 ответ

Поспешные файлы смонтированы как только для чтения (ro), и можно проверить это при помощи команды монтирования.

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)

Для изменения файлов в squashfs необходимо не раздавить его, изменить файлы и затем переделать squashfs файл. Например, если я хочу изменить файлы в /var/lib/snapd/snaps/vlc_365.snap

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

Измените что-либо, в чем Вы хотите squashfs-root (это - где все файлы распакованы в), и затем переупакуйте его.

sudo mksquashfs squashfs-root vlc_365.snap

Скопируйте его назад в его исходное местоположение и повторно смонтируйте его.

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
6
ответ дан 1 December 2019 в 15:21

Другие вопросы по тегам:

Похожие вопросы: