항상 뿌리가되는 데 무엇이 문제입니까?


83

나는 이것이 멍청한 질문이라고 생각하지만, 이것은 내가 오랫동안 궁금했던 것입니다.

나는 VPS를 가지고 있으며 이것은 나의 첫 번째 큰 리눅스 벤처입니다. 나는 그것에 접근 할 수있는 유일한 사람입니다. 내 질문은, 계정을 만들고 sudo 액세스 권한을 부여하는 대신 루트로 로그인하면 무엇이 잘못됩니까? sudoer가 루트가 할 수있는 모든 것을 할 수 있다면 차이점은 무엇입니까? 해커가 내 루트가 아닌 표준 계정으로 내 암호를 해독 할 수 있다면 sudo 명령을 실행할 수도 있습니다. 그러면 해커가 루트 계정을 크래킹하는 방법이 어느 정도 더 중요합니까?


28
"Unix Way"에 익숙하지 않다면 어리석은 질문이 아닙니다. 새로운 Linux 관리자로서 처음에 질문을하면 보너스를받을 수 있습니다.
Bart Silverstrim

그리고 나는 대답 중 일부에 의견을 말하고 싶습니다. 특히 "당신은 뿌리가되는 물건을 망칠 수 있습니다"라고 말하는 사람들. 나는 그것이 요점이라고 생각하지 않는다 ... "rm -rf /"는 "sudo rm -rf /"와 동일하다. 요점은 "sudo rm"과 같은 것은 작동하지 않지만 "low port의 sudo startMyApp"은 작동한다는 것입니다.
Zlatko

결코 존재하지 않는 것이 무엇입니까?
ostendali

답변:


70

루트로 로그인 한 경우 손가락으로 손가락으로 가볍게 돌리면서 디렉토리를 쉽게 지우거나 시스템에서 멍청한 것을 할 수 있습니다. 반면 사용자는 일반적으로 위험한 일을하기 전에 입력하고 있습니다.

또한 루트 권한으로 루트 권한으로 실행되는 모든 프로그램, 즉 누군가 또는 무언가가 위험하고 트로이 목마 또는 기타 맬웨어와 같이 시스템을 손상시키고 자하는 웹 사이트를 실행 / 컴파일 / 탐색하게하는 경우 1024 미만의 TCP 포트에 대한 액세스를 포함하여 원하는 작업을 수행 할 수 있습니다 (예를 들어 사용자가 모르게 시스템을 리 메일러로 전환 할 수 있음).

기본적으로 자신으로 로그인하면 막을 수있는 문제를 묻습니다. 나는 부주의의 순간에 안전망을 가지고 기뻐하는 많은 사람들을 알고 있습니다.

편집 : 또한 스크립트와 해킹에 대해 가장 잘 알려진 루트가 쉬운 대상이되는 문제가 있습니다. 계정을 비활성화하고 대신 사용자가 sudo를 사용하도록하는 시스템은 ssh에서 루트를 크랙하려고 시도하거나 계정에 대한 로컬 익스플로잇이 벽에 부딪히는 것을 의미합니다. 암호 사용자 이름 을 추측하거나 해독해야합니다 . 어느 정도의 모호함을 통한 보안이지만 대부분의 스크립트 아동 공격을 막을 수는 없다고 주장하기는 어렵습니다.


25
+1- "sudo"를 사용하면 프로그램을 루트로 명백한 행위로 만들 수 있습니다. "해커 중지"의 문제가 아니라 권한이없는 사용자로 작업하고 루트 권한의 호출을 의도적이고 명백한 행동으로 만드는 습관을들이는 문제입니다.
Evan Anderson

2
에반이 실제로 AI인지 궁금해지기 시작했습니다.
Bart Silverstrim

11
Sudo는 또한 감사 내역을 추가합니다. sudo로 실행할 때 누가, 무엇을, 언제 기록됩니다. 어떤 로그 파일이 배포판에 따라 다를 수 있지만 RedHat 배포판은 / var / log / secure를 사용하는 경향이 있으며 Ubuntu는 /var/log/auth.log를 사용합니다 ... 모든 데비안 기반 배포판에서 이것이 사실인지 확실하지 않습니다.
3dinfluence

3
+1-물건을 만들거나 물건을 만들 권리에 관한 것이 아니라 파괴 할 권리에 관한 것이기도합니다. 루트로 로그온하는 것 (또는 그 문제에 대한 다른 OS에서 동등한 것)은 안전 장치를 끈 채 총을 들고 다니는 것과 같습니다. 의도적으로 해당 트리거를 건드리지 않을 수도 있지만 모두 동일하게 수행한다고 자신을 신뢰 하시겠습니까?
Maximus Minimus

3
mh : / me는 카우보이 모자를 쓰고, 권총의 안전을 벗겨 내고, 맥주를 열고, 허수아비에 대한 마구간을 허풍에 대해 조금 불평 한 다음, 루트로 로그인합니다.
Kyle Brandt

29

바보가 서버에 루트로 로그인하는 것을 허용하지 않는다면 항상 루트로 실행하지 마십시오. 당신이 마음에 손을 대지 못한다면 결코 바보 가 아니라고 말하십시오 . 아냐, 진짜? 확실 해요? :)

이점 : 근본 이자 동시에 바보 가 될 가능성을 줄 입니다.


6
+1- "장점 : 당신이 동시에 루트와 멍청이 일 가능성을 줄입니다." 나는 이것을 절대적으로 좋아합니다.
Evan Anderson

모두가 바보라는 스캇 아담스의 철학에 +1. :) 네, 저도 당신과 저를 의미합니다.
Ernie

물론 이것은 면접에서 내 주요 질문 중 하나입니다-언제 마지막으로 망쳤습니까? 모두가, "가장 재미있는 sysadmin fubar"또는 무엇이든에 대한 여기의 스레드 만 읽으면됩니다. 누군가 자신의 삶에서 한 번 이상 실수로 실수를 저 지르지 않았다면, 그들과 함께 일하고 싶지 않은 몇 가지 이유가있을 것입니다.
톰 뉴턴

9

주된 이유는 실수입니다. 항상 근본이라면 간단한 오타가 실제로 시스템을 망칠 수 있습니다. root로만 로그인하거나 sudo를 사용하여 필요한 작업을 수행하면 위험한 실수를 할 위험이 최소화됩니다.


9

루트 권한이 있으면 항상 모든 것에 액세스 할 수 있기 때문에 권한에 대해 게으르게됩니다. 777 또는 644 등이 무엇이든 상관하지 않습니다. 따라서 다른 사람이 시스템에 접속하여 모든 것에 액세스하고 싶지 않다면, 다른 사람들이 기계를 안전하게 사용할 수있게 만드는 것은 정말 어려운 일이됩니다.


5
이것을 "루트 로트"라고합니다.
kmarsh

1
나는 "루트 썩음"이라는 용어를 좋아한다. 사실, 항상 루트로 실행하면 * nix 머신은 다중 사용자 보안의 복잡성이없는 기묘한 Windows 95와 유사한 머신으로 바뀔 수 있습니다. (수년 전, 공유 계정 응용 프로그램의 모든 사용자가 "권한 문제를 해결했기 때문에"루트로 실행 된 SCO 시스템을 기억합니다.> sigh <)
Evan Anderson

sendmail과 함께 메일 링리스트 도구가 루트로 실행되고 있다는 설명을 기억합니다. 답장은 "해커들에게도 권한 문제가 사라졌습니다."
duffbeer703 9

7

루트로 로그인하지 않으면 몇 가지 주요 원칙이 있습니다. 1) 루트 비밀번호는 로그인시 네트워크를 통해 전송되지 않습니다. 2) 여러 사용자가 동일한 계정 (루트 또는 기타)으로 로그인 한 경우 누가 무엇을했는지 알 수있는 방법이 없습니다. 3) 실수로 '멍청한'일을하는 것


3

Windows에서 UAC와 유사하게 실행하려는 더 높은 권한 명령을 다시 검토 할 수 있도록 사용자를 보호하는 데 도움이됩니다. 실수로 다음과 같은 작업을 수행하는 것은 매우 쉽습니다. rm -rf /루트로 로그인 한 상태에서 .

또한 추적 성이 있습니다. 이것은 (이론적으로) 유일한 명령을 내리는 상황에서 큰 문제는 아니지만 개인을 기록하고 추적하는 능력은 많은 형태의 분석의 핵심 요소입니다.


추적 기능은 여러 사람이 시스템 관리자로 일하는 시스템에서 중요합니다. 규제 체제에 의해 요구되는 것은 바람직하지 않습니다.
APC

나는 금요일에 이것을했다. "/ dump / folder /"를 삭제하는 대신 / 폴더를 삭제했습니다. 한 번의 역 슬래시는 우리가 왜 루트로 로그인하지 않는지를 상기시켜주었습니다.
oneodd1

2

차이점은 주로
우연히 나쁜 일을 할 수 없다는 것입니다.
"악한"코드는 시스템을 대신 할 수 없습니다.
주의 : 악의적 인 코드가 반드시 누군가가 이미 시스템에 액세스했음을 의미하지는 않습니다.


요즘 악의적 인 코드는 일반적으로 스팸 봇을 의미하며 모든 사용자로 실행할 수 있습니다.
Ernie

바이러스 (무엇을 파괴하려고 시도) 또는 루트킷을 생각하면 루트가 아닌 경우 맬웨어에 훨씬 더 복잡합니다.
StampedeXV

2

항상 가장 낮은 수준의 권한을 가진 계정을 사용해야합니다. 항상 루트로 실행하면 나쁜 습관과 게으름이 생겨 여러 사용자와 함께 일하거나 공공 / 중공업 네트워크에 무언가를 노출시킬 때 삶에 불쾌감을 줄 수 있습니다.

또한 비밀번호 크래킹은 하나의 타협 시나리오 일 뿐이며 가장 일반적인 시나리오는 아닙니다. 브라우저 취약점 또는 시스템에서 실행되는 일부 데몬의 취약점에 노출 될 가능성이 높습니다.

생각없이 사용하는 코드를 생각하십시오. 예를 들어, Adobe Flash의 Linux 포트는 상대적으로 최근 과거에만 사용할 수 있었던 똥 더미입니다. 그 코드가 얼마나 안전하다고 생각하십니까? 시스템을 완전히 제어 할 수 있기를 원하십니까?


2

SSH 무차별 대입 공격을 방지 할 수 있습니다. 모든 유닉스에는 '루트'계정이 있습니다. 그러나 외부에서 'sudo'사용자 이름이 무엇인지 명확하지 않습니다. 따라서 누군가가 자신의 길을 무 찌르려고하면 루트 계정이 있다는 것을 알고 아마도 시도 할 것입니다. 그러나 그들은 sudo를 사용한다면 어디서부터 시작해야할지 모른다.



1

내 충고는 루트를 잠시 동안 사용하는 것입니다. 당신은 왜 당신이하지 말아야하는지 이유를 곧 알게 될 것입니다 :)


1

"불명확 한 보안"을 신뢰하지 않더라도 기존 루트 로그인 대신 사용자 정의 로그인을 사용하는 것이 유리합니다. 따라서 루트 로그인을 방지하도록 SSH를 구성 할 수도 있습니다.

다른 사람도 말했듯이, 루트는 확인없이 모든 것을 할 수 있습니다. 따라서 권한이없는 사용자를 사용하면 바보 같은 실수와 오타를 예방할 수 있습니다.

여러 사용자 계정을 선호하는 또 다른 주장은 다른 사용자로 다른 소프트웨어를 실행하는 것입니다. 이렇게하면 한 응용 프로그램에서 보안 결함이 악용 될 경우 악용자는 실행중인 사용자가 액세스 할 수있는 파일과 리소스에만 액세스 할 수 있습니다.

루트를 사용하지 않는 마지막 포인트 : 자원 소비. 루트는 사용할 수있는 메모리, 처리 시간, 파일 처리기 또는 디스크 공간의 양에 제한이 없습니다. 많은 파일 시스템에는 루트 전용으로 예약 된 데이터 블록이 있습니다. 따라서 일반 사용자는 디스크를 채우는 데 절대로 사용할 수 없습니다. ulimit 명령을 사용하여 사용자가 사용할 수있는 메모리 및 파일 핸들러 번호를 제한 할 수도 있습니다. 그러나 루트 (또는 루트로 실행중인 응용 프로그램) 인 경우이 제한을 변경할 수있는 방법이 없습니다.


0

예, 동의합니다. 이는 사람의 실수와 때로는 악성 프로그램에 대한 보호 문제입니다. 내가 본 적이없는 나쁜 것은 루트를 기본 그놈 계정으로 사용한다는 것입니다.
필자는 Windows 사용자가 최근에 Linux 또는 Unix로 마이그레이션했다고 생각합니다. 관리자 권한의 사용법을 루트로 복사하십시오.


0

루트로 로그인해도 아무런 문제가 없습니다. 안전한 명령 만 입력 할 수 있도록 근육 기억력을 발달시키고 큰 결과로 행동을 수행 할 때 생각의 정확성을 증진시킵니다. 시스템 관리를 향상시키기 위해 루트로 작업하는 것이 좋습니다.

당신은 또한 같은 멋진 일을 할 수 ping -i 0.2 -c 1000 example.com

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