11

我在 jenkins 中有一个奇怪的问题,我无法在作业中复制文件,但是,使用命令行上的用户 jenkins,我可以毫无问题地做到这一点。

我在用户“jenkins”下运行的 debian 上使用 jenkins。

我将用户“jenkins”添加到组“www-data”中,这样​​我就可以将文件复制到 apache 的 www 文件夹中。

目标文件夹的文件夹权限如下所示:

drwxrwxr-x 9 www-data www-data 4096 Jun 23 16:19 .   
drwxrwxr-x 4 www-data www-data 4096 Jun 23 12:45 ..  
-rw-rw-r-- 1 volker   www-data  368 Jun 23 17:10 about.php  
-rw-rw-r-- 1 volker   www-data  366 Jun 23 17:10 bio.php  
-rw-rw-r-- 1 volker   www-data  370 Jun 23 17:10 contact.php   
drwxrwxr-x 3 volker   www-data 4096 Jun 23 16:19 content  
drwxrwxr-x 3 volker   www-data 4096 Jun 23 16:19 css  
drwxrwxr-x 8 volker   www-data 4096 Jun 23 16:19 default  
drwxrwxr-x 3 volker   www-data 4096 Jun 23 16:19 fonts  
drwxrwxr-x 2 volker   www-data 4096 Jun 23 13:40 image  
drwxrwxr-x 3 volker   www-data 4096 Jun 23 16:19 images  
-rw-rw-r-- 1 volker   www-data  372 Jun 23 17:10 impressum.php  
-rw-rw-r-- 1 volker   www-data  367 Jun 23 17:10 index.php  
-rw-rw-r-- 1 volker   www-data  296 Jun 23 13:52 kontakt.php  
drwxrwxr-x 3 volker   www-data 4096 Jun 23 16:19 layout   
-rw-rw-r-- 1 volker   www-data  367 Jun 23 17:10 news.php  
-rw-rw-r-- 1 volker   www-data  370 Jun 23 17:10 termine.php  
-rw-rw-r-- 1 volker   www-data  369 Jun 23 17:10 videos.php  

所以对于组 www-data,一切都是可写的。

如果我使用 jenkins 用户复制 shell 中的文件,则不会出现错误:

jenkins@rootserver:~/jobs/deploy_notundellende/workspace$ whoami  
jenkins  
jenkins@rootserver:~/jobs/deploy_notundellende/workspace$ cp -R * /var/www/nue  
jenkins@rootserver:~/jobs/deploy_notundellende/workspace$   

但是,如果我在 jenkins 本身中使用相同的命令,它会因权限错误而失败:

pwd  
/var/lib/jenkins/jobs/deploy_notundellende/workspace  
whoami  
jenkins  
cp -R about.php bio.php contact.php content css fonts images impressum.php index.php   layout news.php termine.php videos.php /var/www/nue  
cp: cannot create regular file `/var/www/nue/about.php': Permission denied  
cp: cannot create regular file `/var/www/nue/bio.php': Permission denied  
cp: cannot create regular file `/var/www/nue/contact.php': Permission denied  
cp: cannot create regular file `/var/www/nue/content/videos.php': Permission denied  

这怎么可能?有人有想法吗?

4

2 回答 2

14

好的,我让它工作了,我重新启动了 jenkins 服务器并且它工作了。我认为它以前不起作用,因为当我更改它的权限时 jenkins 服务器已经在运行。现在对我来说很有意义,想想吧:)无论如何,感谢任何阅读和思考这个问题的人!

于 2013-06-24T08:53:52.500 回答
1

解决方案 1:重启 Jenkins

(jenkins_url)/safeRestart- 允许所有正在运行的作业完成。重新启动完成后,新作业将保留在队列中以运行。

(jenkins_url)/restart- 强制重启而不等待构建完成。

解决方案2:检查同一用户的用户和权限

检查用户: whoami

更改权限:sudo chmod -R 777 /var/www/html/*sudo chmod a+rwx /var/szDirectoryName

解决方案3:

如果您收到类似Linux 的错误/警告:“用户名”不在 sudoers 文件中。此事件将通过链接报告

于 2020-12-31T19:10:27.110 回答