"Zugriff verweigert" mit cygwin in Windows

8

Hintergrund: Ich versuche eine [.bat] -Datei zu schreiben, damit ich sie doppelt anklicken kann und ein Bash-Skript wird aufgerufen. Das Bash-Skript startet ein paar Windows-GUI-Apps, um die GPU / CPU-Temperaturen zu überwachen. Ich habe gerade eine neue Installation von Cygwin v1.7.7-1 (heute heruntergeladen) und Windows 7.

Code: monitor-temps.bat:

%Vor%

Code: monitor-temps.bash:

%Vor%

Ausgabe: Nachdem ich auf die Datei [.bat] doppelklicke, erhalte ich:

%Vor%

Ich bekomme immer noch den gleichen Berechtigungsfehler, wenn ich in das Verzeichnis cd und die Anwendung manuell ausführe.

Berechtigungen: Aus meiner Erfahrung mit Berechtigungsproblemen in Linux sieht alles gut aus, weil ich der Benutzer bin, der ich bin, und die Datei hat die erwarteten Berechtigungen:

%Vor%

Frage: Kann jemand das beheben? Fehle ich etwas?

    
Mike 18.12.2010, 19:09
quelle

7 Antworten

12

Als Entwickler verwende ich eine Verknüpfung, um eine Befehlszeilenschnittstelle (Command-Line Interface, CLI) bereitzustellen, die sich in meiner Windows-Umgebung ähnlich wie Linux verhält, und stieß auf das gleiche Problem beim Entpacken einer Datei.

Der Fehler war, die Verknüpfung auf "Als Administrator ausführen" zu setzen.

Wenn Sie diese Methode verwenden, um auf Ihre Cygwin-Umgebung zuzugreifen, gehen Sie zu den Eigenschaften der Verknüpfung, wählen Sie die Schaltfläche Erweitert, um die Optionen "Als Administrator ausführen" zu erhalten, aktivieren Sie das Kontrollkästchen und klicken Sie auf OK. Und los gehts !! Sie können dazu auch Ihre Batch-Datei einrichten, indem Sie eine Verknüpfung dazu machen und das oben beschriebene tun.

Hoffe das hilft!

    
Darkstrumn 23.01.2015 05:41
quelle
9

Ich denke, Sie müssen die Verzeichnis- oder Dateiberechtigung ändern. Wenn Sie die Berechtigung einer Datei oder eines Verzeichnisses ändern möchten, müssen Sie den vollständigen Pfad mit dem Code hinzufügen.

Als ob Sie die Berechtigung für den cocos2d-x-Ordner in C: \ yourDirectory ändern möchten (ich bin unter Windows; auf Mac wäre es / anstelle von \ ) schreibe den Code in die cygwin-Konsole:

%Vor%     
Sajidur Rahman 06.06.2013 21:20
quelle
5

Der einfachste Weg, dies zu beheben, ist:

  1. Laden Sie Sysinternals ProcMon herunter, starten Sie es und lassen Sie es eine Weile laufen.
  2. Alle Prozesse ausschließen, die Rauschen erzeugen.
  3. Wenn das Protokoll weniger ausgelastet ist, starten Sie Ihren Dateizugriffsversuch.
  4. Durchsuchen Sie das ProcMon-Protokoll nach "Zugriff verweigert" -Nachrichten.
  5. Untersuchen. Sollte einfach zu beheben sein.
Tomalak 18.12.2010 19:14
quelle
4

-rwx ------ + könnte das Problem sein. Einige versteckte acl kann x für Sie verbieten. Setzen Sie Ihre acl mit setfacl zurück.

%Vor%

Oder Sie benötigen erhöhte Berechtigungen:

%Vor%     
rurban 20.12.2010 20:31
quelle
2
  • Überprüfen Sie die Mount-Tabelle mit cat /proc/mounts oder mount und stellen Sie sicher, dass jeder Mount-Punkt von / , /usr/bin , /usr/lib ein noacl -Flag hat. Wenn es fehlt, korrigieren Sie /etc/fstab und starten Sie neu. (Der Neustart hat das noacl -Flag des Root-Mount-Punktes für mich synchronisiert, und ich weiß nicht, ob dasselbe ohne Neustart erreicht werden kann).

  • Suchen Sie nach einem NULL SID-Datensatz und anderen seltsamen Datensätzen in der Ausgabe von icacls für die Datei. Sie erscheinen beim Schreiben durch die POSIX-ACL-Übersetzungsschicht in Cygwin hinzugefügt (die Verwendung von "noacl" in / etc / fstab ermöglicht das Deaktivieren, aber der Schaden wurde bereits behoben).

    Das Zurücksetzen der Windows-ACL für die Datei ist möglicherweise nicht ausreichend, wenn die übergeordneten Elemente den NULL-SID-Datensatz enthalten. Man muss

    ausführen %Vor%

    über die Eingabeaufforderung, um die überflüssigen Datensätze aus der Windows-ACL in jeder Datei und in jedem Verzeichnis zu entfernen.

Aktualisieren Andere Befehle setzen die Eigentumsrechte zurück, entfernen Standard-ACLs und zeigen ACLs einer bekannten Binärdatei vor und nach den Änderungen an:

%Vor%     
eel ghEEz 03.03.2017 19:33
quelle
0

Ich hatte dieses Problem und habe es um cd auf das Verzeichnis korrigiert, das die Box enthält, die ich gerade gemacht habe (gepackt oder umgepackt). Dann vagrant box add <file.box> --name <name> . Ich denke, dass die PATHs die Dinge versauen und zum Scheitern bringen. Dann überprüfen Sie mit vagrant box list . Dann habe ich mkdir coolbox; cd coolbox . Dann habe ich nur vagrant init <name> und es kommt alles wie Magie auf.

    
Felipe Alvarez 24.07.2015 07:21
quelle
-1

Ändern Sie einfach den Modus der Skripte mit dem Befehl chmod, um es ausführbar zu machen. Weitere Informationen finden Sie unter man chmod.

    
hakish 01.09.2015 14:48
quelle