Почему для созданного мной файла bin отказано в разрешении на выполнение?

Как уже указывал JdeBP, начиная с Debian 9, apt больше не поддерживает SHA -1, что означает, что файл InReleaseнеобходимо создавать с помощью SHA -256 вместо (, то же самое касаетсяRelease.pg).

Что исправило это для меня, так это указание -digest-algo SHA256в качестве параметра для gpg, поэтому полная последовательность будет:

  1. Создать пакет:

    dpkg-deb --build ${PACKAGE_NAME}-1.0/
    sudo rm ${SOME_TEMP_PATH}/*
    mv ${PACKAGE_NAME_name}-1.0.deb ${SOME_TEMP_PATH}/
    dpkg-scanpackages ${SOME_TEMP_PATH} /dev/null | gzip -9c > ${SOME_TEMP_PATH}/Packages.gz
    sudo rm ${PATH_TO_REPO_IN_WWW_SERVER}/*
    sudo cp ${SOME_TEMP_PATH}/* ${PATH_TO_REPO_IN_WWW_SERVER}
    cd ${PATH_TO_REPO_IN_WWW_SERVER}
    
  2. Подпишите:

    apt-ftparchive --md5 --sha256 release.  > Release 
    gpg --digest-algo SHA256 --armor --output Release.gpg --detach-sign Release
    gpg --digest-algo SHA256 --clearsign --output InRelease Release
    

Подписание также может быть выполнено из временной папки, а затем скопировано в папку веб-сервера полностью, или вы можете поиграть с путями, а именно " .", используемое при вызове apt-ftparchive, если вы хотите сохранить ваши .debв отдельном дереве.

2
20.12.2019, 19:42
1 ответ

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

umask (2)используется для определения прав доступа к файлам по умолчанию. Если вы просто запустите umaskбез параметров, он напечатает текущее значение для вашего пользователя. Это значение, которое будет вычтено из разрешений, используемых конкретным приложением при создании файла, обычно 666 (rw-rw-rw-)разрешений для файлов или 777 (rwxrwxrwx)разрешений для каталогов.

Таким образом, если ваше значение umask 002 (довольно распространено ), то при создании нового файла он получит разрешения 664 (rw-rw-r--).

Вы можете изменить значение umask по умолчанию, запустив umask new_value, т.е. :umask 044, хотя, поскольку вы можете вычесть из 666 только для файлов, вы не сможете использовать его для выполнения по умолчанию. Кроме того, чтобы сделать его постоянным, вам нужно будет добавить это в файл конфигурации вашего rc или профиля.

Связанные:

Почему umask не меняет разрешения на выполнение для файлов?
Как работает umask
как дать разрешение на выполнение с помощью umask
Почему umask 077 не позволяет пользователю запускать файлы/каталоги?

2
27.01.2020, 22:08

Теги

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