脚本连续执行chmod

时间:2017-11-16 09:56:59

标签: shell solaris chmod

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

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

3 个答案:

答案 0 :(得分:1)

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

最好更改日志文件所有者的umask以创建具有默认777权限的新日志文件

如果你想像你的想法一样使用

  1. 打开crontab crontab -e
  2. 每2分钟为执行命令添加一个条目 * / 2 * * * * chmod -R / path_to_log_folder /
  3. 保存并关闭 :wq如果是vi编辑器 按x键,如果是纳米编辑器,则按Enter键

答案 1 :(得分:0)

您需要的是cron工作。

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

crontab -e

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

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

这个第一个解决方案并不适用于每个系统!我真的不知道Solaris,但是如果你对第一个格式有问题,这里有一个解决方法,你将运行命令小时0分钟,分钟2分钟等等,直到分钟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]

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

我邀请您阅读cron上的一些文档,以便了解crontab使用的格式。 Here is a good link

答案 2 :(得分:0)

您可以考虑在包含目录上设置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而不是您自己的组。