Как защитить код в снимках от несанкционированного доступа?

Я заметил, что, после того как снимок является установкой, весь код доступен в/snap/snap_package/current каталоге. Существует ли способ предотвратить доступ к этому коду неавторизованных пользователей?

1
задан 16 January 2017 в 09:22

1 ответ

В то время как часть процесса превращения его в снимок означает, что все те файлы принадлежат как корень, можно все еще использовать биты режима файла. Возьмите это snapcraft.yaml, например:

name: not-protected-snap
version: '0.1'
summary: my summary
description: my description

grade: devel
confinement: strict

apps:
  hello:
    command: hello.sh

parts:
  my-part:
    plugin: nil
    build: |
      echo "#!/bin/sh" > $SNAPCRAFT_PART_INSTALL/hello.sh
      echo "echo \"hello world\"" >> $SNAPCRAFT_PART_INSTALL/hello.sh
      chmod a+x $SNAPCRAFT_PART_INSTALL/hello.sh

Выполнение snapcraft на этом, и затем sudo snap install --dangerous <snap>. Это - читаемый мир, как Вы отметили:

$ not-protected-snap.hello
hello world
$ cat /snap/not-protected-snap/current/hello.sh
#!/bin/sh
echo "hello world"

Примечание, что происходит, если мы изменяем это snapcraft.yaml немного:

name: protected-snap
version: '0.1'
summary: my summary
description: my description

grade: devel
confinement: strict

apps:
  hello:
    command: hello.sh

parts:
  my-part:
    plugin: nil
    build: |
      echo "#!/bin/sh" > $SNAPCRAFT_PART_INSTALL/hello.sh
      echo "echo \"hello world\"" >> $SNAPCRAFT_PART_INSTALL/hello.sh
      chmod 500 $SNAPCRAFT_PART_INSTALL/hello.sh

Выполнение snapcraft на этом, и затем sudo snap install --dangerous <snap>. Теперь Вы будете видеть различия, которые Вы ожидали бы:

$ protected-snap.hello 
/snap/protected-snap/x1/command-hello.wrapper: 5: exec: /snap/protected-snap/x1/hello.sh: Permission denied
$ cat /snap/protected-snap/current/hello.sh cat: /snap/protected-snap/current/hello.sh: Permission denied
$ sudo protected-snap.hello
hello world
$ sudo cat /snap/protected-snap/current/hello.sh
#!/bin/sh
echo "hello world"
1
ответ дан 7 December 2019 в 15:41

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

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