Не ясно, спрашиваете ли вы о сохранении исходных разрешений или целевых разрешений. Вы также рассылали спам по нескольким сайтам в SuperUser.
Том Шоу
Для записи, варианты «сохранения» относятся к источнику . cp -pделает целевые атрибуты совпадающими (тем самым сохраняя) исходные атрибуты.
mpersico
1
Я просто наткнулся на эту страницу. cp по умолчанию должен сохранить права доступа к целевым файлам и user: group, потому что он открывает цель в режиме обновления и сохраняет ее inode. Поэтому мне не понятно, почему ответы не указывают на это.
Обратите внимание, что привилегии root необходимы, если вы хотите сохранить право собственности и групповую принадлежность.
Выдержка из руководства:
--preserve[=ATTR_LIST]
preserve the specified attributes (default: mode,owner-
ship,timestamps), if possible additional attributes: context,
links, xattr, all
Не совсем то, что хотел автор. --no-preserveимеет смысл, если используется после --preserve(или его псевдонимов), иначе это не влияет на поведение cp. Автор хотел сохранить файловый режим существующего целевого файла и перезаписать только его содержимое
таз
Пример: заменить ключи хоста ssh cp --no-preserve=mode,ownership ssh* /etc/ssh/. Это делает секретные ключи понятными для всех.
бассейн
Объяснение справочной страницы --preserve ИМХО бессмысленно, поскольку не дает четкого представления о том, что сохранять: исходные или целевые атрибуты
Или вы можете использовать еще лучшую программу установки из GNU coreutils, которая была сделана для этой конкретной цели. Обратите внимание, что он не может выполнять рекурсию (без опции -R или -r).
cp -p
делает целевые атрибуты совпадающими (тем самым сохраняя) исходные атрибуты.Ответы:
Если вы только открыли руководство для
cp
...Следующее не будет перезаписывать файл прав доступа и владения + групповой:
Обратите внимание, что привилегии root необходимы, если вы хотите сохранить право собственности и групповую принадлежность.
Выдержка из руководства:
источник
--no-preserve
имеет смысл, если используется после--preserve
(или его псевдонимов), иначе это не влияет на поведениеcp
. Автор хотел сохранить файловый режим существующего целевого файла и перезаписать только его содержимоеcp --no-preserve=mode,ownership ssh* /etc/ssh/
. Это делает секретные ключи понятными для всех.cat
тоже будет работатьисточник
Или вы можете использовать еще лучшую программу установки из GNU coreutils, которая была сделана для этой конкретной цели. Обратите внимание, что он не может выполнять рекурсию (без опции -R или -r).
http://www.gnu.org/software/coreutils/manual/html_node/install-invocation.html
источник
Ни в коем случае не используйте переключатели, связанные с разрешениями, особенно
--no-preserve
потому, что они ведут себя странно:хорошо:
Плохо:
источник
По умолчанию cp не отменяет разрешения. Если вы хотите убедиться, что разрешение не будет переопределено, используйте
источник