ftp 上传/如何“自动”更改权限/所有权?

ftp 上传/如何“自动”更改权限/所有权?

我已经运行了一个 vsftp 服务器。以下是我想要做的事情:

2 名开发人员通过 ftp 客户端获得对 Web 目录的访问权限。他们编写所需的文件。然后刷新页面 (F5),Web 服务器将向他们提供新页面。

这是我所做的:

  1. 创建一个组(将其命名为
    全接入组
    )。
  2. 创造
    用户1
    属于这个组,
    用户2
    也属于这一组
  3. 创建目录
    /var/www/新网站
  4. chgrp allaccessgroup /var/www/newsite
  5. chown apache /var/www/newsite
  6. chmod 570 /var/www/newsite

这样:apache 就可以读取,并且仅有的读取 php 文件,所有用户 1 和用户 2 都被赋予执行他们想要做的事情的权限。

问题是我想让 user1 和 user2 上传他们的文件。上传时文件权限为 allaccessgroup/user1 或 allaccessgroup/user2,而我想要的是 allaccessgroup/apache 权限。

我正在寻找一种方法,在文件上传后立即自动更改所有权。我读过一些类似这样的内容:创建一个 php 文件,然后在上传完成后调用:

$complete = $complete.exec("ssh root@host -i /path/to/pulic/key chmod 0700 /Users/".$shortname."/Private/\n");

我不喜欢调用“exec”,这意味着授予“exec”对 php 的访问权限...欢迎任何其他想法!

顺便一提 :

我一直在查看 vsftp 配置文件:

chown_uploads=YES chown_username=apache

但这适用于上传的匿名文件归其他用户所有,而不是特定用户所有

欢迎提出任何其他想法!

谢谢 !

答案1

看看本地掩码vsftpd.conf 中的指令

答案2

另一个选择是查看粘性位,看看两者是否属于同一组,但该组不是它们的主要组。 chmod g+s /var/www/newsite 这样,目录中创建的所有新文件都将拥有父级的组所有权。虽然还没有检查子目录,但你可以测试一下。

答案3

文件打开模式= 上传文件创建时的权限。umask 应用于此值之上。如果您希望上传的文件可执行,则可能需要更改为 0777。

Default: 0666 

答案4

这稍微有点题外,但 VSFTP 附带启用了匿名用户的功能,供您了解。

http://www.standalone-sysadmin.com/blog/2008/11/default-vsftpd-on-centos-is-dumb/

如果您还没有测试过的话,只是想让您知道。

相关内容