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

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

我运行时不小心对我的网络服务器造成了未知数量的破坏

sudo chown -R myuser:mygroup * .*

在 中/var/www,不记得这.*将包括父目录(如..)。大约一秒钟后我意识到发生了什么,但那时已经太晚了,其中一半的目录/var已被“重新拥有”。我知道我可以重置大部分内容

sudo chown -R root:root /var

但是哪些文件需要由特定的非 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

我可以提供子目录列表,但它会变得相当长且很快。 (distedatagitsvnwww是我自己管理的事情,所以这些事情的所有权不会成为问题)

答案1

我愿意帮助你,但我不再运行 gentoo,所以这里有一个比安装虚拟机更快的方法。将最新的 tarball 下载到目录并解压。像安装一样安装 proc 和 dev。 chroot 并安装您已安装的任何服务器守护程序,您可能也需要启动它们。现在运行。

find /var ! -user root -ls

这应该列出不属于 root 用户的所有文件。

如果其他人有 gentoo 系统,他们只需运行此命令即可帮助他

这是我的系统中的一个简短列表(即架构Linux所以距离会有所不同)这可能会有所帮助。

find /var -maxdepth 2 ! -user root -ls | sed -e 's/^/    &/'                        slave-iv
262147    4 drwx------   2 named    named        4096 Jul 22 15:49 /var/named
262151    4 -rw-------   1 named    named         234 Jul 22 15:49 /var/named/127.0.0.zone
262148    4 -rw-------   1 named    named        2938 Jul 22 15:49 /var/named/root.hint
262385    4 -rw-------   1 named    named         190 Jul 22 15:49 /var/named/localhost.zone
526002    4 drwx------   6 griff    users        4096 Aug  1 18:16 /var/tmp/kdecache-griff
529617    4 drwx------   3 kdm      kdm          4096 Aug 11 18:30 /var/tmp/kdecache-kdm
526893    4 drwx------   8 xenoterracide users        4096 Aug 20 10:37 /var/tmp/kdecache-xenoterracide
524523    4 drwxrwx--T   2 daemon   daemon       4096 Feb  4  2010 /var/spool/atd
529085    0 -rw-r--r--   1 named    named           0 Aug 15 03:21 /var/log/named.log
529330   16 -rw-r--r--   1 postgres root        14907 Aug 20 08:51 /var/log/postgresql.log
525625    0 -rw-r--r--   1 named    named           0 Aug  8 03:19 /var/log/named.log.1
524820    0 -rw-r--r--   1 named    named           0 Jul 18 03:19 /var/log/named.log.4
529165    0 -rw-r--r--   1 named    named           0 Jul 25 03:19 /var/log/named.log.3
525956    0 -rw-r--r--   1 named    named           0 Aug  1 03:19 /var/log/named.log.2
524864    4 drwx------   4 mysql    mysql        4096 Jun  1 01:10 /var/lib/mysql
524319    4 drwxr-xr-x   2 named    named        4096 Aug 19 01:04 /var/run/named
524309    4 drwxr-xr-x   2 dbus     dbus         4096 Aug 19 01:04 /var/run/dbus
524436    4 drwxr-xr-x   4 hal      hal          4096 Jun 10 17:47 /var/run/hald

答案2

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

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

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

相关内容