再会,
有一个名为“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
如果放入nginx
会developers
出现一些问题,则必须创建一个新组,将nginx
和developers
用户放入其中,并确保传输的文件具有该 GID。
请注意,您必须重新登录才能获得新的组成员身份。对于非登录帐户(大概nginx
是一个),您可以只使用su
或启动一个执行相同操作的进程(在这种情况下,nginx 服务器本身应该可以工作)。