`chmod -R 777 /bin`을 복원할 수 있나요?

`chmod -R 777 /bin`을 복원할 수 있나요?

알아요chmod -R 777 /극도로 파괴적이다, 나도 하나 알아chmod -R 000 /bin복원 가능사용하여추가 디스크, 하지만 알고 싶어요 chmod -R 777 /bin.

루트 셸은 있지만 정상 가상 머신에서 마운트된 다른 디스크가 없는 경우 시스템을 복원할 수 있나요?


(이 질문은 학습용입니다. 실제 상자는 제가 만든 것도 아니고, 버그도 아니며, 상자는 이미 재구축이 예정되어 있기 때문입니다.)

답변1

귀하가 링크한 응답에 명시된 바와 같이 이는 "복구"에 대한 귀하의 정의에 따라 다릅니다. 데스크톱에서는 괜찮습니다. 그러나 다중 사용자 기업 시스템에서는 더욱 그렇습니다).

내 상자를 보면 /bin관리 가능한 수의 0755가 아닌 파일이나 심볼릭 링크된 파일이 있습니다.

ls -l /bin/ | grep -v '^-rwxr-xr-x' | grep -v '^l' | wc -l
35

이는 주로 setgid 또는 setuid이기 때문입니다. 따라서 원칙적으로 chmod 0755 /bin/*여전히 루트 액세스 권한이 있는 경우 해당 30, 40개 바이너리에 대한 권한을 수동으로 수정할 수 있습니다. ( 적절한 권한이 복원될 때까지 작동하지 않습니다. su)sudo

그러나 실제적인 목적을 위해 이는 여전히 비교할 어딘가에 드라이버가 설치되지 않은 "깨끗한" 시스템이 필요하다는 것을 의미합니다.

(생각해 보니 바이너리에 대한 잘못된 권한이 패키지 관리자의 작동을 방해해서는 안 된다고 생각하므로 에 있는 항목이 포함된 모든 패키지를 다시 설치해 볼 수 있지만 /bin아마도 대부분의 항목은 에 있는 항목에 의존 /bin하므로 종료될 수 있습니다. 모든 패키지 제거 및 재설치).

답변2

내 민트 시스템에서 /bin의 모든 파일은 0755입니다. 단, 퓨저마운트, 마운트, ping, ping6 및 su는 04755입니다.

0755는 공유 실행 파일에 대한 합리적인 권한 마스크입니다. 어떤 실행 파일이 setuid인지는 시스템의 보안 정책에 따라 크게 달라집니다.

노력하다:

chmod -R 0755 /bin && chmod  04755 /bin/{{,fuser}mount,ping{,6},su}

이 시점에서는 (루트로서) 피해가 거의 없습니다(무엇이든 setuid 루트를 설정하는 것은 잠재적인 취약점입니다).

관련 정보