web-dev-qa-db-fra.com

autorisation refusée lorsque sed en place modifier dans mingw

J'utilise mingw.

  $ sed -i "s/a/b/" test.txt
  sed: preserving permissions for `./sed003480': Permission denied

Je peux toucher les fichiers/rm dans le répertoire actuel.

35
peon

Cela est dû aux paramètres de sécurité de Windows.

Ouvrez les paramètres Propriétés du dossier dans le menu contextuel. Dans l'onglet Sécurité, cliquez sur Modifier , appuyez sur Ajouter ... dans dans la fenêtre contextuelle et ajoutez votre utilisateur à la liste, cochez Contrôle total dans la colonne Autoriser . Appuyez sur [~ # ~] ok [~ # ~] deux fois pour appliquer les modifications.

42
peon

Pour moi, le dossier était en lecture seule. décocher l'option lecture seule résout mon problème. Merci au commentaire Zenadix

3
Tapash

Sur Windows 10 WSL, j'ai eu un problème similaire. Le problème était dû au fait que le code VS était ouvert et apparemment à l'aide du fichier. La fermeture du code VS a résolu mon problème.

1
Andreas Broström

TL; DR: utilisé Sudo


Dans mon cas, j'exécutais un script bash exécuté sur le sous-système Windows pour Linux (WSL) comme suit:

./generate.sh

Le script a créé un tas de fichiers cependant, pour des raisons inconnues, sed s'est vu refuser l'autorisation de modifier les autorisations sur ces fichiers pour une raison quelconque:

La commande sed réelle a été utilisée pour effectuer un remplacement de recherche qui ressemblait un peu à ceci:

grep -rl $PATTERN $PUBLIC_API_FOLDER/ \
    | xargs sed -i 's/$PATTERN/$REPLACE/g'

Comme vous pouvez le voir, bien que n'ayant à aucun moment des privilèges élevés, je n'ai pas pu modifier les fichiers créés par le script:

sed: preserving permissions for ‘public_api/models/sedt0qk4D’: Operation not permitted
sed: preserving permissions for ‘public_api/models/sedOxoc1O’: Operation not permitted
sed: cannot rename public_api/models/sedOxoc1O: Permission denied
sed: preserving permissions for ‘public_api/controllers/sedx5BafW’: Operation not permitted
sed: preserving permissions for ‘public_api/models/sedVkdqzc’: Operation not permitted
sed: preserving permissions for ‘public_api/models/sedLvyS3s’: Operation not permitted
sed: cannot rename public_api/models/sedLvyS3s: Permission denied
sed: preserving permissions for ‘public_api/controllers/sedE7GSe8’: Operation not permitted
sed: cannot rename public_api/controllers/sedE7GSe8: Permission denied
sed: preserving permissions for ‘public_api/controllers/sednHZBQf’: Operation not permitted
sed: cannot rename public_api/controllers/sednHZBQf: Permission denied

La solution dans mon cas était d'exécuter simplement le script avec Sudo.

Sudo ./generate.sh
0
Eric McLachlan