默认文件权限(Debian / Ubuntu)

我有/ var / www中的文件,我已经设置了权限,如下所示:

user:www-data chmod 755 

我如何设置它,以便所有后续的file upload(通过SFTP)具有相同的权限,我不必保持重新运行chown/chgrp/chmod -R

  • 用户/所有者:如果要将文件创build为“用户”,则必须以“用户”身份login。

  • 组:确保用户的默认组是“www-data”,或者确保所有的目录都有“setgid”(chmod g + s)标志和“www-data”组。

  • 权限:login时应执行'umask 022'命令(意思是dirs默认为0755,文件为0644)。 比如你可以把它放在〜/ .bashrc中。

Mar_Garina有正确的答案 。 在创build文件时,使用umask的值来确定创build文件的默认权限。 我只是补充说,有几个地方可以设置。 如果您希望所有用户的系统默认为默认值,则可以将umask 0222命令放在/etc/profile而不仅仅是用户个人设置。 另外,大多数ssh,sftp和ftp守护程序都将在其服务器configuration文件中有一个选项,为通过这些系统login的用户指定默认的umask。

2011年更好的答案是通过setfacl使用ACL:

 $ setfacl -md:user:rwx directory 

现在在该目录中创build的任何文件都将使用您拥有的所有默认权限创build。 您可以使用该命令查询任何给定文件/目录的ACL

 $ getfacl file