Владение файлами и разрешения в контейнерах Singularity - PullRequest
1 голос
/ 10 апреля 2020

Когда я запускаю singularity exec foo.simg whoami, я получаю свое собственное имя пользователя от хоста, в отличие от Docker, где я получаю root или пользователя, указанного в контейнере.

Если я смотрю на /etc/passwd внутри этого контейнера Singularity добавлена ​​запись в /etc/passwd для моего идентификатора пользователя хоста.

Как создать переносимый контейнер Singularity, если я не знаю идентификатора пользователя, что программы будут запускаться как ?

Я преобразовал контейнер Docker в образ Singularity, но он ожидает, что он будет работать как определенный идентификатор пользователя, который он определил, и несколько каталогов были chown 'd для этого пользователя. Когда я запускаю его под Singularity, мой хост-пользователь не имеет доступа к этим каталогам.

Это было бы взломом, но я мог бы изменить изображение на chmod 777 всех этих каталогов. Есть ли лучший способ заставить этот образ работать на Singularity как любой пользователь?

(я использую Singularity 2.5.2.)

1 Ответ

0 голосов
/ 14 апреля 2020

Во-первых, если возможно, обновитесь до версии 3 Singularity (и / или сделайте так, чтобы администраторы вашего кластера сделали это). V2 больше не поддерживается, и в нескольких версиях <2.6.1 есть проблемы с безопасностью. </p>

Singularity фактически монтирует /etc/passwd хост-системы в контейнер, чтобы ее мог запустить любой произвольный пользователь. К сожалению, это также эффективно блокирует любых пользователей, которые могли быть созданы Dockerfile. Решение состоит в том, чтобы chmod любые файлы и каталоги были доступны для чтения всем. chmod -R o+rX /path/to/base/dir на шаге %post является самым простым.

Поскольку конечное изображение доступно только для чтения, разрешение на запись ничего не делает, и полезно думать о записи только в файлы / каталоги которые были прикреплены к образу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...