ApacheフォルダのJenkins権限

ApacheフォルダのJenkins権限

同様の問題があります。 ターゲットディレクトリに対する権限がない場合は、Jenkinsの「ビルド後」アクションにファイルをコピーする方法

Jenkins ワークスペースで次にファイルを移動/コピー/rsync する意向があります。

/var/www/アプリケーション

権限が次に設定されている

Apache:Apache

グループにJenkinsを追加しました。 Apacheただし、jenkinsインスタンスはファイルを/var/www/appにコピーできません。

また、/var/www/appの権限をapache:jenkinsに設定しようとしましたが、Jenkinsはまだ次のエラーを吐き出します。権限が拒否されたか、操作が許可されていません。

PS:オペレーティングシステムがcentOSであるという事実を追加することを忘れました。)

編集1:これは実行中のJenkinsスクリプトのログです。

[ワークスペース] $/bin/sh -xe /tmp/hudson1379987233097some_more_numbers.sh + sh /path_to_sh_script/script.sh 増分ファイルのリストを送信

アプリケーション/

rsync: '/var/www/app/application' の権限を設定できません: 操作は許可されません。 (1)

これはスクリプト自体です:)

#!/bin/bash

rsync -avzh /path/to/jenkins/jobs/app/workspace/default/application /var/www/app;

rsync -avzh /path/to/jenkins/jobs/app/workspace/default/library /var/www/app ;

rsync -avzh /path/to/jenkins/jobs/app/workspace/default/public /var/www/app;

答え1

コメントで長くて有益な議論を終えた後、次の内容があります。このリンクユーザーが追加された問題を修正しました。

--no-perms --omit-dir-times

オプションでrsync

問題を解決するための最初の試み:

短時間でセキュリティ問題に興味がなければ、これを試してみることができると思います。

chmod a+rwx /var/www/app 

その後、そのディレクトリに書き込もうとします。サブディレクトリがある場合は、再帰的に実行する必要があります。

chmod --recursive a+rwx /var/www/app 

成功すると、徐々に権限の削除を開始することができ、これは問題を正確に特定するのに役立ちます。

ユーザー jenkins がすでに Apache のグループメンバーであることを確認します。

groups apache

答え2

同様の問題があります。 Jenkinsのlocalhostで/var/wwwに書きたいです。私のサーバーでは、/var/wwwはwww-dataの所有であるため、www-dataグループにjenkinsを追加し、/var/wwwグループを書き込み可能にしましたが、許可拒否エラーが発生し続けます。 Jenkinsサービスを再起動すると問題が解決しました。

答え3

まず、SSHとssh-key Exchangeを使用して、LinuxまたはApacheサーバーをJenkinsサーバーに追加します。次に、ユーザー名jenkin(unixユーザー)を使用してlinux / apacheサーバーにユーザーを作成します。 SSHを使用してファイルをインポートまたはプッシュする場合、jenkinは "jenkin"を標準ユーザーとして使用するためです。

unix の jenkin グループに Apache ユーザーを追加すると便利です。

関連情報