Jenkins-Benutzer kann keine Dateien in den Apache-Ordner /var/www kopieren - alle Berechtigungen sind angemessen

Jenkins-Benutzer kann keine Dateien in den Apache-Ordner /var/www kopieren - alle Berechtigungen sind angemessen

Jenkins ist auf Ubuntu 18.04 installiert und läuft erfolgreich.

Als Teil unseres Projekterstellungsprozesses müssen wir die erstellten Dateien in einen bestimmten Ordner unter /var/www/html(Apache-Ordner) kopieren. Unsere Build-/Ausführungsshell:

npm install
ng build --prod
cp -R /var/lib/jenkins/workspace/kagi-core/dist/core/* /var/www/html/kagi-core/

Aber der Jenkins-Build schlägt beim letzten Kopierbefehl mit den folgenden Fehlern fehl:

23:18:10 + cp -R /var/lib/jenkins/workspace/kagi-core/dist/core/3rdpartylicenses.txt /var/lib/jenkins/workspace/kagi-core/dist/core/assets ...
23:18:10 cp: cannot create regular file '/var/www/html/kagi-core/3rdpartylicenses.txt': Permission denied
...
...

Folgendes haben wir bisher getan/versucht:

  1. Benutzer „Jenkins“ zu den Root- und Ubuntu-Gruppen hinzugefügt.

     ubuntu@ip-172-31-15-215:/var/www/html$ groups jenkins
     jenkins : jenkins root ubuntu
    
  2. Berechtigungen für Ordner /var/www/html/kagi-core auf Benutzer „jenkins“ geändert

     drwxr-xr-x  3 ubuntu jenkins 4096 Sep 17 21:36 www
     ..
     drwxr-xr-x  3 ubuntu jenkins 4096 Sep 18 21:04 html
     ..
     drwxrwxrwx 4 ubuntu jenkins  4096 Sep 18 21:18 kagi-core
    

Was fehlt uns? Wir sind für jede Hilfe dankbar!

Antwort1

Beim Versuch, dies zu beheben, habe ich die Lösung gefunden. Hier als Referenz hinzufügen:

Bei genauer Betrachtung der Berechtigungen für /var/wwwOrdner sind diese wie folgt

drwxr-xr-x 3 ubuntu jenkins 4096 Sep 17 21:36 www

Stattdessen sollte es andersherum sein (Benutzer „Jenkins“ zur Standardgruppe zulassen):

drwxr-xr-x 3 jenkins ubuntu 4096 Sep 17 21:36 www

Außerdem setzen wir die Gruppe auf die Standardeinstellungen zurückroot

Der Befehl, der das Problem löste, war also

cd /var
sudo chown -R jenkins:root www/

Danach waren die Jenkins-Builds erfolgreich (konnten in den /var/www/htmlOrdner kopiert werden).

verwandte Informationen