Permissions

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

  • November 18, 2018

我不小心通過執行在我的網路伺服器上造成了未知數量的破壞

sudo chown -R myuser:mygroup * .*

in /var/www,不記得.*會包括父目錄(as ..)。大約一秒鐘後,我意識到發生了什麼,但為時已晚,其中一半的目錄/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

我可以提供子目錄的列表,但這很快就會變得很長。(dist, edata, git, svn, 和www是我自己管理的東西,所以這些東西的所有權不會成為問題)

好吧,“/var”通常用於程序生成的數據,因此如果不複製您的系統,可能無法準確地告訴您誰應該擁有什麼。我可以想到兩種方法可以解決它:

  1. 在備用機或虛擬機上設置另一個版本的 Web 伺服器,然後檢查/var.
  2. 只需更改為 root/root,然後查看出現了什麼錯誤(大多數目錄將具有這種所有權結構)。

1 的缺點是需要花費的時間;好的一面是它將是準確的。第 2 項要快得多,但準確度較低,即使它大部分是正確的。這裡最大的問題是,在重要的生產箱 2 上可能不可行。

我會幫助你,但我不再執行 gentoo,所以這裡有一個比安裝 VM 更快的查找方法。將最新的 tarball 下載到目錄並解壓縮。像安裝一樣安裝 proc 和 dev。chroot 並安裝您已安裝的任何伺服器守護程序,您可能也需要啟動它們。現在執行。

find /var ! -user root -ls

這應該列出所有不屬於 root 使用者的文件。

如果其他人有 gentoo 系統,他們可以通過執行這個命令來幫助他

這是我係統中的一個簡短列表(這是Arch 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

引用自:https://unix.stackexchange.com/questions/938