如何永久更改文件的文件权限,并在启动时将其恢复为默认值

如何永久更改文件的文件权限,并在启动时将其恢复为默认值

我有一个文件。每次启动时,系统都会将其文件权限更改为默认(不可写)。因此,每次启动时/var/logs/apache2/error.log我都必须运行命令。如何永久更改其文件权限。chmod

答案1

日志文件通常由 logrotate 创建。apache 日志文件定义存储在 /etc/logrotate.d/apache2 上

该文件在我的某个服务器中如下所示:

/var/log/apache2/*.log {
        weekly
        missingok
        rotate 52
        compress
        delaycompress
        notifempty
        create 640 root adm
        sharedscripts
        postrotate
                if [ -f "`. /etc/apache2/envvars ; echo ${APACHE_PID_FILE:-/var/run/apache2.pid}`" ]; then
                        /etc/init.d/apache2 reload > /dev/null
                fi
        endscript
}

如果您查看创建选项,关键字后面的值是权限、用户和组。只需编辑文件并更改这些值即可。

答案2

我猜是在启动时anacron运行。logrotate

如果是这样,请尝试编辑配置文件/etc/logrotate.d/apache2,并更改

create 640 root adm

你喜欢什么就做什么,例如

create 666 root adm

但是除了apache2服务之外,还有什么需要写入此文件?

如果这是在服务器上,将文件设置为全局可写可能不是一个好主意。例如,如果有人闯入您的系统,他们可以删除可以帮助您找到问题的日志条目。

如果您想要读取权限,最好将自己添加到adm组中,例如

gpasswd -a `whoami` adm

如果你确实需要写权限,这也会有所帮助,例如

create 660 root adm

就足够了。

答案3

根据评论中的讨论,对于 OP 试图实现的目的(查看特定目的的简单日志子集),这可能是一个合适的替代解决方案:

尾巴让你查看文件的最后几行

Grep让你在文件中搜索你想要查找的实例

两者都是 Unix/Linux 的一部分,并且应该成为您必备工具包的一部分。

相关内容