不小心将 chmod 777 设置为 /var/log

不小心将 chmod 777 设置为 /var/log

所以我在 Raspbian 上将 chmod 777 -R 设置为 /var/log ,现在 logrotate 运行时出现一些错误。错误如下:

错误:跳过“/var/log/apt/term.log”,因为父目录具有不安全的权限(它是世界可写的或非“root”的组可写)在配置文件中设置“su”指令以告诉 logrotate 哪个用户/应该使用组进行轮换。

有办法恢复默认吗?

答案1

您可以安全地将目录的权限设置为 755,将文件的权限设置为 644:

# find /var/log -type d -exec chmod 755 {} \;
# find /var/log -type f -exec chmod 644 {} \;

更安全(仅限 root 访问):

# find /var/log -type d -exec chmod 700 {} \;
# find /var/log -type f -exec chmod 600 {} \;

答案2

/var/log/位于raspbian 上的文件通常具有-rw-r----- 权限,这意味着chmod 640将恢复正确的权限。

例如,/var/log/apt/term.log设置了以下权限:

-rw-r----- 1 root adm      0 Nov  1 06:25 term.log

下的其他文件/var/log/具有以下权限设置:

-rw-r----- 1 root adm    214421 Nov 13 10:01 auth.log
-rw-r----- 1 root adm  16903470 Nov 12 06:25 auth.log.1

要对这些文件设置正确的权限,请使用find以下命令:

find /var/log/ -type f -exec chmod 640 {} +

对于目录,您可以使用:

find /var/log -type d -exec chmod 755 {} +

该命令find将遍历/var/log目录,并根据type您传递给它的内容,应用正确的权限。

相关内容