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

我有一个vsftp服务器运行。 这是我想要做的:

2个开发者通过一个ftp客户端访问一个web目录。 他们写他们想要的文件。 然后他们刷新页面(F5),Web服务器给他们新的页面。

以下是我所做的:

  1. 创build一个组(命名它
      allaccessgroup 

    )。

  2. 创build
      USER1 

    属于这个组和

     用户2 

    这也属于这个组

  3. 创build一个目录
     在/ var / WWW / newsite 
  4.   chgrp allaccessgroup / var / www / newsite 
  5.   chown apache / var / www / newsite 
  6.   chmod 570 / var / www / newsite 

这样:apache可以读取, 读取php文件,所有的user1和user2被赋予权限去做他们想要的。

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

一旦file upload,我正在寻找一种方法来自动更改所有权。 我读过一些这样的东西:创build一个PHP文件,然后调用上传完成后:

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

我不喜欢打电话给“执行”这将意味着授予“执行”访问PHP …任何其他的想法欢迎!

顺便一提 :

我一直在寻找vsftpconfiguration文件:

chown_uploads = YES chown_username = apache

但这是为了上传的匿名文件归属于不同的用户,而不是为特定的用户

任何其他的想法欢迎!

谢谢 !

看看vsftpd.conf中的local_umask指令

另一种select是查看粘性位,如果两个属于同一个组,但不是它们的主要组。 chmod g + s / var / www / newsite这样,目录中创build的所有新文件都将拥有父组的所有权。 虽然没有检查子目录,但你可以testing。

file_open_mode =创build上传文件的权限。 Umasks应用于此值之上。 如果您希望上传的文件可执行,您可能希望更改为0777。

Default: 0666 

这有些偏离主题,但VSFTP随匿名用户一起提供,只是你知道的。

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

只是让你知道,如果你没有testing。