chown 명령을 되 돌리는 방법? / 그것을 실행하기 전의 상태로 되돌릴

내가 달리면 :

sudo chown -R user:user /

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



답변

한마디로 : 아니오.

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

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


답변

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

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

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

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


답변

배포판이 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 에서 추출


답변

현재 버전을 저장 한 후 -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을 수행 하지 않는 것이 좋습니다 .


답변

배포판이 rpm 기반 인 경우 :

rpm -a --setperms