Четыре вещи вмешиваются для определения разрешения файла.
open
для регулярных файлов, mkdir
для каталогов, и т.д.).022
удаляет разрешение другой-записи и запись группы. umask 007
оставляет разрешение записи группы, но делает файл абсолютно запрещенным другим.chmod
явно для изменения полномочий на то, что это хочет. Пользователь, который владеет файлом, может установить его полномочия свободно.Некоторый популярный выбор наборов полномочий для шага 1:
Это - umask, который заставляет файлы не быть читаемыми миром даже при том, что приложения могут и обычно включать разрешение записи других в полномочия создания файла.
В случае gcc выходной файл сначала создается с полномочиями 666 (замаскированный umask), затем позже chmod'ed для создания этого исполняемым файлом. Gcc мог создать исполняемый файл непосредственно, но не делает: это только делает исполняемый файл файла, когда это закончило писать это, так, чтобы Вы не рисковали начинать выполнять программу, в то время как это неполно.
Вот как я оказался, что занимался этим, используя советы от других. NOAA в этом случае имеет ftp и http-ресурс для этого, так что я написал сценарий, который делает следующее:
пример сценария:
# generate file list
ncftpls ftp://path/to/ftp/resources > /tmp/remote_files.txt
# append the full path, use http
sed -i -e 's/^/http:\/\/www1\.website\.gov\/pub\/data\//' /tmp/remote_files.txt
# download using aria2c
aria2c -i /tmp/remote_files.txt -d /filestore/2015
Это работает намного быстрее и, вероятно, добрее к серверам NOAA. Вероятно, есть даже умный способ избавиться от этого среднего шага, но я еще не нашел.
Да, вы правы. К сожалению, в то время как спецификации FTP предлагают альтернативный режим передачи, который способен использовать несколько файлов на одном соединении на одном передаче данных, в последний раз я проводил опрос имеющегося программного обеспечения (что по общему признанию вернулось в 1998 году), никто не поддержал его. Я не думаю, что ситуация изменилась, потому что интерес к FTP был довольно низким. Большинство организаций с такими настройками данных обеспечивают доступ к ним через http, или в крупных архивах, чтобы избежать этой проблемы. Вы должны проверить, не делает этого NOAA.
, а не тестирование для действительного исполняемого исполняемого исполняемого файла, возможно, лучше всего тестировать то, что такое текущая архитектура, затем выберите правильный исполняемый файл на основе этого. Например:
if [ $(uname -m) == 'armv6l' ]; then
tool-rpi
else
tool-osx
fi
Тем не менее, если тестирование исполняемого файла - это то, что вы действительно , хотите сделать, GNU файл
может сообщить вам архитектуру исполняемого файла:
user@host:~$ file $(whereis cat)
ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.26, BuildID[sha1]=0x4e89fd8f129f0a508afa325b0f0f703fde610971, stripped
-121-----97785- , если у вас есть доступ на ваш хост (в этом случае, я бы предположил, что вы входите в систему анонимно и не имеете доступа к записи) Zip / Tar Файлы перед загрузкой