우분투에서 폴더 권한을 기본값으로 재설정하는 방법은 무엇입니까?


19

최근에 명령을 입력했습니다

sudo chmod 777 -R /

그 후 같은 것들

sudo -i

정상적으로 작동하지 않습니다. 폴더 권한을 원래 상태로 재설정 할 수있는 방법이 있는지 궁금합니다.


리눅스가 이전 권한 설정을 기억하지 않는다고 생각합니다. 새 파일을 만들어 어떤 권한 설정을 가져 오는지보십시오.
thecoshman

아 잠깐만, 네가 거기서 뭘했는지 알아 이것은 아마도 다시 설치 상황 일 것입니다. 데이터를 백업하고 설치 한 응용 프로그램을 기록하십시오. 10.4를 시도해보십시오. (최고의 이름은 btw ... 그 라디오의 의미는 무엇입니까?)
thecoshman

나는 당신이 그 정확한 일을하지 않은 한 사람을 감히 감히 : D 매우 까다로운 상황입니다. 문제를 해결하고 jlovi의 답변을 시도해보십시오. 시간과 노력이 필요하며 실망 할 것입니다. 다시 설치하고 끝내십시오. 하고있는 일을 모른다면 sudo chmod를 사용하지 마십시오.
Jack Mayerz

답변:


17

이다 가능한 이 지저분한 상황에서 돌아올 수 있습니다.

나는 같은 종류의 문제 (필자가 작성한 스크립트의 버그)를 다시 실행하여 해결했지만 전문가의 도움을 요청해야합니다. 매우 조심하십시오!

첫째, 이중 부팅 시스템 (우분투 및 이전 Fedora 설치)이 있었기 때문에 상황을 해결하기가 쉽지만 CD / DVD 또는 USB 키에서 OS를 실행하면 동일한 작업을 수행해야합니다.

MPOINT=/mount/ubuntu

먼저 파일 시스템을 다음과 같이 마운트했습니다 (마운트 포인트를 만드는 것을 잊지 마십시오).

mount /dev/ubuntu/root $MPOINT
mount /dev/ubuntu/home $MPOINT/home

그런 다음 실행중인 시스템에서 지저분한 시스템으로 권한을 복사하기 위해 다음 명령 (내 문제는 몇 가지-중요-디렉토리에만 있음)을 실행했습니다 (사실, 필자는 페도라에서 Virtual Box에 Ubuntu 시스템을 설치했습니다) 거기에 권한을 얻었습니다) :

find /etc /usr /bin /sbin -exec stat --format "chmod %a \"${MPOINT}%n\"" {} \; > /tmp/restoreperms.sh

그런 다음 restoreperms.sh 스크립트를 실행했습니다.

우분투에서 다시 부팅 할 수있었습니다.

restoreperms.sh의 내용은 다음과 같습니다.

(...)
chmod 755 /mount/ubuntu//etc/ppp
chmod 755 /mount/ubuntu//etc/ppp/ipv6-up
chmod 2750 /mount/ubuntu//etc/ppp/peers
chmod 640 /mount/ubuntu//etc/ppp/peers/provider
chmod 755 /mount/ubuntu//etc/ppp/ipv6-up.d
chmod 777 /mount/ubuntu//etc/ppp/resolv.conf
(...)

나는 그것을 테스트하지 않았지만 소유자와 소유자 그룹에서도 작동해야합니다. 다음과 같은 것 :

find /etc /usr /bin -exec stat --format 'chown %U:%G ${MPOINT}%n' {} \; > /tmp/restoreperms.sh^

(...)
chown root:root /mount/ubuntu//etc/obex-data-server/imaging_capabilities.xml
chown root:root /mount/ubuntu//etc/obex-data-server/capability.xml
chown root:dip /mount/ubuntu//etc/ppp
chown root:root /mount/ubuntu//etc/ppp/ipv6-up
chown root:dip /mount/ubuntu//etc/ppp/peers
chown root:dip /mount/ubuntu//etc/ppp/peers/provider
chown root:root /mount/ubuntu//etc/ppp/ipv6-up.d
chown root:root /mount/ubuntu//etc/ppp/resolv.conf
(...)

물론 UID와 GID는 두 시스템에서 동일하지만 시스템 관련 사용자 및 그룹의 경우 문제가되지 않도록주의해야합니다.

편집하다:

또한 owner 설정 하면 SGID 및 SUID 플래그가 무효화 되어 이상한 문제가 발생합니다 (예 : 권한이 4755가 아니면 sudo를 수행 할 수 없음). 소유자를 설정 한 후에 만 권한을 설정해야합니다 . 소유자 정보와 함께 완전한 파일 권한 정보를 저장하십시오.

Rk :

  1. 이를 위해 중요한 것은 설치 디스크를 사용중인 버전과 동기화 상태로 유지하거나 최소한 현재 우분투 버전으로 작업하는 것입니다.
  2. 이제는 cronjob 에서이 명령을 사용하여 해당 정보를 유지하기 위해 매일 (몇 주일 수 있음) 실행됩니다. 다음 번에는 솔루션을 더 쉽게 만들지 만 물론 지금은 가지고 있기 때문에 다시는 발생하지 않습니다. ;-) 이 같은:

    0 12 * * * /usr/bin/find / -exec /usr/bin/stat --format="/bin/chmod %a %n" {} \; |/bin/bzip2 -c > /tmp/restore_chmod.$(/bin/date +%w).sh.bz2

    0 13 * * * /usr/bin/find / -exec /usr/bin/stat --format="/bin/chown %U:%G %n" {} \; |/bin/bzip2 -c > /tmp/restore_chown.$(/bin/date +%w).sh.bz2

올바른 (결합 된) 명령은 다음과 같습니다.

`/usr/bin/find / -exec /usr/bin/stat --format="[ ! -L {} ] && /bin/chmod %a %n" {} \; -exec /usr/bin/stat --format="/bin/chown -h %U:%G %n" {} \; |/bin/bzip2 -c > /tmp/restore_fileperms.$(/bin/date +%w).sh.bz2`

파일 이름의 괄호 (예 : 로케일)를 설명하기 위해 추가주의가 필요할 수 있으며 chown은 chmod에 의해 설정된 setuid 및 setgid 비트를 자동으로 설정 해제 할 수 있습니다. 후자의 경우 (/ bin / su 및 / usr / bin / sudo)는 위의 exec 절 순서를 바꿔야 할 수도 있습니다.


단지 훌륭한 대답. Ask Ubuntu
Private

나를위한 완벽한 솔루션!

2

부팅시 sudo복구 하거나 복구 모드 를 선택한 후

그것은 사용하여 전체 시스템을 복구하는 것이 가능 debsums을 파일 무결성 및 권한 verifiy 그.

매뉴얼 페이지에서 :

apt-get install --reinstall $(dpkg -S $(debsums -c) | cut -d : -f 1 | sort -u)

변경된 파일로 패키지를 다시 설치합니다

또는 특정 경로로 제한됩니다. 예 : /usr:

apt-get install --reinstall $(dpkg -S $(debsums -c | grep -e ^/usr ) | cut -d : -f 1 | sort -u)

또는 여러 경로 세트로 제한됩니다. 예 : /sbin /etc /var

apt-get install --reinstall $(dpkg -S $(debsums -c | grep -e ^/etc -e ^/sbin -e ^/var  ) | cut -d : -f 1 | sort -u)

debsums가 실제로 권한을 확인합니까? 나는 시도 chmod a-x /bin/ping하고 debsums -c해당 파일을보고하지 않을 것입니다.
reox

0

항상 sudo로 실행하는 것을 지켜보십시오.

이 스레드 는 수동으로 일부 권한을 다시 설정할 수 있으며 스크립트가 도움이되지만 여전히 큰 일이라고 설명합니다. 트레드의 팁을 따라 설치된 패키지 (표시)를 저장하고 OS를 다시 설치하고 저장된 패키지 표시를 적용하여 응용 프로그램을 다시 가져 오십시오.


0

내가 아는 한, System V 패키지와 RPM만이 파일 권한을 복구하는 명령을 제공합니다. System V (Solaris)에서는 pkgchk이고 RPM에서는 rpm --setperms입니다.

불행히도 데비안 / 우분투 패키지에는 그러한 명령이 존재하지 않는 것 같습니다.하지만 여기서 잘못되었을 수 있습니다.

그러나 이러한 명령의 도움을 받아도 시스템을 정상 상태로 되 돌리는 것은 쉬운 일이 아니며 시스템을 복구하여 시스템에 새로운 해를 끼칠 수 있습니다.

요셉이 말한 것 외에는, 당신은 첫 번째 사람이 아니며, 그러한 명령을 마지막으로 입력 한 사람은 아닙니다. 그러나 유닉스 시스템에서 파일 권한을 777로 변경한다는 아이디어만으로도 이런 종류의 시스템에 익숙하지 않다는 강력한 증거입니다. 이 상황에서 수행 할 수있는 최선의 방법은 다시 필요한 항목 (홈 디렉토리, 구성 파일, 메일 파일)을 백업하고 새로 설치하는 것입니다.

그리고 손상된 백업 파일을 복원 할 때는 매우주의해야합니다.

행운을 빕니다!

추신 : 나는 당신이 어떤 종류의 문제를 해결하고 싶었는지 궁금합니다.


0

와우, 당신은 그것을 죽였다. 죽었어! 머신을 루트로 로그인하고 사용하여 (활성화 한 이후) 시도한 다음 루트의 그룹 구성원을 사용자로 변경하십시오. 전에 시도한 적이 없지만 그만한 가치가 있기 때문에 작동하지 않을 수도 있습니다.


0

chmod작업을 취소 할 수 없습니다 . 적어도 이전 설정으로 롤백한다는 의미는 아닙니다. 이것이 바로 이런 상황입니다. 아마도 각 파일과 디렉토리를 원래 모드로 되돌려 서 작업을 취소 할 는 있지만 모두 같지는 않습니다. 원래 모드를 결정하는 것은 까다 롭습니다 (다른 답변에서 논의 된 것처럼).chmodchmod

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.