/var의 어떤 파일에 특정 소유자가 있어야 합니까?

/var의 어떤 파일에 특정 소유자가 있어야 합니까?

실행하는 동안 실수로 웹 서버에 알 수 없는 피해를 입혔습니다.

sudo chown -R myuser:mygroup * .*

에서는 상위 디렉터리(예 /var/www: . 약 1초 후에 나는 무슨 일이 일어나고 있는지 깨달았지만 그때는 너무 늦었습니다. 디렉토리의 절반이 "재소유"되었습니다. 나는 대부분의 것을 재설정할 수 있다는 것을 안다..*../var

sudo chown -R root:root /var

그러나 수동으로 변경해야 하는 루트가 아닌 특정 사용자(또는 그룹)가 소유해야 하는 파일은 무엇입니까?

젠투의 디렉토리 목록은 다음과 같습니다:

$ 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, svnwww제가 직접 관리하는 것이므로 소유권은 문제가 되지 않습니다.)

답변1

도와드리고 싶지만 저는 더 이상 젠투를 실행하지 않으므로 가상 머신을 설치하는 것보다 더 빠른 방법이 있습니다. 최신 tarball을 해당 디렉토리에 다운로드하고 압축을 풉니다. 당신이 한 것처럼 proc과 dev를 설치하십시오. chroot를 실행하고 설치한 서버 데몬을 설치하려면 해당 데몬도 시작해야 할 수 있습니다. 지금 달려보세요.

find /var ! -user root -ls

루트 사용자가 소유하지 않은 모든 파일이 나열되어야 합니다.

젠투 시스템을 사용하는 사람이 있다면 이 명령을 실행하여 도움을 줄 수 있습니다.

내 시스템에 있는 간단한 목록은 다음과 같습니다(예:아키텍처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. 대기 머신이나 가상 머신에 다른 버전의 웹 서버를 설정하고 확인해 보세요 /var.
  2. 루트/루트로 변경하고 어떤 오류가 발생하는지 확인하세요(대부분의 디렉터리에는 이러한 소유권 구조가 있습니다).

1의 단점은 시간이 걸린다는 것이고, 장점은 정확하다는 것입니다. 2번은 더 빠르지만 대부분 정확하더라도 덜 정확합니다. 여기서 가장 큰 문제는 심각한 생산 상자에서는 2가 실행 가능하지 않을 수 있다는 것입니다.

관련 정보