Jenkins ユーザーは Apache /var/www フォルダにファイルをコピーできません - すべての権限が適切です

Jenkins ユーザーは Apache /var/www フォルダにファイルをコピーできません - すべての権限が適切です

Jenkins は Ubuntu 18.04 にインストールされており、正常に実行されています。

プロジェクトのビルド プロセスの一環として、ビルドされたファイルを/var/www/html(Apache フォルダー) の下の特定のフォルダーにコピーする必要があります。ビルド / 実行シェル:

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

しかし、jenkins ビルドは最後のコピー コマンドで次のエラーが発生して失敗します。

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
...
...

これまでにやったこと/試したことは次のとおりです:

  1. 「jenkins」ユーザーを root および ubuntu グループに追加しました。

     ubuntu@ip-172-31-15-215:/var/www/html$ groups jenkins
     jenkins : jenkins root ubuntu
    
  2. /var/www/html/kagi-core フォルダの権限を「jenkins」ユーザーに変更しました

     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
    

何が足りないのでしょうか? ご協力いただければ幸いです!

答え1

これを修正しようとしているときに、解決策を見つけました。参考のためにここに追加します:

よく観察すると、フォルダの権限は/var/www次のようになります。

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

ただし、その逆 (「jenkins」ユーザーをデフォルト グループに許可する) にする必要があります。

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

また、グループをデフォルトにリセットしますroot

そこでこの問題を解決したコマンドは

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

この後、jenkins ビルドは成功しました (フォルダーにコピーできました/var/www/html)。

関連情報