Рейтинг:0

Почему том Docker доступен для записи всем, если установлено значение /tmp?

флаг in

Для контекста:

докер --версия
    Докер версии 20.10.7, сборка 20.10.7-0ubuntu5~20.04.2

тест 1: объем /мой объем

Вот мой Dockerfile

ОТ альпийского: последний
ПОЛЬЗОВАТЕЛЬ 1000:1000
ОБЪЕМ /myvolume

и команды сборки + запуска:

docker build -t myimage .
docker run --rm -it myimage

затем, один раз в контейнере:

/ $ кто
    whoami: неизвестный uid 1000
/ $ ls -ld /мой объем/
    drwxr-xr-x 2 root root 4096 8 марта 09:22 /myvolume/
/ $ коснуться /myvolume/тест
    touch: /myvolume/test: Отказано в доступе

Пока неудивительно, что пользователь с UID 1000 не может писать на /мой объем.

тест 2: объем /tmp

Мой докерфайл

ОТ альпийского: последний
ПОЛЬЗОВАТЕЛЬ 1000:1000
ОБЪЕМ /tmp

(те же команды сборки + запуска), а в контейнере:

/ $ кто
    whoami: неизвестный uid 1000
/$ls-ld/тмп
    drwxrwxrwt 2 root root 4096 24 ноября 09:20 /tmp
/ $ коснуться /tmp/тест
/ $ ls -l /tmp
    всего 0
    -rw-r--r-- 1 1000 1000 0 8 марта 09:23 тест

Теперь громкость изменилась на /tmp, в него может писать пользователь с UID 1000.

Я знаю /tmp обычно доступен для записи в GNU/Linux, но здесь это выглядит «волшебно» (что хорошо, только когда рядом Гарри Поттер), и мне интересно, будет ли:

a) Я что-то упускаю из того, как работают Docker и тома (пожалуйста, отправьте меня к соответствующей документации/учебникам)

б) это совпадение из-за моей настройки / чего-то не хватает, чтобы быть явным и перестать полагаться на значения по умолчанию

c) это недокументированная функция, которая может быть изменена в любое время без предварительного уведомления

d) это функция, о которой мне не удалось найти документацию, и я могу смело полагаться на тот факт, что при подключении тома к /tmp, он всегда доступен для записи

Рейтинг:0
флаг cn

Эта «Магия» является так называемой (и хорошо задокументированной) «Липкий бит".

Httqm avatar
флаг in
Вы упустили мою мысль (или я недостаточно четко задал свой вопрос): я знаю о /tmp и его разрешениях. Мой вопрос заключается в том, почему (и как) том получает эти разрешения, когда он связан с / tmp, а где-то еще.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.