"Permission Denied" mit cygwin in Windows
Hintergrund:
Ich bin versucht zu schreiben [.Fledermaus] - Datei, so kann ich doppelklicken Sie darauf, und ein bash-script bekommst aufgerufen. Die bash-script gestartet, ein paar windows-GUI-Anwendungen zu überwachen, GPU/CPU-Temperaturen. Ich habe gerade eine frische Installation von cygwin v1.7.7-1 (heute runtergeladen) und windows 7.
Code:
monitor-temps.bat:
C:\cygwin\bin\bash.exe ~/bin/monitor-temps.bash
pause
Code:
monitor-temps.bash:
#!/usr/bin/bash
"/cygdrive/c/Users/michael/Desktop/apps_and_drivers/GPU-Z.0.4.8.exe" &
Ausgabe:
Nachdem ich Doppelklick auf die [.Fledermaus] - Datei, bekomme ich ein:
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
Ich immer noch die gleichen Berechtigungen Fehler, wenn ich die cd in das Verzeichnis und manuell ausführen der Anwendung.
Berechtigungen:
Aus meiner Erfahrung mit permission-Probleme Linux, sieht alles gut aus, denn ich bin der user, ich glaube, ich bin, und die Datei hat die Berechtigungen:
$ whoami
michael
$ ls -l GPU*
-rwx------+ 1 michael None 890720 2010-12-01 19:23 GPU-Z.0.4.8.exe
Frage:
Weiß jemand, wie man dieses Problem beheben? Bin ich etwas fehlt?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Als Entwickler, ich benutze eine Verknüpfung, um eine command-line-interface (CLI), die sich ähnlich verhält wie auf Linux, in meinem Windows-Umgebung, und lief in das gleiche Problem versucht zu entpacken einer Datei.
Das Update war um die Verknüpfung "als Administrator Ausführen".
Wenn Sie diese Methode verwenden, um den Zugriff auf Ihre Cygwin Umgebung, gehen Sie zu den Eigenschaften der Verknüpfung, wählen Sie die Schaltfläche "Advanced" die Optionen auf "als Administrator Ausführen", aktivieren Sie das Kontrollkästchen, klicken Sie auf Ok. Und Los gehts!!
Sie können auch festlegen, dass Ihre batch-Datei, um dies zu tun, indem Sie eine Verknüpfung, um es, und dabei die oben.
Hoffe, das hilft!
/etc/nsswitch.conf
fix ein Profil-problem, und starten Sie das terminal als administrator war das einzige, was, das mir erlauben würde das zu tun. Danke!/cygdrive/c
nur.Ich denke, Sie müssen ändern Sie das Verzeichnis oder die Datei-Berechtigung. Wenn Sie möchten, ändern Sie die Berechtigung der Datei oder des Verzeichnisses, dann müssen Sie vollständigen Pfad mit dem code.
Als wenn Sie möchten, ändern Sie die Berechtigung auf cocos2d-x-Ordner auf C:\yourDirectory (ich bin auf Windows; auf dem Mac wäre es
/
statt\
) schreiben Sie den code auf der cygwin-Konsole:Überprüfen Sie die mount-Tabelle mit
cat /proc/mounts
odermount
und stellen Sie sicher, dass jeder mount-point aus/
,/usr/bin
,/usr/lib
hat einenoacl
Flagge. Wenn es fehlt, richtige/etc/fstab
und neu starten. (Neustart synchronisiert, bis dienoacl
Flagge der root-mount-Punkt für mich, und ich weiß nicht, ob das gleiche kann erreicht werden ohne Neustart).Überprüfen, ob ein NULL-SID-Datensatz und andere seltsame Einträge in der Ausgabe von icacls gegen die Datei. Sie erscheinen zusätzlich auf das schreiben von der POSIX ACL-übersetzung-Ebene in Cygwin (mit "noacl" in /etc/fstab ermöglicht das deaktivieren, aber der Schaden bereits getan).
Zurücksetzen der Windows ACL nur auf die Datei kann nicht genug sein, wenn die mit den Eltern hatte, die NULL-SID-Datensatz. Man hat zu laufen,
von der Eingabeaufforderung aus zu löschen die überflüssigen Einträge aus der Windows-ACL in jeder Datei und Verzeichnis.
Update
Andere Befehle zurückgesetzt, das Eigentum, entfernen von Standard-ACLs und zeigen ACLs von einem bekannten binary vor und nach den änderungen:
icacls %croot% /grant:r SYSTEM:F Administrators:F /t /c /l /q
.Die einfachste Möglichkeit dieses Problem zu beheben ist:
-rwx------+ das problem sein könnte. Einige versteckte acl verbieten kann x für Sie.
Zurücksetzen Ihres acl mit setfacl dann.
Oder Sie benötigen erhöhte Berechtigungen:
Ich hatte dieses problem und es behoben, indem
cd
auf das Verzeichnis, das enthält die box, die ich gerade gemacht (verpackt oder umgepackt). Dannvagrant box add <file.box> --name <name>
. Ich denke, dass die Pfade fvck Dinge, und verursachen. Dann überprüfen Sie mitvagrant box list
. Dann Habe Ichmkdir coolbox; cd coolbox
. Dann habe ich nurvagrant init <name>
und alles kommt wie von Zauberhand.git bash, den Befehl ausführen, wie diese:
cmd "/C postgresql-10.5-2-windows-x64.exe --unattendedmodeui minimal --mode unattended --servicename 'postgreSQL'"
nur ändern Sie den Modus des scripts mit chmod Befehl machen Sie es ausführbar.
siehe man chmod für mehr details.