chown 명령을 되 돌리는 방법?


17

내가 달리면 :

sudo chown -R user:user /

그것을 실행하기 전의 상태로 되돌릴 수 있습니까?


1
다른 사람들에게 경고하는 것처럼 : 다음 명령 sudo chown -R user:user ..은 파일 시스템의 루트보다 한 수준 아래 인 경우 여기에 언급 된 것과 동일한 효과를 줄 수 있습니다. 이런 식으로 시도하지 마십시오.
passerby51

답변:


22

한마디로 : 아니오.

백업에서 복원해야합니다. (일부 백업 도구에는 권한 만 복원하는 옵션이있을 수 있으며, 다른 백업 도구는 백업 된 파일을 권한으로 나열 할 수 있으며이를 사용하여 시스템을 수정할 수 있습니다.)

백업이 없으면 수동으로 수정해야합니다.


이후 sudo chown -R user:user /에는 시스템에서 호스가 너무 심해서 백업에서 복원 할 수 없습니다 .
Keith Thompson

1
이 시나리오에서 사용자 데이터의 중요한 부분을 백업에서 복구 할 수없는 경우 "백업"은 실제로는 아닙니다. 전체 OS를 복구 할 수없는 경우에도베이스를 다시 설치 한 다음 백업에서 복원 할 수 있습니다. 이 경우 라이브 CD 또는 네트워크 부팅이 필요할 가능성이 높지만 백업 전략으로 복구 할 수없는 경우에는 충분하지 않습니다.
Mat

나의 이전 의견은 분명하지 않았다. 시스템 자체를 사용하여 작동 시스템을 복원 할 수 있습니다. 설명을 마치면 아무것도chown 할 수 없을 것입니다 는 전체 시스템을 처음부터 설치하기 전에는 . 시스템에 root계정 sudo이 없어서 작동하지 않습니다. 단일 사용자 셸로 부팅 해 볼 가치는 있지만 작동하지는 않을 것입니다.
Keith Thompson

1
루트 계정은 사라지지 않았습니다 (아직 UID 0 임). 더 이상 파일을 소유하지 않지만 루트는 일반적인 권한 검사를 무시합니다. 모든 관련 파일을 소유 한 경우 sudo에도 su계속 작동 하는지 여부user 다른 문제가 (아마 때문에 다른 것들 사이에서 EXE에 SUID 비트가 사라질 것)입니다.
jw013

6

디렉토리 아래의 모든 파일 및 디렉토리의 사용자 및 그룹 소유권을 알고있는 경우에만 해당됩니다 /.

그럼에도 불구하고 sudo명령을 포함하여 루트가 소유해야하는 중요한 시스템 파일의 소유권을 이미 파악했습니다 . 다른 시스템에 하드 드라이브를 마운트해야 할 수도 있습니다. 다른 시스템에는 방금 클로버 한 것과 동일한 UID 및 GID 매핑이 없을 것입니다.

가능하면 전체 하드 드라이브를 복사 한 다음 운영 체제를 다시 설치하십시오. 이 작업을 완료하면 새로 지워진 시스템으로 파일을 다시 복사하고 소유권을 복원 할 수 있습니다. 아래의 모든 것이 /home/foouser가 소유 foo하고 있고 각 메일 스풀 파일 /var/mail이 해당 사용자가 소유하고 있다고 가정 할 수 있습니다 (시스템에 전자 우편이있는 경우). /home시스템에서 수행 한 작업에 따라에 없는 대부분의 파일을 복원하지 않고도 벗어날 수 있습니다 .

그런 다음 이전에 실행 한 모든 명령을 다시 확인하는 습관을 기르기 시작하십시오.sudo 치기Enter .


6

배포판이 RPM 기반 인 경우 rpm 패키지로 설치 한 파일 만 복원 할 수 있습니다.

모든 패키지 권한을 복원하려면

rpm --setperms -a

모든 패키지 소유자 (사용자 / 그룹)를 복원하려면

rpm --setugids -a

-a가 실행되지 않으면 bash 루프를 실행할 수 있습니다.

권한 :

for x in $(rpm -qa); do rpm --setperms $x; done

소유자 :

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

http://www.sysadmit.com/2016/10/linux-restaurar-permisos-de-un-paquete.html 에서 추출


1

현재 버전을 저장 한 후 -v 옵션을 사용하여 되돌 리도록 구문 분석 할 수 있습니다.

chown -R nobody:nobody -v /tmp/some_file > /tmp/chown.log
cat /tmp/chown.log

내용은 다음과 같습니다.

changed ownership of `/tmp/some_file' from me:users to nobody:nobody

자주 사용하는 스크립팅 언어와 정규식을 사용하면 번거롭게 되돌릴 수 있습니다 (필요한 경우).

/ etc / shadow 또는 다른 중요한 파일을 노출 시키므로 /에서 재귀 chown을 수행 하지 않는 것이 좋습니다 .


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