sudo 사용자와 루트 사용자의 차이점 [닫힘]


21

/etc/sudoers사용자가 무엇을 할 수있는 파일 목록 sudo명령

루트 사용자는 /etc/sudoers파일을 작성하고 수정 합니다.

이 개념은 이해하기 어렵습니다.

sudo 권한을 가진 모든 사용자가 sudoers그룹 에 속하면 모든 사용자 는 sudo su명령 을 제공하여 루트가 될 수 있습니다 .

그렇다면 실제 루트 사용자는 누구이며 sudoers 그룹의 사용자 권한을 어떻게 제어합니까?

나에게 설명해주세요.


4
이해하기 어려운 부분을 확장해야한다고 생각합니다.
garethTheRed

루트 사용자는 누구입니까? 이 질문은 이해하기 어렵습니다. 겸손한 사용자는 sudoers 그룹에만 속할 수 있기 때문에
rancho

@rancho 질문을 업데이트하십시오
peterph


기본 질문에 대한 간단한 답변 (답변에 대한 의견을 바탕으로 함) : 실행 을 허용하면 root액세스와 sudo권한 의 차이 가 무의미해진다는 것이 사실입니다 sudo su. 그러나이를 허용 할 필요는 없습니다. 특정 명령 세트 만 허용 할 수 있습니다 (예 : sudo특정 백업 명령에 대해서만 junior sysadmin에 액세스 권한 부여) .
와일드 카드

답변:


29

요약 : "root"는 실제 관리자 계정 이름입니다. "sudo"는 일반 사용자가 관리 작업을 수행 할 수있는 명령입니다. "Sudo"는 사용자가 아닙니다.


긴 대답 :

"root"(일명 "superuser")는 시스템 관리자 계정의 이름입니다. 이름의 기원은 조금 구식이지만, 그것은 중요하지 않습니다.

루트 사용자는 사용자 ID가 0이며 명목상 무제한 권한이 있습니다. 루트는 모든 파일에 액세스하고, 프로그램을 실행하고, 시스템 호출을 실행하고, 설정을 수정할 수 있습니다. (그러나 아래 ¹ 참조).

"sudo"명령이 발명되기 전에 관리 작업을 수행하려면 로그인 프롬프트 ²를 받거나 su명령 ( "su"가 대체 사용자를 위해 짧음)을 사용하여 루트로 로그인해야했습니다 .³³

그것은 약간의 번거 로움이며 사용자에게 부분적인 관리 권한을 부여하지 않습니다. 따라서 "sudo"명령 ( "substitute user do"의 줄임말)이 발명되었습니다.

"sudo"명령을 사용하면 사용자 ID가 sudoers 파일에있는 한 수퍼 유저 권한으로 명령을 실행하여 필요한 권한을 부여 할 수 있습니다.

예를 들어 sudo vi /etc/hostsroot로 실행중인 것처럼 hosts 파일을 편집 할 수 있습니다. 루트 비밀번호가 필요하지 않으며 자신의 로그인 비밀번호 만 있으면됩니다.

그리고 물론, sudo su당신은 단순히 뿌리가 될 수 있습니다. su루트 암호를 알 필요는 없지만 sudoers 파일에 있어야한다는 점을 제외하고 는 root로 로그인했거나 명령을 실행 한 것과 결과가 같습니다 .

sudoers 파일은 sudo 명령을 사용할 수있는 사람과 함께 수행 할 수있는 작업을 결정합니다.

sudoers 파일은 여러 관리자에게 제공됩니다 ⁴. 사실상, 관리자는 루트이고 sudoers 파일에 나열된 모든 사람입니다. sudoers 파일이 없으면 유일한 관리자는 root입니다.

사실, 다른 사람이 사용자를 대신하여 컴퓨터를 관리하는 조직에서는 sudoers 파일에있는 한 자신의 컴퓨터의 루트 암호를 모르는 것이 일반적입니다.

거대한 서버 팜으로 일한 한 회사에서 아주 적은 수의 사람들 만이 루트 암호를 알고있었습니다. 대신, 어떤 서버에서 작업 할 수있는 데이터베이스가있었습니다. 자동화 된 프로세스는 액세스 권한이있는 서버의 sudoers 파일에 사용자를 추가하고 권한이 만료되면 제거합니다.


¹ 한 가지 더 : 현대 유닉스 버전은 이제 루트 사용자가 할 수있는 것까지 제한 할 수 있습니다.

아래 의 SELinux (Security는 리눅스를 강화), 거기에 어떤 프로그램이 결정한다 무엇을 할 수있는 액세스 제어 목록 효과적으로, 그리고 심지어 루트는 이러한 제한 과거를 얻을 수 없습니다.

Apple의 SIP ( System Integrity Protection ) (일명 "루트리스") 시스템에서는 특정 화이트리스트의 응용 프로그램 만 액세스 할 수 있도록 특정 파일과 디렉토리가 잠겨 있습니다.

이러한 시스템은 악의적 인 사용자가 루트 액세스 권한을 얻기 위해 관리하는 경우로부터 시스템을 보호하기 위해 존재합니다. (또는 경우에 따라 사용자가 내장 장치를 탈옥하는 것을 방지하기 위해.) 명백한 이유로 루트 액세스를 통해서도 이러한 제한을 무시하기가 매우 어렵습니다.

² "login :"프롬프트는 유닉스 역사의 또 다른 구식 작품으로, 창 시스템 대신 직렬 회선에서 ASCII 터미널을 사용했을 때로 거슬러 올라갑니다. login터미널 창 에 간단히 입력 하거나 다른 곳에서 컴퓨터에 대한 ssh (또는 telnet 또는 rsh) 연결을 열어서 "login :"프롬프트를 계속 표시 할 수 있습니다 . 원하는 경우 다른 사용자로 로그인 할 수 있습니다. 또한 컴퓨터에 직렬 포트가있는 경우 로그인을 허용하도록 구성 할 수 있습니다.

³ 개별 프로그램에 루트 액세스 권한을 부여 할 수도 있습니다. 이러한 프로그램은 일반 사용자가 실행하더라도 루트 액세스 권한이있는 사용자가 수행 할 수있는 모든 작업을 수행 할 수 있습니다. 이들은 일반적으로 특정 작업으로 제한됩니다. 예를 들어, crontab 프로그램에는 cron 테이블을 편집 할 수있는 루트 권한이 있습니다. 분명히, "sudo"는 루트 권한을 가지고있어 그 기능을 수행 할 수 있습니다.

previously 이전에 살펴 봤던 점을 하나 더 설명하겠습니다. "관리자"와 "루트"를 서로 바꿔서 사용했지만 다른 종류의 관리자가 있습니다. 이를 "역할 계정"이라고도합니다. 즉,이 계정은 실제 사람의 것이 아니라 시스템에서 특정 역할을 수행하기 위해 존재합니다. /etc/passwd시스템 에서 파일을 살펴보면 수십 개의 계정이 있습니다.

예를 들어, mysql이 시스템에 설치된 경우 "mysql"사용자가 있고 모든 데이터베이스 파일, 구성 파일 등이 모두 해당 사용자가 소유합니다. 해당 사용자 만 파일에 액세스하고 mysql 서버를 실행하는 데 필요한 권한이 있습니다. 어떤 의미에서는 해당 사용자가 관리자 계정이지만 mysql에 대해서만 해당됩니다.

데이터베이스 관리 작업을 수행해야하는 경우 su mysql명령을 사용 하여 "mysql"이 되거나 sudosudoers 파일이 특정 명령에 대한 mysql 권한을 제공 하는 위치를 사용 합니다.


1
sudoers 파일은 여러 관리자 에게 제공 됩니다. 사실상, 관리자는 root이며 sudoers 파일에 나열된 모든 사람입니다. sudoers 파일이 없으면 유일한 관리자는 root입니다.
Edward Falk

1
"SELinux (Security Enhanced Linux)에는 누가 누가 무엇을 할 수 있는지, 심지어 루트조차도 이러한 제한을 극복 할 수없는 액세스 제어 목록이 있습니다." -루트조차도 그 제한을 통과 할 수 없다면 누가 먼저 그 제한을 생성합니까?
rancho 2016 년

1
이를 명확하게하기 위해 : "실제로 관리자는 root이고 sudoers 파일에 나열된 모든 사람입니다." sudoers 항목은 전체 루트 또는 루트 수준 액세스를 의미 할 필요가 없습니다. Sven에게 moniser로 실행되는 모니터링 에이전트를 다시 시작하는 기능을 부여 할 수 있습니다.
Jeff Schaller

1
The "sudo" command lets you execute commands with superuser privileges as long as your user id is in the sudoers file [..]. 내 컴퓨터 (Solus OS 3)에서 이것은 잘못되었습니다. 내 사용자 이름이 sudoers 파일에 없습니다. 그리고 난 여전히 할 수 있습니다 sudo.
Martin Andersson

2
옛 대답과 이것은 페트로 트리이지만 su"대체 사용자"의 약자입니다. sudo따라서 "대체 사용자 수행"입니다. su뿐만 아니라 다른 사용자로 로그인 하는 데 사용할 수 있습니다 root. 또한 sudo다른 사용자로 명령을 실행 하는 데 사용할 수 있습니다 .
josaphatv
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.