如何在Linux中为目录永久设置文件权限?

我的服务器命名为stock的主目录中有一个文件夹,名称为/ home / stock。 在这个文件夹中的一个FTP数据转储正在由第三方应用程序完成。 添加到这些文件夹的文件具有权限644和所有权作为stock.users。

我也有一个cron脚本需要访问这些文件,解压缩,然后采取进一步的行动。 我的cron将作为web.users运行。

问题是,我的脚本无法访问这些文件,因为它的权限设置为644.有没有办法永久性地将文件夹的权限设置为664.在该文件夹上执行命令chmod 664,只需将文件夹的内容更改为那个时间点,但在未来date转储的文件仍然具有644的权限。

它也不可行的手动更改文件夹的权限,并设置一个cron工作做的工作似乎也不是一个好的select。

谁能帮忙?

提前致谢。

从你的描述中可以听出,cron作业只需要读取应该能够执行的文件。 是否试图解压缩文件的问题? 你能解压缩到一个临时文件夹吗?

为了修改FTP上传的新文件的权限,需要将FTP守护进程的umask修改为002.如何做到这一点取决于FTP服务器和Linux发行版。

创buildweb用户拥有的目录,并且可以由ftp用户写入。 设置目录上的setuid位,以使其中的所有文件将由运行cron作业的用户拥有。

你的脚本可以做sudo chmod 664因为你moddify /etc/sudoers允许通过web.users执行chmod而不需要密码。

你可以添加这个到/etc/sudoers

 web.users localhost = (root) chmod 

编辑

请注意,目前这种做法是不安全的,必须在做这样的事情之前将其添加到您的需求并确保其安全。 一个build议是要有一个特殊的用户为您的脚本。

你也可以在你的脚本中添加这个chmod行(以root用户身份运行(safier)用于ftp传输的用户):

 #!/bin/sh chmod -R 664 /home/stock tar -zxvf /home/stock/file.tar.gz for instance + treatments