Вы можете получить много информации с помощью 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 и запустите там файл
.
Мой личный опыт решения этой проблемы связан с umask
двоичной записью, как и представление @eliptical -. Я предполагал, что письмо:
umask 0644
предоставил бы мне доступ для чтения и записи к файлам, которые я создал, что не так
После того, как я изменил umask
на
umask 0022
ошибка исчезла.
Фактически, двоичную запись следует понимать как двоичное дополнение.
Итак, в маске umask
ниже, когда кто-то пишет 0
для владельца файла, этот пользователь будет иметь полный доступ к файлам, которые он или она создает. Значение 2
означает, что 2-й бит замаскирован, что в данном случае означает, что по умолчанию другим пользователям не будет разрешено записывать файлы, созданные владельцем файла.
Я добавилumask 777
перед строкой здесь. После удаления umask ошибка ушла. Итак, извлеченный урок :Существует временный файл, созданный для здесь-строки (<<<
), и он связан с здесь-документом (<<
), и для того, чтобы они работали, у вас должен быть установлен соответствующий umask.
В моем случае я изменил /tmp
разрешения по умолчанию для каталога (Думаю, я изменил по ошибке на 0777 ).
Решение состояло в том, чтобы вернуться к разрешению по умолчанию /tmp
, которое равно 1777 в восьмеричной системе (1=липкий бит, 7=R+W+X ).
Короче говоря, sudo chmod -R 1777 /tmp
должен решить проблему.