用于连续执行 chmod 的脚本



我在Solaris服务器上工作。我正在使用具有所有访问权限的ADMIN用户,而其他同事正在使用具有有限访问权限的其他用户。当其他人想要访问日志时,我必须手动chmod 755日志文件夹,当生成新文件时,我必须再次执行chmod

有没有办法编写脚本以在某些文件夹上每 2 分钟连续运行一次chmod

我认为每 2 分钟分配一次权限不是一个好主意

最好更改日志文件所有者的掩码,以使用默认 777 权限创建新日志文件

仍然如果你想像

你的想法一样使用,请像这样

  1. 打开克朗塔布crontab -e
  2. 每 2 分钟添加一次执行命令条目*/2 * * * * chmod -R/path_to_log_folder/
  3. 保存并关闭:wq 如果是 vi 编辑器按 X 并按回车键,如果是纳米编辑器

你需要的是一个cron工作。

要设置cron任务,请以ADMIN用户身份运行以下命令:

crontab -e

它将打开一个文本编辑器供您输入新工作。在文本编辑器中编写以下行,将[file1 file2 ... fileN]替换为要chmod的文件,然后保存。它应该每 2 分钟运行一次 chmod 命令。

*/2 * * * * chmod 755 [file1 file2 ... fileN]

第一个解决方案并不适用于每个系统!我真的不了解 Solaris,但是如果您对第一种格式有问题,这里有一个解决方法,它将每小时在分钟 0、第 2 分钟、第 4 分钟等处运行一次命令,直到第 58 分钟:

0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,3 6,38,40,42,44,46,48,49,50,52,54,56,58 * * * * chmod 755 [file1 file2 ... fileN]

您可以使用列出cron任务的命令crontab -l检查作业是否已正确保存。

我邀请您阅读一些有关cron的文档,以便您可以了解crontab使用的格式。这是一个很好的链接

您可以考虑在包含目录上设置GUID位,并将目录的组所有权设置为这些其他人所属的组。

这样,在目录中创建的任何文件将自动且始终继承目录的组,而不是创建它们的用户的组。

因此,具体而言,如果您的日志文件是 /var/log/somewhere ,您将执行以下操作:

chmod g+s /var/log/somewhere
chgrp OTHERADMINSGROUP /var/log/somewhere

现在通过创建一个文件并查看其组进行测试:

touch /var/log/somewhere/aFile
ls -l /var/log/somewhere/aFile

您应该看到该文件属于 OTHERADMINSGROUP 而不是您自己的组。

最新更新