关于在 Ubuntu 10.04 服务器上设置适当权限的建议

关于在 Ubuntu 10.04 服务器上设置适当权限的建议

我运行的是 Ubuntu 10.04 LTS 服务器。我使用的软件栈包括

  • PHP fpm-fcgi 版本 5.3.6
  • Web 服务器:nginx/0.8.54

为了使 wordpress 等工具正常工作。我已经完成了chown www 数据:www 数据在我的 public_html 文件夹中。所有文件都可以通过 nginx 轻松修改,并且自动更新 wordpress 等功能可以按预期工作。

当我通过 ftp 登录并尝试上传新文件或更改现有文件时,就会出现问题。由于我的用户名是 Gaurish,并且所有文件都归 www-data 所有,所以我的请求被拒绝。

Response:   220 (vsFTPd 2.2.2)
Command:    USER gaurish
Response:   331 Please specify the password.
Command:    PASS ************
Response:   230 Login successful.
Command:    OPTS UTF8 ON
Response:   200 Always in UTF8 mode.
Status: Connected
Status: Starting upload of /tmp/cachegrind.out.5513
Command:    CWD /home/gaurish
Response:   250 Directory successfully changed.
Command:    PWD
Response:   257 "/home/gaurish"
Command:    TYPE I
Response:   200 Switching to Binary mode.
Command:    PORT 192,168,1,6,214,6
Response:   200 PORT command successful. Consider using PASV.
Command:    STOR cachegrind.out.5513
Response:   553 Could not create file.
Error:  Critical error
Status: Disconnected from server

我需要一种方法,让我 (gaurish) 和 nginx (www-data) 都能修改文件。有什么想法吗?

答案1

正如其他人之前回答的那样,共享组是一种方式。

更复杂的替代方案是使用源代码修订控制系统,如 CVS、Subversion、GIT 等。然后,作为 Web 服务器运行的单个管理 cgi 页面可以更新服务器上所有已修改的文件。这还可以确保在覆盖之前备份以前的文件,因为源代码控制是强制执行的。

无论你做什么,都要学习和使用 SSH 和 SCP,而不是 FTP。如果绝对需要,FTP 应该用于方便用户,而不是用于系统管理。

答案2

您需要做一些事情才能获得完整的解决方案:

  • 将您的用户添加到www-data组(按照@fbh 的回答)。
  • 配置FTP 服务器 umask以便007使用组写入权限上传文件。
  • 设置 setgid 标志g+s) 在您的目录上,以便新文件由目录的组拥有,而不是文件创建者的主要组。

答案3

将您的用户添加到 webservers 组

usermod -a -G www-data gaurish

相关内容