我已经设置了Debian云服务器。我安装了apache,php和vsftpd。我创建了用户并设置了权限等。
当我上传文件时,其默认权限为600,除非我手动将其更改为774或775,否则无法查看该文件。
因此,我想将我上传的所有文件的默认权限更改为/ var / www /至 754 。
我知道chmod -R 754 /var/www
将该目录中的所有文件都设置为774,但它不会更改所有上传的新文件的默认权限。
我的用户是'joe'用于演示目的,因为我正在学习,所以我甚至尝试chown -R joe /var/www
,但这也没有改变默认权限。
如何将默认权限从600更改为774?我应该在哪个文件中写什么?
答案 0 :(得分:2)
答案 1 :(得分:1)
您必须更改写入目录的用户的umask。 BTW不会在不需要时设置执行权限。
umask是应该应用的权限的否定掩码。默认情况下,将使用666创建所有文件,使用777创建所有目录。使用002的umask,这似乎是您想要的,这些将变为664和775.
现在,如何设置umask取决于实际写入文件的程序,以及该设置是否在其配置文件中可用。
另一种鲜为人知的方法是将POSIX ACL设置为上传目录:为此,您可以在setfacl
上使用-d
/var/www
选项(提供您的操作系统,和文件系统,支持它。)
答案 2 :(得分:1)
您的一条评论建议您通过proftpd上传文件。如果是这种情况,那么您的问题确实是针对该软件的。答案是不要修改/ etc / profile,因为这将改变使用Bourne Shell或类似的所有用户(即Bash)的默认umask。此外,用户必须实际登录shell才能读取/ etc / profile,并且在正确配置的系统上,您的守护程序正在运行的用户实际上并未登录。请检查http://www.proftpd.org/docs/howto/Umask.html以获取特定于proftpd的信息和umasks。