mktemp в контейнере Docker не работает, но Touch работает
414
Paul
Я нахожусь в док-контейнере с сопоставленным томом NFS. В каталоге внутри тома я могу создавать файлы touch
другими способами, но не используя mktemp
:
$ ls -ld /home/share/scripts/converth264queue/ drwxrwxr-x 1 abc abc 964 Oct 22 08:04 /home/share/scripts/converth264queue/ $ touch /home/share/scripts/converth264queue/test2 $ ls -l /home/share/scripts/converth264queue/test2 -rw-r--r-- 1 abc abc 10 Oct 22 08:04 /home/share/scripts/converth264queue/test2 $ cat > /home/share/scripts/converth264queue/test3 test etst $ mktemp -p /home/share/scripts/converth264queue file.XXXXXXXX mktemp: failed to create file via template ‘/home/share/scripts/converth264queue/file.XXXXXXXX’: Permission denied $ mktemp -p /home/share/scripts/converth264queue mktemp: failed to create file via template ‘/home/share/scripts/converth264queue/tmp.XXXXXXXXXX’: Permission denied $ id uid=1000(abc) gid=100(abc) groups=100(abc),1000(users) $ ls -lnd /home/share/scripts/converth264queue/ drwxrwxr-x 1 1000 100 964 Oct 22 08:04 /home/share/scripts/converth264queue/
Есть идеи, почему это произойдет?
Обратите внимание, что mktemp в докере предоставляется coreutils, поэтому нет setuid:
$ ls -ld $(which mktemp) lrwxrwxrwx 1 root root 20 Oct 20 09:09 /bin/mktemp -> ../usr/bin/coreutils $ ls -ld /usr/bin/coreutils -rwxr-xr-x 1 root root 1065928 May 1 21:44 /usr/bin/coreutils
(1) Я бы лучше понял ваш вопрос, если бы вы продемонстрировали, что * некоторые * команды работают с полным путем; например, `touch / home / share / scripts / converth264queue / test`,` cat> / home / share / scripts / converth264queue / test2` и даже `` ls -ld / home / share / scripts / converth264queue``. (2) Это, вероятно, не очень поможет в этом случае, но, как правило, когда команда неожиданно / загадочно завершается с ошибкой, рекомендуется `echo $? ', Чтобы узнать, говорит ли это вам что-нибудь или дает вам Подсказка. (3) Эта проблема возникает только в `/ home / share / scripts / converth264queue`? … (Продолжение)
Scott 6 лет назад
0
(Продолжение) ... Какие эксперименты вы провели? Где это происходит, а не происходит? Тот факт, что вы продемонстрировали его в каталоге, длина которого составляет 36 символов (например, в девять раз длиннее `/ tmp`), затрудняет чтение вопроса (требует горизонтальной прокрутки) и затрудняет комментирование. (4) Есть ли вероятность того, что `mktemp` установлен в вашей системе? Сделайте `ls -ld $ (который mktemp)`. (5a) `ls` игнорирует` -a` при указании `-d` (то есть` ls -lad` эквивалентно `ls -ld`). (5b) `ls -n` подразумевает` -l` (то есть `ls` игнорирует` -l`, когда вы указываете `-n`).
Scott 6 лет назад
0
Да, код ошибки просто `1`. Мне интересно, есть ли что-то в гарантии отсутствия столкновений, которую предоставляет mktemp, что означает, что ему нужен больший доступ, чем он может быть предоставлен для тома nfs с сопоставленным докером.
Paul 6 лет назад
0
0 ответов на вопрос
Похожие вопросы
-
3
Ubuntu Server с рабочим окружением GNOME - настройка разрешений файла конфигурации Apatche
-
2
Как разрешить запуск программ, требующих прав администратора, при запуске в Vista?
-
1
Windows не может записать на диск во время chkdsk и сохранения в офисе
-
-
5
Есть ли способ запустить запланированное задание в Windows XP без необходимости ввода имени пользова...
-
3
Как я могу запретить другим пользователям просматривать содержимое моего домашнего каталога, кроме о...
-
8
Как я могу дать права на запись в папку всем пользователям Linux?
-
7
Удаление «восстанавливаемых» файлов в Vista
-
1
Доступ к бывшему диску XP в качестве второго диска под Windows 7
-
5
Доступ к бывшему диску XP в качестве второго диска под Windows 7 без Chowning
-
1
В чем разница между группами по умолчанию в Mac OS X?