etc 디렉토리에서 chmod를 어떻게 되돌릴 수 있습니까?


9

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

sudo chmod -R 700 /etc

나는 내가 매우 잘못한 것을 알고있다. 이제 터미널이 인쇄됩니다.

I have no name!@ubuntu: /$

etc 디렉토리를 이전 상태로 되돌리려면 어떻게해야합니까?

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


3
ls -laR실행중인 다른 시스템 의 디렉토리 목록 ( ) 이 필요 합니다. 당신의 버전은 무엇입니까? 디렉토리를 755로, 파일을 644로 변경할 수 있지만 일부는 다른 모드 (예 : / etc / shadow)를 가져야합니다.
ott--

4
입력 sudo할 때 "안전망없이 내 시스템에 대한 궁극적 인 힘을 부여하고 있습니다. 내가 무엇을하고 있는지 알고 있습니까? 제가 의미 한 것을 입력했는지 확실합니까?" Return 키를 누르기 전에
msw

1
작업 시스템을 사용하면 비표준 모드의 디렉토리 및 파일을 사용 find /etc -type d ! -perm 755 -exec ls -ld {} \;하고 find etc -type f ! -perm -644 -exec ls -l {} \;찾을 수 있습니다. 데비안에서는 단지 2 개의 디렉토리와 39 개의 파일입니다
ott--

"하지만 권한을 변경하면 어떻게 모든 것이 위험 해졌습니까?" -해당 파일을 읽는 데 필요한 몇 가지 사항에 해당 파일을 읽을 수있는 권한이 없습니다.
user253751

답변:


15

한 가지 잘못되었습니다. sudo해당 명령과 함께 사용하십시오 . -R스위치를 알려줍니다 chmod당신이 나에게 일어난 후에는 (무엇을하고 있는지 모르는 경우 내가 : 재귀 적으로 모든 경우에서, 디렉토리, 비 권장 조치가 (이단 우리가 그것을 호출해야합니다)에 대한 권한을 설정 명령을 발행하지 않았지만 결함이있는 GUI로 인해 시스템이 연결되었습니다.

파일 권한 일뿐입니다. 그렇다면 왜 전체 시스템이 완전히 폭파 된 것입니까?

GNU / Linux는 안정성과 보안 을 염두에두고 구축 된 파일 권한에 매우 민감합니다 . GNU / Linux에서 실행되는 대부분의 프로그램에 동일하게 적용됩니다 (즉 , apache2루트 권한을 삭제하고 www-data, 또는 유사한 사용자를 사용하며 사용자의 700권한으로는 자체 파일을 읽거나 쓸 수 없음).

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

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

그러나 권한 변경은 어떻게 모든 것을 위태롭게 했습니까?

위에서 말한 것처럼 Linux는 파일 권한에 매우 민감합니다. 일부 프로그램은 구성 파일의 권한을 확인하기도하며 예상하지 못한 경우 전혀 실행되지 않습니다.

etc 디렉토리를 이전 상태로 되돌리려면 어떻게해야합니까?

RPM 기반 배포판을 사용하는 경우,이 rpm --setperms명령을 사용하여이 작업을 수행 할 수 있습니다 . 데비안 유사 시스템 apt-get --reinstall install에서는 친구가 패키지를 하나씩 하나씩 되돌릴 수 있습니다 . 다른 솔루션도 사용 가능하지만 작동하는 시스템이 필요합니다.


5

보시다시피, 파일 / 디렉토리의 소유자에게만 허용되는 읽기 / 쓰기 / 실행으로 전체 / etc 디렉토리에 권한을 설정하고 다른 모든 사람에게는 거부하십시오. 파일 사용 권한이 혼동되면 Wikipedia : Traditional UNIX permissions 에서 자세히 읽을 수 있습니다 .

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

시스템을 사용할 수있는 빠른 지원으로, 시스템을 올바르게 수정하기 위해 (위에 언급 한대로 / etc 내에 내용이있는 모든 패키지를 다시 설치) 다음을 수행 할 수 있습니다.

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

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

시스템이 최소한 안전하지 않은 상태에있는 원래 권한을 복구 할 때까지주의하십시오.


2
또한 일부 프로그램이 작동하지 않습니다. 예를 들어 SSH는 특정 파일에 대한 제한적인 권한이 필요합니다. /etc/sudoers또 다른 것입니다.
Mel Boyce

1
그러나 일부 파일을 /etc읽을 수있게 만들면 안됩니다! 백업에서 복원하기 때문에 백업이 필요합니다 (또는 사람들이 백업을 요청한 이유).
tripleee

0

700은 그룹 및 전세계 사용자를 위해 많은 파일에 대한 액세스를 제거했습니다 (예 : 파일에 rwx------권한이 있음). 예를 들어 모든 사용자가 읽을 수 있어야합니다 /etc/passwd. 설정하면 이제 루트 만 읽을 수 있습니다 /etc/passwd. 파일에 대한 권한을 /etc/예측할 수없는 방식으로 중단하면 많은 문제가 발생합니다 .

작동하는 서버를 기반으로 권한을 재 구축 (루트로 전환 할 수 있다고 가정) 할 수 있지만 오류가 발생하기 쉽습니다.

/etc/백업이있는 경우 백업에서 복원하는 것이 좋습니다 (복원 이 권한을 되돌 리도록하거나 백업 솔루션이 지원하는 경우 권한 만 복원).

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