루트로 실행하는 것이 왜 나쁜가요? 사람들이 끔찍한 일이며 모두 가 그것에 대해

나는 종종 포럼이나 다른 웹 사이트의 게시물을 보았는데 사람들이 루트로 실행 / 로그인하는 것과 같은 방식으로 농담하는 농담을 보는 사람들이 끔찍한 일이며 모두 가 그것에 대해 알아야합니다. 그러나 그 문제에 대한 검색 결과는 많지 않습니다. Linux 전문가에게 널리 알려져 있지만 그 이유를 모르겠습니다. 나는 수년 전에 리눅스를 처음 시도했을 때 항상 루트로 실행하는 것을 기억합니다 (Redhat과 Mandrake). 실제로 루트 사용자를위한 바탕 화면으로 경고 표시가있는 밝은 빨간색 배경의 일부 배포판이 있습니다 (Suse?). Windows 설치에서 정기적으로 사용하기 위해 “관리자”계정을 사용하고 있으며 아무런 문제도 발생하지 않았습니다.



답변

이러한 사용자는 시스템에 대한 관리 액세스 권한, 사용자 및 이들이 실행하는 응용 프로그램이 보호 메커니즘 (예 : 파일 시스템 권한)을 우회하여 시스템의 모든 작업을 수행 할 수 있습니다. 악성 소프트웨어는 무제한 액세스를 좋아합니다.

간단한 예로

sudo rm -rf *

루트 디렉토리에 있다면 Linux 시스템에서 거의 모든 것을 삭제합니다. 그렇게 명확하거나 악의적 일 필요는 없습니다. 루트 권한이 필요한 스크립트에서 예기치 않게 정의되지 않은 변수와 같은 심각한 문제가 발생할 수 있습니다.

rm -rf $destinationDir/*

# if the variable is undefined and the shell doesn't care, the result is:
rm -rf /*

때로는 시스템의 절반을 삭제하는 스크립트의 간단한 오타입니다.

따라서 실제로 필요한 경우 높은 권한으로 만 실행 프로그램을 사용하는 것이 좋습니다.


답변

Linux의 루트는 Windows의 관리자 계정보다 훨씬 강력합니다. 일반적으로 액세스 할 수없는 Windows의 SYSTEM 계정과 비슷합니다.


답변

이는 UAC를 완전히 비활성화하고 모든 사용자가 Windows 상자에서 관리자 권한으로 실행하는 것과 같습니다. 악성 코드는 더 쉽게 설치할 수 있으며, 다운로드에 의한 드라이브가 더 효과적입니다. 침투가있는 경우 컴퓨터에 신이 있습니다. 사용자 권한을 효과적으로 제거하십시오 (일반적으로 나쁜 습관). imho, 당신이 문제가 없다면 당신은 매우 운이 좋았거나, 믿을 수 없을 정도로 안전한 브라우징 습관을 가지고 있거나, 가장 가능성이 높습니다 …. 문제가 있었고 그것을 몰랐습니다.


답변

특정 방식으로 디렉토리 구조를 탐색하고 rm -rf *일부 디렉토리에서 실행 해야하는 스크립트를 작성했습니다 (최소한 두 번) . 약간의 버그가 있었고 스크립트는 "/"(root) 디렉토리로 이동하여 실행했습니다 rm -rf *. 이것은 물론 최악의 예이지만, 덜 악한 스크립트 나 명령은 루트로 실행하는 경우 시스템에 심각한 손상을 줄 수 있습니다.


답변

그것과 함께 제공되는 힘 외에도 실수의 영향 외에도 경고없이 제공됩니다. 그리고 예기치 않은 일을 경고하는 경고입니다.

GUI를 루트로 실행할 때와 같이 : 일부 맬웨어가 자체적으로 설치를 시도했다는 것을 어떻게 알 수 있습니까?


답변

이 문제를 다루는 Microsoft와 바이러스 백신의 슬픈 불행이 있습니다. 관리자 계정 (루트)은 모든 사람이 명시한대로 무제한 액세스 권한을 갖습니다. 시스템 파일을 수정하여 부팅 할 수없는 시스템을 생성 할 수있을뿐 아니라 다른 사용자 데이터에 액세스 할 수 있습니다 (컴퓨터에 대한 물리적 액세스가 가능할 때 데이터 액세스 및 수정을 보호하기 위해 사용자 권한으로는 충분하지 않습니다). 지금 당신이 “보지 않는”것에.

Windows 시스템을 항상 관리자 권한으로 실행하는 것은 불행한 일이었습니다. 세션 내에 다른 사용자가 될 수있는 능력과 같은 좋은 이유가 있습니다 (프로그램 설치는 관리자로 로그 아웃 한 후 관리자로 로그인하고 응용 프로그램을 설치해야하며, 관리자가 실행해야 할 수도 있음). 결과적으로 응용 프로그램을 설치하지 않아도 컴퓨터가 예상치 못한 용도로 사용됩니다.

그 결과 사람들이 관리자 권한을 가지게 된 것이 아니라 Microsoft가 OS UAC의 기본 구조에 대한 권한 제어를 강화하고 있습니다. 이것이 의미하는 바는 자신이 누구든 실행할 수있는 응용 프로그램 권한을 응용 프로그램에 부여하라는 요청입니다. Vista는 관리자에게 “이 프로그램을 실행 하시겠습니까?”, “이 프로그램을 실행하고 있습니까?”

리눅스에서는 매우 다른 철학이 있습니다. 먼저 OS는 당신이 말한 것을 수행하지만 실제로 응용 프로그램을 실행하려고한다는 것을 이중으로 확인하지 않습니다. 둘째, 사용자는 시스템에 원하는 작업을 수행 할 수 없습니다. 이는 시스템이 사용자 실수로부터 안전하다는 것을 의미하지만 사용자는 원하는 경우 항상 권한을 적절한 수준으로 에스컬레이션 할 수 있습니다. Microsoft는 기본적으로 사용자 계층과는 별도로 권한 에스컬레이션 계층을 구축했으며 Linux / Unix는 항상 사용자와 함께 작업 한 권한을 에스컬레이션하도록 설계했습니다.


답변

리눅스에서, 그것은 단지 당신 (또는 당신을 대신하여 행동하는 응용 프로그램)이 실수로 멍청한 짓을하지 못하게합니다.

Windows에서는 프로그램 파일 또는 Windows 폴더에 대한 쓰기 액세스 권한이 없기 때문에 관리자 계정으로 실행하지 않고 많은 종류의 소프트웨어를 설치할 수 없습니다. 최악의 종류의 맬웨어는 이러한 영역에 시스템에 침입하기 위해 쓸 수 있어야합니다.

관리자로 실행하지 않고 숨겨진 키로거와 같은 것을 설치하여 암호, 은행 정보 또는 신용 카드 번호를 훔치려는 손상된 사이트를 방문하면 설치가 실패 할 수 있습니다. 관리자로 실행중인 경우 해당 설치가 성공할 확률이 훨씬 높습니다. 리눅스 시스템에서도 같은 원칙이 적용됩니다.

여기서 핵심은 안티 바이러스 소프트웨어가 들어 가지 않는다는 것입니다. 요즘 안티 바이러스 소프트웨어는 첫 번째 방어선이 아니라 마지막 방어선입니다. 보안 조치를 평가하는 데 사용하는 중요도는 다음과 같습니다.

  1. 시스템 (응용 프로그램 소프트웨어 포함)을 패치 된 상태로 유지
  2. 관리자 권한으로 실행하지 마십시오
  3. 다른 안전한 인터넷 습관을 사용하십시오
  4. 방화벽을 실행
  5. 오프라인 백업 상태가 양호해야합니다 (이 경우 오프라인은 “일반 파일 시스템에 액세스 할 수 없음”을 의미하며 이는 실제로 온라인 서비스 사용을 의미 할 수 있음)
  6. 바이러스 백신 소프트웨어 실행

실제로 다른 항목을 올바르게 수행하는 경우 바이러스 백신 소프트웨어가 전혀 필요하지 않습니다. 그러나 여기서 중요한 것은 관리자 권한으로 실행하는 것이 제한이 없다는 것입니다.

고맙게도, 이것은 현재 Windows 7의 기본 상태입니다. 계정에 관리자 권한이 있어도 여전히 “샌드 박스 된”상태로 실행되며 요청시 특정 응용 프로그램으로 승격 할 수있는 권한 만 제공합니다.