Linux中目录的访问权限

时间:2013-11-25 20:19:20

标签: linux chmod

我有一个在web-server目录(/ var / www / log)中创建日志文件的程序。它每天都会生成一个新的日志文件。 我已将此目录的访问权限设置为777

chmod 777 -R /var/www/log

但是当系统为新的一天生成日志文件时,它没有访问权限777.我必须再次手动执行。 如何正确设置目录权限?此目录中的所有文件必须自动拥有777。

1 个答案:

答案 0 :(得分:0)

  1. 让文件可执行而不需要是非常坏主意:这可能存在安全风险,而不是一个小安全风险。在您的情况下,root拥有的某些文件可以写入公众。对于对该文件具有写权限的每个人来说,很容易修改它们以root身份运行(是的,你可以让任何文件在Linux下运行为一个程序)。正如twalberg所指出的:这是 Really Bad Idea™
  2. 不要直接写日志文件。它使系统管理员的生活变得不必要。请改用syslog。每种编程语言都可以选择登录syslog。背后的原因:当公司达到一定规模时,它很可能并经常发生,它们使用集中式系统日志服务器。当每个包都表现良好时,所有必须做的就是更改一个配置文件,并将所有日志条目发送到该专用syslog服务器。或者管理员可能想要更改日志文件写入的位置,例如从/ var / www / log更改为/ var / log / www。 syslogd.conf中有一行,但直接写入日志文件时行数不可预测。直接编写日志文件可能是一个不错的后退,但默认情况下这样做是不好的做法。
  3. 如果您运行的软件不是由您编写但不是您的Linux发行版的本机软件,您可以以root用户身份启动它,并使用runuser或{{sudo或{{}将其权限授予此软件的专用用户1}}命令。此专用用户可以具有对日志文件的写入权限。这仍然是一个黑客。服务应该能够以用户nobody身份运行。
  4. 通常,我不明白为什么所有用户必须能够访问所有日志文件。请详细说明。

    为了完整性:

    最有可能发生的是logrotate启动。它是一个压缩旧的工具,删除过时的日志文件,并根据/etc/logrotate.conf中配置的内容和其中包含的文件创建新的日志文件。否则你的服务器会在一段时间后用完空间。您可以更改logrotate的配置或

    不要做以下

    您可以将chmod 0777 -R /var/www/log添加到crontab根目录或各种系统crontabs。