Git/Jenkins Berechtigungsproblem

Git/Jenkins Berechtigungsproblem

Betriebssystem: Ubuntu Server 10.04 LTS

Ich habe ein seltsames Problem mit Berechtigungen und kann die Ursache nicht finden.

Der Aufbau ist wie folgt:

Git-Repository-Ordner (und die darin enthaltenen Dateien) sind Eigentum von root, und die Gruppe, die wir für die Projekte verwenden, verfügt über RWS-Rechte, zum Beispiel:

   ll /path/to/project
   drwxrwsr-x 7 root project                4096 2013-03-14 19:19 project

Unser Jenkins-Benutzer ist Mitglied aller Gruppen, die wir für die Projekte erstellen, einschließlich der Gruppe im Beispiel. Die Jenkins-Anwendung wird vom Jenkins-Benutzer gestartet, um sicherzustellen, dass sie vollen Zugriff auf die Projektordner hat.

Wenn ich die Lese- und Ausführungsrechte für „Andere“ für diese Git-Ordner entferne, schlagen unsere Builds fehl und es wird folgende Meldung angezeigt:

 fatal: '/path/to/project' does not appear to be a git repository

ps: kein SELinux im Spiel

Antwort1

Ich vermute, es liegt an Ihren Berechtigungen für Unterverzeichnisse innerhalb des Repository.

# Set the same ownerships for every file and directory within the repository
sudo chown -R root:project /path/to/project

# Remove permissions for others on all files
sudo chmod o-rwx $(find /path/to/project -not -type d)

Wenn Sie möchten, dass Gruppenmitglieder Änderungen zurückschreiben:

# Set permissions for all subdirectories
sudo chmod 2770 $(find /path/to/project -type d)

Wenn Sie möchten, dass Gruppenmitglieder nur Lesezugriff haben:

# Remove write permissions for group members for every file
sudo chmod g-w $(find /path/to/project -not -type d)

# Set permissions for all subdirectories
sudo chmod 2750 $(find /path/to/project -type d)

Solange der Jenkins-Benutzer Mitglied der Projektgruppe ist, sollte er das Git-Repository problemlos klonen können.

Wenn Sie jedoch SELinux auf Ihrem System aktiviert haben, könnte es etwas komplizierter werden.

Viel Spaß beim Programmieren :)

verwandte Informationen