Почему cp --no-preserve = mode сохраняет режим? Доступны альтернативные инструменты?

У меня была похожая проблема, и я проверил, что у меня все соответствующие настройки apache правильные.

Однако я упустил из виду, что у меня был nginx в качестве обратного прокси перед apache. Я также использую Plesk, и это из их РУКОВОДСТВА по исправлениям POODLE:

Если вы используете Nginx, включите следующую строку в свою конфигурацию среди других директив SSL в /etc/nginx/nginx.conf :

ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

6
11.10.2016, 15:05
2 ответа

В случае, если вы используете GNU coreutils. Это ошибка, которая исправлена в версии 8.26.

https://lists.gnu.org/archive/html/bug-coreutils/2016-08/msg00016.html

Так что альтернативным инструментом будет обновленный coreutils, или, например, rsync, который способен сделать это даже с сохранением прав доступа:

$ rsync -a --relative  /sys/power/state /tmp/test
$ rsync -a --relative  /sys/bus/cpu/drivers_autoprobe /tmp/test/

Хотя я вижу, что rsync имеет другие проблемы для этих конкретных sysfs файлов, см. Опция rsync для отключения проверки?

Другим сложным обходным решением было бы chmod всех каталогов после каждой команды cp.

$ find /tmp/test -type d -exec chmod $(umask -S) {} \;

(Команда find/chmod выше также не будет работать при любой комбинации существующих разрешений и umask).

BTW вы можете сообщить об этой ошибке в ваш Linux-дистрибутив, и они могут исправить ваш пакет 8.21 через обновления.

15
27.01.2020, 20:23

Простое решение ошибки

#!/bin/sh

for last; do : ; done

while [ $# -gt 1 ]; do
  mkdir -p "${last}/$(dirname "$1")"
  cp --parents "$1" "$last"
  shift
done
-1
27.01.2020, 20:23

Теги

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