sudo는 어떻게 사용되나요?

sudo는 어떻게 사용되나요?

이전에 구성을 시도했지만 sudo운이 좋지 않았습니다. 와 어떻게 다른가요 su -l -c "x"? 구성 파일을 통해 사용자에게 특정 명령 등에 대한 액세스 권한을 부여하는 것이 가능한 것 같습니다. 나는 항상 sudo이것이 다른 사용자나 그룹으로서 명령을 실행하는 방법이라고 생각했습니다. Ubuntu 및 Mint와 같은 배포판에서는 기본적으로 마스터 사용자가 비밀번호를 통해 루트에 쉽게 액세스할 수 있기 때문에 그 용도가 무엇인지 잘 모르겠습니다.

sudo 파일에 사용자를 추가하여 루트 디렉터리에서만 특정 명령을 실행할 수 있는 권한을 부여하려면 어떻게 해야 합니까? 또한 보안 허점을 열고 싶지 않습니다.

답변1

기본 작업(루트로 명령 실행)의 경우 sudo와 su의 가장 분명한 차이점은 sudo에는 호출 사용자의 비밀번호(즉, 자신의 비밀번호)가 필요한 반면, su에는 대상 사용자의 비밀번호(즉, 루트 비밀번호). 보안에 미치는 영향은 이전 질문에서 광범위하게 논의되었습니다.sudo, su 또는 login 중 루트 권한을 얻는 가장 안전한 방법은 무엇입니까?.

Sudo에는 su 외에 추가 기능이 있습니다. 특히 사용자의 비밀번호가 있으면 해당 사용자로서 모든 명령을 실행할 수 있습니다. 반면에 sudo를 호출하는 사용자는 다른 사용자로서 특정 명령만 실행할 수 있도록 구성할 수 있습니다. 이는 sudo가 인증을 요구하지 않기 때문에 가능합니다(비밀번호를 입력하여 신원을 확인하는 것 외에는 작업에 대해 사용자를 인증하는 것과 약간 다릅니다).

루트로 명령을 실행하여 sudo 구성을 변경할 수 있습니다 visudo(구성을 직접 편집하지 마십시오). 환경 변수가 즐겨 사용하는 편집기로 설정되어 EDITOR있는지 확인하십시오 VISUAL. 그렇지 않으면 익숙하지 않은 편집기를 사용하게 될 수 있습니다. 이것sudoers매뉴얼 페이지조금 간결하지만 예가 있습니다. 사용자가 (인수 제한 없이) ​​as bob를 실행하도록 허용하려면 (다른 인수는 사용하지 않음) 다음 줄을 사용하십시오./bin/foo/bin/bar --saferoot

bob ALL = (root) /bin/foo
bob ALL = (root) /bin/bar --safe

답변2

가장 큰 차이점은 sudo에서와 같이 루트로 명령을 실행하는 데 루트 비밀번호가 필요하지 않다는 것입니다 su. 파일에 누군가를 추가하려면 루트 비밀번호가 필요 sudoers하지만 그 후에는 해당 사람이 루트로 명령의 전체 또는 일부를 실행할 수 있습니다( 이미 제한한 경우) 추가 비밀번호가 필요하지 않습니다.

지적하신 것처럼 또 다른 차이점은 sudo실행할 수 있는 명령을 더 강력하게 제어할 수 있다는 것입니다.

파일 형식에 대한 자세한 내용을 보려면 를 sudoers실행하세요 man sudoers. 특정 명령만 루트로 실행되도록 허용하는 예를 찾을 수 있습니다. 각 라인의 기본 구조는 다음과 같습니다.

user_list host_list = cmd_list

cmd_list에는 실제 사용자가 전환할 수 있는 사용자에 대한 세부 정보가 포함될 수 있습니다. 예를 들어 사이트 관리자가 wwwroot로 전환하여 Apache를 다시 시작하도록 허용할 수 있지만 루트는 허용하지 않을 수 있습니다. 또한 전환하기 전에 사용자 비밀번호를 요구할지 여부(기본값)와 같은 다른 옵션도 포함될 수 있습니다.

예시 라인은 다음과 같습니다:

joe  ALL=(ALL) ALL

즉, joe가 모든 호스트에서 모든 사용자로서 모든 명령을 실행하도록 합니다. 보다 엄격한 경로는 다음과 같습니다.

joe  ALL=(operator) /usr/local/ops/

즉, joe가 "운영자" 사용자로 /usr/local/ops 디렉터리에 있는 모든 명령을 실행하도록 합니다.

sudoers 매뉴얼 페이지 끝에는 많은 예제가 있습니다.

/etc/sudoers편집하려면 명령을 사용해야 합니다 visudo. 이는 파일이 합법적인지 확인하고 실수로 파일이 손상되는 것을 방지하는 데 도움이 됩니다.

답변3

다른 답변 외에도 sudo는 어떤 명령을 누가 실행했는지 추적할 수 있도록 로깅 기능을 제공합니다. sudo 액세스 권한이 있는 악의적인 사용자가 로그를 지울 수 있으므로 이는 보안 목적이 아닙니다. 그래도 지난 주 오전 2시에 눈이 침침해졌을 때 본인이나 다른 관리자가 무엇을 하고 있었는지 파악하는 것은 유용합니다.

관련 정보