etc 디렉토리에서 chmod를 복원하는 방법은 무엇입니까?

etc 디렉토리에서 chmod를 복원하는 방법은 무엇입니까?

실수로 etc 디렉토리에서 다음 명령을 실행했습니다.

sudo chmod -R 700 /etc

나는 내가 뭔가 매우 잘못했다는 것을 알고 있습니다. 내 터미널은 이제 다음을 인쇄합니다.

I have no name!@ubuntu: /$

내 etc 디렉토리를 이전 상태로 복원하려면 어떻게 해야 합니까?

권한 변경을 시도했지만 지금은 실패합니다. 또한 누군가 내가 이 명령을 실행할 때 실제로 무엇이 잘못되는지 설명할 수 있다면 매우 도움이 될 것입니다. 이것은 단지 파일 권한입니다. 그렇다면 전체 시스템이 완전히 손상된 것처럼 보이는 이유는 무엇입니까? 지금 로그인 비밀번호가 작동하지 않는 이유는 무엇입니까? etc 디렉토리에 사용자 관련 파일이 있는 것으로 알고 있습니다. 하지만 권한을 변경하면 어떻게 모든 것이 위험해 집니까? 이에 대한 일부 기술적인 세부 사항은 매우 도움이 될 것입니다.

답변1

sudo한 가지 문제가 발생했습니다. 명령을 사용하는 것입니다. 이 -R스위치는 chmod자신이 무엇을 하고 있는지 모르는 경우 해당 디렉터리에 대한 권한을 재귀적으로 설정하도록 지시합니다. (이런 일이 나에게 발생하면 해당 명령을 실행하는 대신 명령을 실행하는 버그가 있는 GUI가 생겼고 내 시스템은 연결을 시작합니다).

이것은 단지 파일 권한입니다. 그렇다면 전체 시스템이 완전히 손상된 것처럼 보이는 이유는 무엇입니까?

GNU/Linux는 안정성과 신뢰성을 위해 제작되었기 때문에 파일 권한에 매우 민감합니다.안전마음. GNU/Linux에서 실행되는 대부분의 프로그램에도 동일하게 적용됩니다(즉, apache2루트 권한을 제거하고 www-data유사한 사용자를 사용하며 귀하의 700권한은 자체 파일을 읽고 쓰는 것을 허용하지 않습니다).

지금 로그인 비밀번호가 작동하지 않는 이유는 무엇입니까?

이미 언급했듯이 로그인 비밀번호는 파일에 저장되어 /etc/passwd루트(변경하지 않았다고 가정)만 읽을 수 있지만 로그인 프롬프트(또는 GUI 로그인)는 권한이 없는 계정을 사용하므로 읽을 수 없습니다. 파일.

하지만 권한을 변경하면 어떻게 모든 것이 위험해 집니까?

위에서 언급했듯이 Linux는 파일 권한에 매우 민감합니다. 일부 프로그램은 구성 파일에 대한 권한도 확인하고 예상과 일치하지 않으면 전혀 실행되지 않습니다.

내 etc 디렉토리를 이전 상태로 복원하려면 어떻게 해야 합니까?

RPM 기반 배포판을 사용하는 경우 명령을 사용하여 이 작업을 수행할 수 있습니다 . 패키지를 하나씩 복원하는 것은 고통스러울 수 있습니다. rpm --setperms데비안과 같은 시스템에서는 apt-get --reinstall install친구입니다 . 다른 솔루션이 있을 수 있지만 제대로 작동하는 시스템이 필요합니다.

답변2

당신이 한 일은 파일/디렉토리의 소유자만 읽기/쓰기/실행을 허용하고 다른 사람은 거부하도록 전체 /etc 디렉토리에 권한을 설정한 것입니다. 파일 권한에 대해 혼란스러우면 자세한 내용을 읽어보세요.Wikipedia: 기존 UNIX 권한.

시스템이 손상된 이유는 많은 프로세스가 더 이상 설정을 읽을 수 없고 /etc에 액세스할 수 없기 때문입니다. 전체 /etc 디렉토리를 이전 상태로 복원하는 것은 쉽지 않습니다. 이를 수행하는 방법은 배포판에 따라 다르지만 기본적으로 이는 /etc에 있는 파일이 포함된 모든 패키지를 다시 설치하는 것을 의미합니다.

시스템에 대한 빠른 반창고로 시스템을 올바르게 수정하려면(위에서 언급한 대로 /etc에 콘텐츠가 포함된 모든 패키지를 다시 설치) 다음을 수행할 수 있습니다.

    # sudo find /etc -type d -exec chmod 775 '{}' \;
    # sudo find /etc -type f -exec chmod 664 '{}' \;

이 두 줄을 사용하면 모든 /etc 디렉토리에 자유 권한을 설정하여 소유자와 그룹이 읽기/쓰기를 허용하고 다른 사람이 읽을 수 있도록 허용합니다. 두 개의 chmod가 있는 이유는 디렉토리에 실행 비트만 설정하기 위해서입니다. 그럼에도 불구하고 /etc의 실행 파일을 포함하여 일부 프로세스는 오류가 발생하거나 실패할 수 있지만 위에서 설명한 재설치를 수행할 수 있어야 합니다.

최소한 원래 권한을 복원할 때까지 시스템은 안전하지 않은 상태에 있게 됩니다.

답변3

700 다수의 파일에 대한 그룹 및 전체 사용자 액세스가 제거되었습니다(예: 이제 파일에 rwx------권한이 있음). 예를 들어 , 모든 사용자는 /etc/passwd./etc/passwd/etc/

작업 중인 서버를 기반으로 권한을 다시 빌드할 수 있지만(아직 루트로 전환할 수 있다고 가정) 오류가 발생하기 쉽습니다.

백업이 있는 경우 /etc/백업에서 복원하는 것이 좋습니다. 복원 권한을 복원하거나 백업 솔루션이 지원하는 경우 권한만 복원하세요.

관련 정보