相关的文件夹是每隔几天覆盖一次,但我希望它的内容保留755的权限。 我试过chmod g+s dir但是无济于事。 这甚至可能吗?
你不能用posix权限模型来做到这一点; 根本没有任何规定。 一个相关的规定(目录上的setuid和setgid)允许所有权被inheritance到一个级别,但不是权限。
如果你需要这个function,你应该考虑使用ACL,因为那些可以被inheritance(无论如何都是在文件创build时),但是这需要对你的权限结构进行一些思考。 假设你在你的系统和文件系统上有POSIX ACL支持,你想在目录上设置的ACL将会是d:u::7,d:g::5,d:o::5这使ACL运行在文件所属的UID和GID上;如果你需要inheritance,也使目录suid和sgid)。 目录上的默认ACL被应用于在其中创build的新文件和目录,所以虽然这不是对文件0755进行权限的一种方式,但它可能会做你所需要的。
ACL有一些学习曲线,它们是POSIX中更复杂(也是最less使用)的function之一。 阅读manpages: man 5 acl和man 1 setfacl 。 除非你了解它们的工作方式,否则不要尝试使用ACL。
另一件要看的,取决于目录的内容是如何被写入的,正在编写它们的程序指定权限; 这将受到umask,但是是唯一的方法来实现所需的权限,你想要做的字面意思。 许多程序都有可以为此指定的选项,或者您可以在运行创build文件的程序的shell中设置所需的umask(您可以在不影响系统umask的情况下执行此操作)。
如果您确定使用其他软件,并且不需要子文件夹,则可以使用incron将文件添加到文件夹时触发命令更改权限(例如,chmod 755)。 您将需要安装incron,将自己添加到允许的用户列表(通过将自己添加到/etc/incron.allow)
然后,您将使用incrontab -e设置incrontab条目,然后添加一行,如/path/to/directory_to_monitor IN_MODIFY chmod 755 。 如果你想深入到incron的选项,请查看manpage或者howtoforge的这个指南 。
它可能不是很优雅(因为它监视文件的变化),但设置正确,应该改变文件的权限自动到你想要的。