/루트에서 예기치 않은 chown이 발생했습니다.

/루트에서 예기치 않은 chown이 발생했습니다.

실수로 루트로 다음 명령을 실행했습니다. chown mike -Rf / backups 요점은 / 사이에 공백을 추가하고 오류를 백업했다는 것입니다. 1-2초 후에 명령을 중지했습니다. 어떻게 복구합니까? 액세스할 때 오류가 발생하는 등 지금 DirectAdmin을 사용하는 데 문제가 있습니다.

Unable to determine Usertype
user.conf needs to be repaired
http://help.directadmin.com/item.php?id=456

아니면 이메일 수신이 중단되고 지금은 무슨 문제인지조차 모르겠습니다...

답변1

시스템은 소유권 개정을 추적하지 않으므로 백업을 복원하지 않고는 다시 변경할 수 없습니다.

추가 변경 사항을 롤백할 수 있도록 즉시 백업을 만드는 것이 가장 좋습니다.

시스템에 패키지를 다시 설치하면 대부분의 소유권 문제가 해결될 수 있습니다. 데비안/우분투에서는 이렇게 합니다:

apt-get install --reinstall package

rpm기본 시스템 에서는 rpm -Uvh --force package.rpm 이와 같은 문제가 발생합니다. 올바르게 설정된 경우 패키지는 변경된 구성 파일을 덮어쓰지 않습니다.

다른 유사한 시스템이나 백업이 있는 경우 해당 시스템에서 원래 소유권 정보를 검색하여 시스템에 적용할 수 있습니다. 사용하고 싶은 파일과 디렉터리를 나열하는 것부터 시작하세요.

find / -user mike

그리고 해당 목록을 사용하여 백업 또는 유사한 시스템에서 Mike가 소유하지 않은 파일을 찾으세요.

답변2

이는 실행 중인 운영 체제에 따라 다릅니다.

Solaris 10 및 이전 버전의 경우 다음 명령을 사용하여 패키지에 속한 파일 및 디렉터리에 영향을 미치는 모든 소유자 문제를 해결할 수 있습니다.

pkgchk -f

Solaris 11의 경우 이는 다음과 같습니다.

pkg fix

AIX에도 비슷한 패키지 수정 명령이 있다고 생각합니다.

rpm 기반 운영 체제(Red Hat, Fedora 등)를 실행 중인 경우 다음을 실행할 수 있습니다.

rpm -aV

패키지 데이터베이스와 다른 파일 및 디렉터리를 탐지합니다. 그런 다음 다음 명령을 실행하여 문제를 해결할 수 있습니다.

rpm --setugids <package-name>

하지만 영향을 받는 각 패키지 이름을 전달해야 합니다. 또는 간단히 다음을 실행할 수도 있습니다.

for package in $(rpm -qa); do rpm --setugids $package; done

데비안 기반 운영 체제를 실행하는 경우 파일 소유권이 패키지 데이터베이스에 저장되지 않으므로 소유권을 복원하기 위한 참조로 백업(사용 가능한 경우)을 사용하거나 유사한 시스템을 찾아야 합니다. 소유권을 복원합니다.

답변3

저도 똑같은 실수를 저질렀습니다. 문장 끝에 오타가 있었습니다.

chown -R root:root /folder/subfolder /

슬래시 앞의 공간을 인식하지 못했습니다 :(

여기에 물어보고 싶어서 설치된 다른 데비안 서버에서 소유자와 그룹을 가져와서 마침내 문제를 해결했습니다. 이 서버에서 나는 다음을 수행했습니다.

find / -not -path '/proc/*' -not -path '/var/www/*' -not -path '/home/*' ! \(  -name root -o  -group root \) | xargs stat --format 'chown %U:%G %n' | sort -k 2,3 > chown_owner_and_group.sh
chmod +X chown_owner_and_group.sh

그런 다음 파일 소유자와 파일 그룹을 복원해야 하는 서버에 파일을 복사하고 다음을 수행했습니다.

./chown_owner_and_group.sh

답변4

귀하의 유일한 해결책은 동일한 배포판의 다른 설치와 비교하고 소유자를 올바르게 재설정하는 것입니다.

관련 정보