2012-06-04 14 views
6

Ich habe einen Jenkins-Build erstellt, um einige Module zu kompilieren und zu verteilen. Die Ausgabe der Erstellungsbefehle (z. B. make oder ant) wird in eine Datei mit dem Namen build.log umgeleitet.Jenkins: Berechtigung verweigert zu einer 777-Datei

Das Komische ist, dass echo in die gleiche Datei umleiten, indem tee, schlägt fehl:

tee: ../../build.log: Permission denied 

Die Datei existiert und hat 777 Berechtigungen (markiert mit ls -ltrh ../..). Irgendwelche Ideen, was mit diesem Schreiben falsch ist?

+2

Sind Sie sicher, dass der Pfad zu dem Verzeichnis die richtigen Berechtigungen hat? Nicht nur die Datei? – sjakubowski

+0

Sind Sie sicher, dass der Benutzer, der jenkins ausführt, der Benutzer mit der Berechtigung 777 ist? –

Antwort

13

Berechtigungen für eine Datei sind wichtig, aber auch Berechtigungen für die übergeordneten Verzeichnisse dieser Datei.

Wenn Sie für die Verzeichnisse, die Sie durchlaufen, keine Lese- und Ausführungsberechtigungen haben, können Sie dem relativen Pfad zur Datei nicht folgen. Wenn Sie keine Leseberechtigung für das Verzeichnis haben, in dem sich "build.log" befindet, können Sie die Dateien in diesem Verzeichnis nicht auflisten. Lesen, Schreiben und Berechtigungen Führen Sie keine Rolle für Verzeichnisse und sie grob Karte zu:

  • Read = Auflistung der Dateien
  • Write erlaubt = ermöglicht Erstellen/Löschen/Ändern von Dateien
  • Execute = ermöglicht Verzeichnis wechseln zu diesem Verzeichnis