root를 사용하는 대신 sudo 권한을 사용자에게 할당하면 실제로 어떤 이점이 있습니까?


25

서버 관리에 익숙하지 않아서 루트 사용자가 만든 사용자에게 sudo 권한을 할당하고 루트 사용자에게 보안 강화를 위해 긴 암호를 제공하는 것이 좋습니다.

그러나 새로 작성된 사용자가 루트 사용자와 동일한 기능을 수행 할 수있는 경우이를 수행하는 실제 이점은 무엇입니까?


7
sudoer는 root가 할 수 있는 모든 것을 할 수 없으며 root가 sudoers가 sudo를 허용하는 것만 가능하며 sudoer는 여전히 명령을 sudo해야합니다. 마지막으로 sudoers는 자신의 사용자 계정으로 sudo 사물을 sudo로 시작합니다. 먼저 root로 로그인 할 필요가없고, 다른 하나는 누가 sudid인지 알 수 있습니다.
KeithS

답변:


48

sudo루트 암호를 넘겨 사용하면 몇 가지 이점이 있습니다. 특별한 순서는 없습니다 :

  • 귀하는 루트 비밀번호를 제공하지 않습니다
    . 일반적으로 누군가가 회사를 떠나서 루트 비밀번호를 알고 있다면 이제 모든 곳에서 해당 비밀번호를 변경해야합니다. 적절한 구성 관리를 사용하면 이는 약간의 성가심입니다. 그것없이 그것은 큰 집안일입니다.

  • 왕국에 열쇠를주지 않으면 서
    sudo 사용자가 실행할 수있는 제한된 명령 목록을 지정할 수 있습니다. 따라서 Alice가 Apache를 중지하고 시작하는 기능 만 필요로하지만 Bob은 사용자가 설정할 수있는 모든 루트 권한이 필요하다고 결정한 경우 그에 따라.

  • 중앙에서 인증을 관리하여 sudo LDAP 구성을 지원할 수 있습니다. 즉, 회사의 모든 시스템이 중앙 LDAP 서버를보고 누가 무엇을 수행 할 수 있는지 확인할 수 있습니다.
    누군가를 승인 (또는 승인 해제)해야합니까? LDAP에서 sudoers 구성을 변경하면 모든 시스템이 한 번에 업데이트됩니다.

  • 감사 내역
    이 있습니다 sudo su -. sudo sh, 또는 이와 동등한 것을 허용하는 사용자를 제외하고 sudo어떤 사용자가 어떤 명령을 실행했는지에 대한 감사 내역이 생성됩니다.
    (또한 그것은 자신에게 기록되지 않은 뿌리 껍질을 준 사람들의 목록을 만들 것이므로 손가락으로 그들과 비 승인을 가리킬 수 있습니다.)

  • sudo단지 루트보다 더 좋다 에 모두 집중 sudo하는 방법으로 할 수 는 AS 물건을 peruser,하지만 그건 아니다 모두 를위한 그것의 좋은.
    Alice가 특정 소프트웨어 빌드를 담당하지만 Bob이 빌드 스크립트도 실행할 수 있어야한다고 가정하십시오. Bob에게 sudoers에 항목을 부여하여 Alice의 사용자로 빌드 스크립트를 실행할 수 있습니다. (그렇습니다.이 특별한 경우를 다루는 훨씬 더 좋은 방법이 있지만 그 원리 Let user A run a program as user B가 유용 할 수 있습니다 ...).
    당신은 또한 당신이 이것을 할 때 위에서 언급 한 것과 동일한 감사-트레일 혜택을 모두 얻습니다 ...


1
매우 유용한 답변-내가 단일 서버를 관리하는 유일한 사람이 될 것이라는 것을 알고 있다면 (그리고 100 % 확실성을 의미한다면) 다른 사용자에게 sudo 권한을 할당하면 많은 이점이 있습니까? 자신이 무언가를 망치는 것을 막는 것 외에?
JM4

3
@ JM4 일관성 및 더 큰 환경에서 작업 할 때 미래의 하루를위한 모범 사례. 실용적인 관점에서 당신은 그래서 당신이 왕으로 묶였던 무언가를 고정 물리적 콘솔에있어 직접하지 않는 등의 루트에 기록되어서는 안 sudosu하나 후프 또는 다른 통해 이동해야 할거야 - 학술 구분이다. 를 사용하면 실용적인 곳에서 최소한의 특권 원칙 (마지막 요점) sudo을 행사할 수있는 기회를 제공하며 항상 진지하게 고려해야 할 사항입니다.
voretaq7

2
또한 visudo 를 사용 하여 sudoers 파일을 편집하십시오.
저스틴 친애하는

3
많은 대화식 명령을 통해 사용자는 감사 내역을 무시할 수 있습니다. 예를 들어 vi 안에 한 번 있을 sudo vi수 있는 모든 사용자 :! bash.
Dietrich Epp

4
@DietrichEpp이 경우 NOEXEC태그가 도움이됩니다.
Shane Madden

17

가장 큰 차이점은 사용자가 자신의 비밀번호 를 sudo사용하여 인증하는 반면 직접 루트 로그인을 사용 하거나 루트 비밀번호를 사용한다는 점입니다.su

즉, 루트 비밀번호를 all 및 sundry 와 공유 할 필요가 없으며, 향후 한두 명의 사용자에 대해 루트 액세스를 비활성화해야하는 경우에는 비밀번호를 변경하지 않고 비밀번호 를 비활성화 할 수 있습니다. 루트 비밀번호.

sudo또한 각 사용자가 루트로 실행할 수 있는 명령 을 제한 할 수 있으므로 특정 루트 사용자가 전체 루트 액세스가 필요하지 않은 경우 수행해야하는 작업에만 액세스 할 수 있습니다.


1
도와 주셔서 감사합니다. 나는 당신의 포인트의 이점을 보았지만 서버의 ssh에서 루트 사용자 로그인을 비활성화하면 기본 사용자를 루트 사용자에게 이중 인증 포인트로 보았습니다.
JM4

4

주어진 답변 외에도 유효한 것으로, 루트로 로그인 한 사용자가 모든 명령에서 시스템을 손상시킬 수 있음을 잊지 마십시오. 잠재적으로 위험한 작업을 수행하기 전에 sudo를 입력하도록 강요하면 적어도 특정 명령을 수행하기 전에 다시 확인해야한다는 사실을 알게됩니다.


2

실제로 제어 및 로깅 관점에서 sudo가 훨씬 좋습니다.

예를 들어-로그에 캡처 된 유일한 이벤트는 suing입니다. 그 이후의 모든 것은 뿌리로갑니다. 그리고 유닉스 / 리눅스에서 로그를 살펴본 적이 있다면 루트가 많은 작업을 수행한다는 것을 알고 있습니다.

반면에 Sudo는 원래 사용자로 거의 모든 것을 기록합니다.


0

sudo를 사용하면 악의적 인 사용자가 시스템에 액세스하기가 더 어려워집니다. 잠금 해제 된 루트 계정이 있으면 악의적 인 사용자가 시작하기 전에 크랙하려는 계정의 사용자 이름을 알고 있습니다. 루트 계정이 잠겨 있으면 사용자는 시스템에 침입하기 위해 사용자 이름과 비밀번호를 결정해야합니다.

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