Невозможно создать временный файл для здесь-документа: В доступе отказано

Вы можете получить много информации с помощью uname , а также проверив с помощью файла тип исполняемых файлов:

$ gcc -dumpmachine
x86_64-linux-gnu
$ uname -o -m
x86_64 GNU/Linux
$ file /usr/bin/file
/usr/bin/file: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.32, BuildID[sha1]=d8ac02806880576708bf189c064fca78ea89f1d0, stripped

Если на вашем устройстве нет файла , скопируйте с него двоичный исполняемый файл на другой компьютер Linux и запустите там файл .

10
10.03.2018, 06:36
3 ответа

Мой личный опыт решения этой проблемы связан с umaskдвоичной записью, как и представление @eliptical -. Я предполагал, что письмо:

umask 0644 

предоставил бы мне доступ для чтения и записи к файлам, которые я создал, что не так

После того, как я изменил umaskна

umask 0022

ошибка исчезла.

Фактически, двоичную запись следует понимать как двоичное дополнение.

Итак, в маске umaskниже, когда кто-то пишет 0для владельца файла, этот пользователь будет иметь полный доступ к файлам, которые он или она создает. Значение 2означает, что 2-й бит замаскирован, что в данном случае означает, что по умолчанию другим пользователям не будет разрешено записывать файлы, созданные владельцем файла.

1
27.01.2020, 20:00

Я добавилumask 777перед строкой здесь. После удаления umask ошибка ушла. Итак, извлеченный урок :Существует временный файл, созданный для здесь-строки (<<<), и он связан с здесь-документом (<<), и для того, чтобы они работали, у вас должен быть установлен соответствующий umask.

10
27.01.2020, 20:00

В моем случае я изменил /tmpразрешения по умолчанию для каталога (Думаю, я изменил по ошибке на 0777 ).

Решение состояло в том, чтобы вернуться к разрешению по умолчанию /tmp, которое равно 1777 в восьмеричной системе (1=липкий бит, 7=R+W+X ).

Короче говоря, sudo chmod -R 1777 /tmpдолжен решить проблему.

8
27.01.2020, 20:00

Теги

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