/var 中的哪些文件需要有特定的所有者?

Dav*_*d Z 6 permissions defaults gentoo

我不小心通过运行对我的 Web 服务器造成了未知数量的破坏

sudo chown -R myuser:mygroup * .*
Run Code Online (Sandbox Code Playgroud)

in /var/www,不记得.*会包括父目录(as ..)。大约一秒钟后,我意识到发生了什么,但为时已晚,其中一半的目录/var已“重新拥有”。我知道我可以用

sudo chown -R root:root /var
Run Code Online (Sandbox Code Playgroud)

但是有哪些文件需要由我必须手动更改的特定非 root 用户(或组)拥有?

这是在 Gentoo 上,这是一个目录列表:

$ ls -l /var
drwxr-xr-x  9 root root 4096 May 12  2009 cache
drwxr-xr-x  4 root root 4096 Aug 20 22:49 db
drwxr-xr-x  3 root root 4096 Aug 20 22:42 dist
drwxr-xr-x  4 root root 4096 Nov  1  2009 edata
drwxr-xr-x  2 root root 4096 Jun 17  2008 empty
drwxr-xr-x  5 git  git  4096 Feb 13  2010 git
drwxr-xr-x 23 root root 4096 Jul 19 03:22 lib
drwxrwxr-x  3 root uucp 4096 Aug 12 00:14 lock
drwxr-xr-x 10 root root 4096 Aug 20 03:10 log
lrwxrwxrwx  1 root root   15 Nov  7  2008 mail -> /var/spool/mail
drwxr-xr-x 10 root root 4096 Aug 21 00:22 run
drwxr-xr-x  8 root root 4096 Feb 13  2010 spool
drwxr-xr-x  2 root root 4096 Jun 17  2008 state
drwxr-xr-x 13 root root 4096 Dec 23  2009 svn
drwxrwxrwt  5 root root 4096 Aug 14 01:53 tmp
drwxr-xr-x 13 root root 4096 Aug 11 20:21 www
drwxr-xr-x  2 root root 4096 Dec 14  2008 www-cache
Run Code Online (Sandbox Code Playgroud)

我可以提供子目录列表,但这很快就会变得很长。( dist, edata, git, svn, 和www是我自己管理的东西,所以所有权不会成为问题)

gvk*_*vkv 2

嗯,“/var”通常用于程序生成的数据,因此在不复制您的系统的情况下,可能无法准确地告诉您谁应该拥有什么。我可以想到两种解决方法:

  1. 在备用机或虚拟机上设置另一个版本的 Web 服务器,然后检查/var
  2. 只需更改为 root/root,然后看看会出现什么错误(大多数目录都会具有这种所有权结构)。

1 的缺点是它需要花费的时间;有利的一面是它是准确的。第 2 条速度更快,但准确性较低,即使它大部分是正确的。这里的大问题是,在重要的生产盒上 2 可能不可行。