“Permission Denied” l'utilisation de cygwin sous Windows
De fond:
Je suis en train d'écrire un [.bat] fichier donc je peux double-cliquez dessus et un script bash se invoquée. Le script bash lancer un peu de fenêtres applications à interface graphique pour surveiller GPU/CPU températures. Je viens de faire une nouvelle installation de cygwin v1.7.7-1 (téléchargé aujourd'hui) et windows 7.
Code:
moniteur-temps.chauve-souris:
C:\cygwin\bin\bash.exe ~/bin/monitor-temps.bash
pause
Code:
moniteur-temps.bash:
#!/usr/bin/bash
"/cygdrive/c/Users/michael/Desktop/apps_and_drivers/GPU-Z.0.4.8.exe" &
De sortie:
Après je double-cliquez sur le bouton [.bat] le fichier, je reçois un:
C:\Users\michael\Desktop>C:\cygwin\bin\bash.exe ~/bin/monitor-temps.bash
C:\Users\michael\Desktop>pause
Press any key to continue . . . /home/michael/bin/monitor-temps.bash: line 2: /cygdrive/c/Users/michael/Desktop/apps_and_drivers/GPU-Z.0.4.8.exe: Permission denied
J'obtiens toujours la même erreur d'autorisations lorsque je cd dans le répertoire et exécutez manuellement l'application.
Autorisations:
De mon expérience avec la permission des problèmes sous Linux, tout est bon parce que je suis l'utilisateur, je pense que je suis, et le fichier a prévu des autorisations:
$ whoami
michael
$ ls -l GPU*
-rwx------+ 1 michael None 890720 2010-12-01 19:23 GPU-Z.0.4.8.exe
Question:
Personne ne sait comment résoudre ce problème? Ai-je raté quelque chose?
OriginalL'auteur Mike | 2010-12-18
Vous devez vous connecter pour publier un commentaire.
En tant que Développeur, j'utilise un raccourci pour fournir une interface de ligne de commande (CLI) qui se comporte de façon similaire à Linux, dans mon environnement Windows, et a couru dans le même problème en essayant de décompresser un fichier.
La solution était de définir le raccourci pour "Exécuter en tant qu'Administrateur".
Si vous utilisez cette méthode pour accéder à votre environnement Cygwin, allez dans les propriétés du raccourci, sélectionnez le bouton Avancé pour obtenir les options pour "Exécuter en tant qu'Administrateur", cochez la case, cliquez sur Ok. Et vous partez!!
Vous pouvez également configurer votre fichier de commandes pour ce faire, en faisant un raccourci et de le faire ci-dessus.
Espère que ça aide!
J'avais besoin de modifier
/etc/nsswitch.conf
pour résoudre un problème de profil et de lancer le terminal en tant qu'administrateur a été la seule chose qui me permettrait de le faire. Merci!Cette astuce ne fonctionne pas pour les lecteurs de réseau. "Exécuter en tant qu'Administrateur" mode restreint l'accès à
/cygdrive/c
seulement.OriginalL'auteur Darkstrumn
Je pense que vous avez de changer le répertoire ou le fichier d'autorisation. Si vous voulez autorisation de modification d'un fichier ou d'un répertoire, alors vous devez ajouter le chemin complet avec le code.
Que si vous souhaitez modifier les autorisations sur cocos2d-x dossier sur C:\yourDirectory (je suis sur Windows, sur Mac il serait
/
au lieu de\
) écrire le code sur la console cygwin:Modifier les autorisations du fichier bash était assez pour moi.
OriginalL'auteur Sajidur Rahman
La façon la plus simple de résoudre ce problème est:
OriginalL'auteur Tomalak
Vérifier la table de montage avec
cat /proc/mounts
oumount
et assurez-vous que chaque point de montage de/
,/usr/bin
,/usr/lib
a unnoacl
drapeau. Si il est absent, pour corriger/etc/fstab
et de redémarrer. (Réinitialiser la synchronisation de lanoacl
drapeau de la racine de point de montage pour moi, et je ne sais pas si la même chose peut être réalisé sans avoir à redémarrer).Vérifier pour une valeur NULLE SID enregistrement et autres étranges enregistrements dans la sortie de icacls contre le fichier. Ils apparaissent ajouté sur l'écriture par les ACL POSIX couche de traduction dans Cygwin (à l'aide de "noacl" dans /etc/fstab permet la désactivation, mais le mal aura déjà été fait).
La réinitialisation de Windows ACL simplement sur le fichier peut ne pas être suffisant si l'contenant les parents ont eu le NULL SID enregistrement. On doit exécuter
à partir de l'Invite de Commande pour supprimer le superflu et de registres de Windows ACL dans chaque fichier et répertoire.
Mise à jour
D'autres commandes de réinitialisation de la propriété, de supprimer les droits par défaut et afficher les Acl d'un binaire avant et après les modifications:
icacls %croot% /grant:r SYSTEM:F Administrators:F /t /c /l /q
.gist.github.com/ilatypov/5956ae36da8ff0aa2212eb2004def8c4
OriginalL'auteur eel ghEEz
-rwx------+ peut-être le problème. Certains caché acl peuvent interdire de x pour vous.
Réinitialiser votre acl avec setfacl ensuite.
Ou vous avez besoin d'autorisations élevées:
OriginalL'auteur rurban
J'ai eu ce problème, et il fixe par
cd
dans le répertoire qui contient la boîte, j'ai juste fait (emballés, ou, reconditionné). Puisvagrant box add <file.box> --name <name>
. Je pense que les Chemins fvck les choses, et de la faire échouer. Ensuite, vérifiez avecvagrant box list
. Ensuite, J'Aimkdir coolbox; cd coolbox
. Ensuite, j'ai justevagrant init <name>
et tout arrive comme par magie.OriginalL'auteur Felipe Alvarez
git bash, exécutez la commande comme ceci:
cmd "/C postgresql-10.5-2-windows-x64.exe --unattendedmodeui minimal --mode unattended --servicename 'postgreSQL'"
OriginalL'auteur jackchen
il suffit de changer le mode de scripts à l'aide de commande chmod pour le rendre exécutable.
voir man chmod pour plus de détails.
OriginalL'auteur hakish