sudo는 무엇을 의미하고 수행합니까?

“누군가 sudo가 무엇을 의미하는지 말해 줄 수 있나요?” 저는 Linux를 배우고 있습니다. 나는 봤지만 누군가가 나에게 Windows 비교를 줄 수 있습니까? 이것이 조금 도움이 될 것이라고 생각합니다. su는 사용자 전환을 의미합니다. sudo는 또 다른 사용자입니다.하지만 그 이유와 방법은 무엇입니까? “사용자 이름으로 자신에게 권한을 부여 할 수없는 이유는 무엇입니까?

댓글

  • 윈도우에서 ‘ 관리자 권한이없는 경우 계정에 대한 이름과 비밀번호를 제공해야합니다. 물론 사용자 이름으로 자신에게 권한을 부여 할 수 있습니다. 그렇게하는 것은 현명하지 않습니다. 그러면 실행이 권한이있는 모든 것을 수정할 수 있습니다. 이것이 Windows가 오랫동안 안전하지 않은 이유 중 하나입니다.
  • @KnowledgeBeyondMe : 질문의 주제는 무엇입니까? 뭔가 의미있는 일이 있습니다.
  • 좋습니다. 제가 이해하는지 확인해 보겠습니다. 관리자 계정이있는 사람 대신 모든 사람이 sudo 사용자 이름을 사용하여 관리자가 될 수 있습니다. 그러나 해당 sudo 사용자 이름을 사용하면 실제 사용자 이름 계정이 지옥과 같기 때문에 작업이 다시 기록됩니다.이 경우 정말 마음에 듭니다. 시간이 많이 절약됩니다. ‘ 권한이있는 사람이 소프트웨어와 프린터 등을 추가하기 위해 올 때까지 기다릴 필요가 없습니다.

답변

sudo를 사용하면 루트 슈퍼 사용자로 프로그램을 실행 할 수 있습니다. su 대신 사용하면

  1. 비밀번호를 요구하므로 루트 비밀번호를 알 필요가 없습니다.
  2. 어떤 명령이 루트로 실행되고 어떤 명령이 사용자로 실행되는지 명시 적으로 알고 있습니다. su를 사용하면 셸이 생기고 실수로 일부 (위험한) 프로그램을 실행할 수 있으며
  3. 모든 작업이 파일. su 에 의해 시작된 것과 같은 셸의 작업은 일반적으로 기록되지 않습니다 .

사용자 이름으로 자신에게 권한을 부여 할 수없는 이유는 무엇입니까?

보안상의 이유로 루트 계정은 일상적인 용도로 거의 사용되지 않습니다 . 일반적으로 관리자를 포함한 모든 사용자는 “일반”사용자를 사용하고 명령 만 실행합니다. 이는 (1) 다른 사용자의 파일에 대한 무단 액세스, (2) 로그되지 않은 루트 작업 및 (3) “위험한”프로그램 실행으로 인한 문제를 방지 할 수 있습니다.

있습니다. 고려할 수있는 Wikipedia 의 비유입니다.

  • 루트 계정을 사용하는 것은 오히려 수퍼맨이되는 것과 같습니다. 관리자의 일반 사용자는 Clark Kent와 더 비슷합니다. Clark Kent는 사람들을 구하기 위해 필요한만큼만 슈퍼맨이됩니다. 그런 다음 “변장”으로 되돌아갑니다. 루트 액세스는 동일한 방식으로 사용해야합니다. Clark Kent 변장은 여전히 그의 초능력을 사용할 수 있기 때문에 그를 제한하지 않습니다. 이것은 sudo 프로그램을 사용하는 것과 유사합니다.

댓글

  • sudo를 사용하는 것은 슈퍼 땅콩을 먹으면 슈퍼 구피로 변신 할 때까지 구피가되는 것과 같습니다. 시간이 초과되면 초능력이 사라집니다 (기본값 15 분) 이후 새 땅콩을 입력하라는 메시지가 표시됩니다. 비밀번호는 …
  • 알겠습니다. 내가 이해하는지 확인해 보겠습니다. 관리자 계정을 가진 사람 대신 모든 사람이 sudo 사용자 이름을 사용하여 관리자가 되십시오. 그러나 해당 sudo 사용자 이름을 사용하면 실제 사용자 이름 계정에서 지옥과 같은 종류이기 때문에 작업이 다시 기록됩니다. 그렇다면 정말 좋습니다. ‘ 권한이있는 사람이 소프트웨어와 프린터 등을 추가하기 위해 올 때까지 기다릴 필요가 없습니다.
  • @KnowledgeBeyondMe 유력한 관리자가 되려면 /etc/sudoers에 등록되어 승인을 받아야합니다. su에 비해 sudo의 다른 장점이 있지만 sudo의 주요 요점은 자신의 암호를 사용하여 인증한다는 것입니다. 공유 된 비밀번호는 좋지 않습니다.
  • 다른 기술을 사용하여 /etc/sudoers 또는 사용자를 포함하여 권한을 부여해야합니다. / a>, sudo를 실행합니다. 일반적으로 모든 사람에게 권한을 부여하지 않고 시스템 관리자 만 승인합니다.

답변

대부분의 Unices에서 기본적으로 , “관리자”계정 인 root는 드물게 만 사용됩니다. 일반 Unix 시스템에는 두 가지 수준의 관리자 또는 “수퍼 유저”권한이 있습니다. 모든 항목 을 완전히 제어하거나 그렇지 않습니다.

“모든 권한”에는 대부분의 권한 검사를 우회하고 간단한 오타로 시스템을 완전히 망칠 수있는 것이 포함됩니다. 일반 사용자는 자신의 파일 만 삭제할 수 있습니다.

이전 su 유틸리티는 루트 비밀번호와 함께 사용되어 루트 ID를 가정합니다. 그러나 올바른 사용자 그룹에 속하고 자신의 암호를 알고있는 경우 다른 사용자의 신원을 가정하거나 단일 명령을 실행하는 데 사용될 수도 있습니다.

su는 일반적으로 루트 사용자 (일부 Unix 시스템에서)가 영역에 액세스하지 못하도록 보호하기 위해 특정 사용자 ID로 실행해야하는 데몬 (서비스 프로세스)을 시작하기 위해 사용합니다. 액세스 권한이 없어야합니다 (일반적으로 웹 서버, SSH 서버 등). 시스템이 부팅 될 때 시작 스크립트에서이 작업을 수행 할 수 있습니다.

su는 (명령 줄에서) 대화식으로 거의 사용되지 않습니다.

sudo 유틸리티는 사용자가 다른 명령으로 명령을 실행할 수 있도록하기 때문에 약간 더 많은 구성이 필요합니다. 자신의 비밀번호를 사용하여 사용자 (예를 들어, 루트 암호를 공유 할 필요가 없음을 의미합니다.) 또한 누가 정확히 무엇을 할 수 있는지를 세밀하게 제어 할 수 있습니다. 예를 들어 단일 사용자 또는 전체 사용자 그룹에 특정 디스크를 마운트 할 수 있지만 마운트 해제하거나 다른 디스크를 마운트하거나 특정 명령 등을 사용하여 소프트웨어를 설치할 수있는 기능을 제공 할 수 있습니다. 다시, sudo 유틸리티를 사용하면 대화식 세션에 대해 다른 사용자의 신원 (루트뿐만 아니라)을 가정하거나 단일 명령을 실행할 수 있습니다 (루트가있는 다른 사람이 이러한 방식으로 구성을 설정 한 경우).

일반적으로 sudo를 사용하여 단일 명령을 실행합니다 (따라서 이름은 “superuser do”).

$ sudo apt-get install vim 

또는

$ sudo shutdown -ph now 

sudo를 이러한 방식으로 사용하는 것이 sudo -s 실행하는 명령이 기록되기 때문에 대화 형 루트 셸로 작업합니다. 나중에 로그 파일에서 작업을 다시 추적하여 작업을 수행 한 위치 (그리고 누가)를 확인할 수 있습니다. 디버깅 또는 감사용입니다.

오랜 시간 동안 대화 형 루트 프롬프트에서 멀어지면 수행중인 작업과 루트 권한이 정말로 필요한지 다시 고려해야합니다.

예를 들어, 나는 대화 형 루트 프롬프트는 새로 설치된 컴퓨터에 일반 사용자를 추가 할 때 또는 일반 사용자로 로그인 할 수없는 심각한 문제가있을 때입니다.


OpenBSD (릴리스 5.8 이후)에는 기본 시스템 설치에서 sudo를 대체하는 doas라는 유틸리티가 있습니다. sudo가 OpenBSD 개발자가 제시 한 목표에 맞추기에는 너무 복잡해 졌다는 것이 분명해 졌을 때 개발되었습니다. 사용법은 sudo, 와 비슷하지만 구성이 더 쉽습니다 .

답변

유닉스 초기 버전에서 가장 일반적인 시나리오는 윈도우 시스템없이 터미널을 통해 로그인하는 것이 었습니다. su 명령 (대체 사용자)은 로그 아웃하지 않고 현재 권한을 변경하는 편리한 방법이었습니다. 윈도우 시스템에서 로그 아웃하지 않으면 실행중인 모든 작업이 중지됩니다.

su를 사용하여 루트가되는 것은 몇 가지 성가신 문제입니다. 사람들은 때때로 세션을 종료하는 것을 잊고 실수로 루트로 명령을 실행했습니다. 관리 암호를 변경하는 것은 필요한 모든 사람에게 배포해야했기 때문에 복잡했습니다. 대부분의 시스템은 모든 명령을 기록하지 않았기 때문에 누가 루트로 무엇을했는지 알기 어려웠습니다. 등등.

sudo는 사람들이 하나의 단일 명령을 루트로 실행할 수 있도록하여 이러한 문제를 해결했습니다. 일회성 명령에 대해 좀 더 편리하면서 더 나은 감사 및 제어를 제공합니다.

답변

알겠습니다. 이해했는지 확인해 보겠습니다. 관리자 계정을 가진 사람 대신 모든 사람이 sudo 사용자 이름을 사용하여 관리자가 될 수 있습니다. 그러나 해당 sudo 사용자 이름을 사용하면 실제 사용자 이름 계정에서 지옥과 같은 종류이므로 작업이 다시 기록됩니다. 그렇다면 정말 좋아요. 그것은 많은 시간을 절약합니다. 소프트웨어와 프린터 등을 추가하기 위해 권한이있는 누군가가 올 때까지 기다릴 필요가 없습니다.

댓글

  • sudo는 사용자 이름이 아닌 유틸리티입니다. 누군가가 여전히 sudo를 사용할 수있는 권한을 부여해야합니다. 권한은 다음의 사용으로 제한 될 수 있습니다. 특정 명령을 사용하거나 sudo를 사용하여 특정 다른 사용자 ID를 가정합니다. sudo를 사용하여 루트 이외의 다른 역할로 전환 할 수 있습니다.
  • 오, Active Directory 조직 그룹과 비슷합니까? 권한이있는 고유 한 사용자 이름이 있지만 권한이 부여 된 경우 전문 조직의 권한에 액세스 할 수 있습니다. 이러한 의미에서 ORG는 SUDO 유틸리티일까요?
  • ” Active Directory “가 무엇인지 모르고, 저는 ‘ 확실하게 예 또는 아니오라고 말할 수 없습니다.
  • 창의 권한 및 역할에 대한 제어 메커니즘
  • 아니요, sudo 그룹 또는 사용자 계정이 아닙니다. -Windows, Active Directory 및 LDAP에서 사용자 그룹을 정의 할 수 있습니다. Linux에서는 사용자 그룹도 정의 할 수 있습니다. 예를 들어, Linux에는 일반적으로 admin 그룹이 있습니다. 각 사용자는 기본 그룹과 여러 보조 그룹에 속할 수 있습니다 . –sudo에게 그룹의 모든 구성원 을 승인 할 수 있습니다. /etc/sudoers를 확인하면 승인 된 그룹에 % 접두사가 있습니다.

Answer

sudo를 사용하면 구성 가능한 사전 정의 된 규칙 집합에 따라 다른 사용자 (루트 포함)로 프로그램을 실행할 수 있습니다.

켜기 Unix / POSIX / Linux 시스템 루트는 신입니다. 루트 사용자도 단수입니다.

많은 환경에서 전체 루트 액세스가 필요한 관리자가 여러 명 있지만 일반적으로 루트 용으로 예약 된 특정 기능을 수행하기 위해 액세스해야하는 개인이있을 수도 있습니다. DBA는 DB 서비스를 중지 및 시작하고, DB 구성 파일을 편집하고, 네트워크 관리자는 네트워크 장치 및 경로를 구성해야하며, 보안 관리자는 인증서를 관리하고 방화벽을 구성해야합니다.

사용자가 실행할 수있는 명령을 제한함으로써 sudo는 최소 권한 원칙을 적용합니다. 사용자는 필요하지 않은 액세스 권한을 얻지 못합니다. 그러나 사용자가 실행하는 바이너리 만 제한하는 것은 아닙니다. 많은 관리 작업이 명령 줄에서 수행되며 해당 명령에 전달 된 매개 변수는 sudo에 의해 제한 될 수도 있습니다 (또는 sudo가 제공하는 액세스 권한이있는 쉘 스크립트에서 캡처 됨). 따라서 이러한 특수화 된 데이터 / 장치를 제한 할 수 있습니다. 관리자가 액세스 할 수 있습니다.

왜 사용자 이름으로 자신에게 권한을 부여 할 수 없습니까?

1) 이것은 나쁠 것입니다.

  • 시스템에서 루트 계정에 자주 액세스했지만 로그인에 사용할 명명 된 계정을 설정하지 않습니다. , 그리고 “su”또는 “sudo”는 내 슈퍼 파워를 명시 적으로 호출 할 때만 사용할 수 있습니다. 어리석은 실수를 방지하는 것 외에도 내 명명 된 계정은 오작동하는 구성 요소에 대한 샌드 박스를 제공합니다.

  • 권한 액세스 권한이 필요한 사람이 5 명이면 각 사람에게 권한을 부여합니까? 20 명 정도? 200 명 정도입니까?

2)이 어려울 것입니다

  • 유닉스 보안 모델이 아닙니다. 물론 일부 실행 파일에 대한 권한을 변경할 수 있습니다 (매개 변수에 대한 이전 참고 사항 참조). 그러나 보안에 관심이있는 경우 정기적으로 패치를 적용합니다. 이는 사용자 정의 된 권한 모델을 손상시킬 수 있습니다 (sudo OTOH는 명령 자체와 독립적으로 권한을 유지합니다).

댓글

  • 아, 이것이 Linux가 공격하기가 조금 더 어려운 이유입니다. 권한을 가진 사람이 적습니다. 공격자는 올바른 권한을 가진 사람을 찾아야합니다.

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다