Il n'est pas clair si vous demandez de conserver les autorisations source ou les autorisations cible. Vous avez également inter-sites spammé vers SuperUser.
Tom Shaw,
Pour mémoire, les options de "préservation" se réfèrent à la source . cp -pfait correspondre les attributs cibles (préservant ainsi) les attributs source.
mpersico
1
Je suis juste tombé sur cette page. cp par défaut devrait conserver les permissions des fichiers cibles et user: group car il ouvre la cible en mode mise à jour et conserve son inode. Donc, je ne comprends pas pourquoi les réponses ne l'indiquent pas.
Notez que les privilèges root sont nécessaires si vous souhaitez conserver la propriété et le groupe.
Un extrait du manuel:
--preserve[=ATTR_LIST]
preserve the specified attributes (default: mode,owner-
ship,timestamps), if possible additional attributes: context,
links, xattr, all
Pas exactement ce que l'auteur voulait. --no-preserveest logique s'il est utilisé après --preserve(ou ses alias), sinon il n'affecte pas le comportement de cp. L'auteur a voulu conserver le mode fichier d'un fichier cible existant et écraser uniquement son contenu
bassin
Ex: remplacer les clés d'hôte ssh cp --no-preserve=mode,ownership ssh* /etc/ssh/. Cela rend les clés secrètes lisibles dans le monde entier.
bassin
L'explication --preserve de la page de manuel est absurde à
Ou vous pouvez utiliser un programme d' installation encore meilleur à partir de coreutils GNU qui a été conçu à cet effet particulier. Veuillez noter qu'il n'est pas en mesure de recurse (pas d'option -R ou -r).
cp -p
fait correspondre les attributs cibles (préservant ainsi) les attributs source.Réponses:
Si vous n'avez ouvert le manuel que pour
cp
...Le suivant ne remplacera pas les autorisations de fichiers et la propriété + le groupe:
Notez que les privilèges root sont nécessaires si vous souhaitez conserver la propriété et le groupe.
Un extrait du manuel:
la source
--no-preserve
est logique s'il est utilisé après--preserve
(ou ses alias), sinon il n'affecte pas le comportement decp
. L'auteur a voulu conserver le mode fichier d'un fichier cible existant et écraser uniquement son contenucp --no-preserve=mode,ownership ssh* /etc/ssh/
. Cela rend les clés secrètes lisibles dans le monde entier.cat
fonctionnera aussi:la source
Ou vous pouvez utiliser un programme d' installation encore meilleur à partir de coreutils GNU qui a été conçu à cet effet particulier. Veuillez noter qu'il n'est pas en mesure de recurse (pas d'option -R ou -r).
http://www.gnu.org/software/coreutils/manual/html_node/install-invocation.html
la source
N'utilisez pas du tout de commutateurs liés aux autorisations, en particulier
--no-preserve
, car ils se comportent étrangement:bien:
mauvais:
la source
Le cp ne remplace pas les autorisations par défaut. Si vous voulez vous assurer que l'autorisation ne sera pas remplacée, utilisez
la source