我在 /var/www 中有一些文件,我已设置其权限如下:
user:www-data
chmod 755
我该如何设置它,以便所有后续上传的文件(通过 SFTP)都具有相同的权限,而我不必继续重新运行chown/chgrp/chmod -R
?
答案1
用户/所有者:如果您希望以“用户”身份创建文件,则必须以“用户”身份登录。
组:确保用户的默认组是“www-data”,或者确保所有目录都设置了“setgid”(chmod g+s)标志和“www-data”组。
权限:登录时应执行“umask 022”命令(表示目录的默认权限为 0755,文件的默认权限为 0644)。例如,您可以将其放在 ~/.bashrc 中。
答案2
Mar_Garina 有正确答案。创建文件时,umask 的值用于确定创建文件的默认权限。我只想补充一点,有几个地方可以设置它。如果您希望默认设置是系统范围内的所有用户,则将命令放入而umask 0222
不是/etc/profile
仅放入用户个人设置中可能更有意义。此外,大多数 ssh、sftp 和 ftp 守护程序都会在其服务器配置文件中有一个选项,用于为通过这些系统登录的用户指定默认 umask。
答案3
A很多对于 2011 年来说,更好的答案是通过 setfacl 使用 ACL:
$ setfacl -m d:user:rwx directory
现在,在该目录中创建的任何文件都将使用您拥有的所有默认权限。您可以使用以下命令查询任何给定文件/目录的 ACL
$ getfacl file