如何允许用户复制不同用户和组的文件?

如何允许用户复制不同用户和组的文件?

再会,

有一个名为“developers”的 Linux 用户和组(没有 sudo 访问权限),其主文件夹位于“/home/developers”中。

同一台服务器上运行着 nginx,有一个名为“mysite.com”的网站的 Web 文件夹。该Web文件夹位于“/usr/local/nginx/html/mysite.com/”中,文件夹站点权限为“nginx:developers”,chmod权限为770。现在问题来了。

用户使用“开发人员”用户将其文件“scp”到服务器中。文件与“开发者”所有者一起存储在“/home/developers”文件夹中(显然)。用户必须将这些文件复制到“/usr/local/nginx/html/mysite.com/”文件夹中。在“开发者”用户复制文件后,可以将“testfile.py”复制到“/usr/local/nginx/html/mysite.com/”中,文件的所有者仍为“开发者:开发者”。因此,nginx无法读取该文件。

我怎样才能做到这一点?如何允许用户“开发人员”使用 nginx:nginx 权限将文件传输到“/usr/local/nginx/html/mysite.com/”? (不授予 sudo 访问权限)。或者我可以在组级别做什么来确保 nginx 能够读取这些文件?

编辑:nginx 和 php-fpm 作为“nginx”运行

提前致谢。

答案1

我可以在组级别做什么来确保 nginx 能够读取这些文件?

听起来将nginx用户放入组中不会有任何特殊问题developers

作为根用户:

usermod -a -G developers nginx

一个用户可以属于多个组。您可以查看nginx当前包含哪些:

grep nginx /etc/group
# Or more simply:
id nginx

如果放入nginxdevelopers出现一些问题,则必须创建一个新组,将nginxdevelopers用户放入其中,并确保传输的文件具有该 GID。

请注意,您必须重新登录才能获得新的组成员身份。对于非登录帐户(大概nginx是一个),您可以只使用su或启动一个执行相同操作的进程(在这种情况下,nginx 服务器本身应该可以工作)。

相关内容