我有一个正在运行的 vsftp 服务器。这就是我想要做的:
2 个开发人员通过 ftp 客户端获得对 Web 目录的访问权限。他们编写他们想要的文件。然后他们刷新页面 (F5),Web 服务器为他们提供新页面。
这是我所做的:
- 创建一个组(命名它
所有访问组
)。 - 创造
用户1
属于这个组和用户2
也属于这个组 - 创建目录
/var/www/newsite
chgrp allaccessgroup /var/www/newsite
chown apache /var/www/newsite
chmod 570 /var/www/newsite
这样:apache可以读取,并且只能读取php文件,并且所有user1和user2都有权做他们想做的事。
问题是我希望 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
但这是为了让上传的匿名文件归其他用户所有,而不是针对特定用户
欢迎任何其他想法!
谢谢 !
查看vsftpd.conf中的local_umask指令
如果两者属于同一组,另一种选择是查看粘性位,但它不是它们的主要组。chmod g+s /var/www/newsite 这样,在目录中创建的所有新文件都将拥有父级的组所有权。虽然没有检查子目录,但你可以测试一下。
file_open_mode = 创建上传文件的权限。Umasks 应用在这个值之上。如果您希望上传的文件可执行,您可能希望更改为 0777。
这有点离题,但 VSFTP 附带启用了匿名用户,正如您所知。
http://www.standalone-sysadmin.com/blog/2008/11/default-vsftpd-on-centos-is-dumb/
只是让你知道,以防你没有测试。