그래서 나는 내 Linux 컴퓨터의 권한을 조작하고 사용자가 홈 디렉터리에 있는 폴더를 제외한 모든 폴더에 액세스할 수 없도록 권한을 변경해 보았습니다. 이렇게 했는데 sudo chmod 0750 /home/Guest
홈 디렉터리의 다른 폴더에는 액세스할 수 없지만 루트 디렉터리에는 액세스할 수 없게 되었습니다. 그래서 신청했는데 sudo chmod 0750 /
이제 어떤 파일에도 액세스할 수 없고 어떤 명령도 실행할 수 없습니다. 다시 돌아왔는데 더 이상 SSH를 통해 원격으로 연결할 수도 없습니다.
내가 엉망으로 만들었나요?
답변1
정말로 하기만 chmod 0750 /
하고 하지 않는다면 chmod -R 0750 /
아마도 아무런 해를 끼치지 않을 것입니다. 이것만 하면 chmod 0755 /
괜찮을 거예요.
만약 그렇게 한다면 chmod -R 0750 /
, 당신은 망한 것입니다. 조금만 노력하면 상황을 정상으로 되돌릴 수 있습니다.
솔직히 가장 좋은 방법은 루트로 로그인하여 실행하는 것입니다 chmod -R 0755 /
. 이로 인해 시스템의 보안 모델이 깨질 가능성이 높으며 일부 보안 인식 소프트웨어는 실행을 거부할 수 있습니다. 이 시점 이후에는 시스템이 안정적이거나 불안정할 수 있습니다.
어떤 Linux 방언을 사용하고 있는지는 확실하지 않지만 많은 변종에는 이와 같은 긴급 상황에 대비한 일종의 "복구 권한" 도구가 있습니다. 이 도구는 설치된 소프트웨어의 데이터베이스를 조사하여 각 파일을 설치 당시의 권한으로 복원합니다.
시스템이 RPM 패키지에서 설치된 경우,이 답변rpm이 권한을 재설정하도록 하기 위해 실행할 수 있는 명령을 보여줍니다.
권한을 재설정할 수 없고 시스템이 불안정해지면(또는 단순히 신뢰할 수 없는 경우) 백업을 만든 다음 시스템을 다시 설치하는 것이 좋습니다.
게스트로 하려는 작업에 관해:
/home/Guest에 대한 권한을 제거함으로써 사용자가 통과할 수 없는 "벽"을 만드는 것이라고 생각하실 것 같습니다. 불행히도 이는 권한이 작동하는 방식이 아닙니다. 사용자가 경로를 입력할 수 있는 모든 파일은 해당 파일과 해당 파일에 포함된 디렉터리에 대한 권한이 허용하는 한 액세스할 수 있습니다.
일반적으로 고급 ACL 목록이나 유사한 목록 없이 이전처럼 권한을 조정하여 사용자를 "샌드박스" 상태로 전환할 수 없습니다.
실제로 원하는 것은 해당 사용자를 "chroot" 감옥에 가두는 것입니다. 여기서 사용자는 기본적으로 시스템 내의 가상 시스템에 거주합니다. 설정하는 것은 그리 어렵지는 않지만, 그렇다고 사소한 것도 아닙니다.
취할 수 있는 또 다른 접근 방식(실제로는 절반만 완료됨)은 시스템의 모든 파일을 소유한 모든 그룹의 목록을 만들고 "Guest"를 제외한 모든 사용자를 해당 그룹에 넣는 것입니다. 그런 다음 모든 파일에서 "기타" 액세스를 제거합니다.
chmod -R o-rwx /
이렇게 하면 "소유자" 및 "그룹" 권한은 유지하면서 모든 파일에 대한 "기타" 액세스 권한이 제거됩니다. 불행하게도 지금은 너무 늦었습니다.
다음 단계는 하나의 파일 또는 다른 파일에 액세스해야 하기 때문에 손상된 모든 소프트웨어를 추적하는 것입니다. 이 작업은 오랜 시간이 걸릴 수 있으며 솔직히 시스템은 다시는 이전과 동일하지 않을 것입니다.
다음 단계는 이러한 권한 변경으로 인해 "게스트"에게 문제가 발생하는 이유를 알아내는 것입니다. 먼저 /bin, /usr/bin, /lib, /usr/lib, /usr/local, /usr/share에 있는 모든 항목에 대한 권한을 복원해야 합니다. /etc, /var 등에 많은 파일이 있을 수 있습니다.
임베디드 시스템을 구축하고 이러한 모든 문제를 추적할 시간이 없다면 이 접근 방식을 사용하지 않을 것입니다.