我在Solaris服务器上工作。我正在使用具有所有访问权限的ADMIN
用户,而其他同事正在使用具有有限访问权限的其他用户。当其他人想要访问日志时,我必须手动chmod 755
日志文件夹,当生成新文件时,我必须再次执行chmod
。
有没有办法编写脚本以在某些文件夹上每 2 分钟连续运行一次chmod
?
我认为每 2 分钟分配一次权限不是一个好主意
最好更改日志文件所有者的掩码,以使用默认 777 权限创建新日志文件
仍然如果你想像你的想法一样使用,请像这样
- 打开克朗塔布crontab -e
- 每 2 分钟添加一次执行命令条目*/2 * * * * chmod -R/path_to_log_folder/
- 保存并关闭: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 而不是您自己的组。