sudo는 어떻게 사용됩니까?


24

sudo이전에 구성 을 시도했지만 그다지 운이 없었습니다. 어떻게 다른 su -l -c "x"가요? 구성 파일을 통해 사용자가 특정 명령에만 액세스 할 수 있도록 할 수 있습니다. 나는 항상 sudo다른 사용자 또는 그룹으로 명령을 한 줄로 묶는 방법으로 생각했습니다 . Ubuntu 및 Mint와 같은 배포판은 기본 사용자가 암호를 통해 루트에 쉽게 액세스 할 수있게하여 쉽게 사용할 수 있기 때문에 의도 된 용도가 무엇인지 확실하지 않습니다.

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

답변:


16

루트로 명령을 실행하는 기본 작업의 경우 sudo와 su의 가장 큰 차이점은 sudo는 호출하는 사용자의 비밀번호 (예 : 비밀번호)가 필요하지만 su는 대상 사용자의 비밀번호 (예 : 루트 비밀번호)가 필요하다는 것입니다. 보안 문제는 이전 질문에서 광범위하게 논의되었습니다. 루트 권한을 얻는 가장 안전한 방법은 sudo, su 또는 login입니까? .

Sudo에는 su 이외의 추가 기능이 있습니다. 특히, 사용자 암호가 있으면 해당 사용자로 모든 명령을 실행할 수 있습니다. 반면 sudo는 호출 한 사용자가 다른 사용자로서 특정 명령 만 실행할 수 있도록 구성 할 수 있습니다. sudo에는 인증이 필요하지 않기 때문에 가능합니다 (암호를 입력하여 본인임을 확인하는 것 이외의 작업이지만 사용자를 작업에서 인증하는 것과는 미묘합니다).

visudo루트로 명령 을 실행하여 sudo 구성을 변경하십시오 (구성을 직접 편집하지 마십시오). 환경 변수 EDITOR또는 VISUAL선호하는 편집기로 설정되어 있는지 확인하십시오. 그렇지 않으면 익숙하지 않은 편집기를 얻을 수 있습니다. sudoers매뉴얼 페이지 비트 간결하지만 예제가 있습니다. 사용자 bob/bin/foo(다수의 인수를 사용 하여) 실행 /bin/bar --safe하고 다른 인수 root는 사용 하지 않도록 하려면 다음 행을 사용하십시오.

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

2
sudo굉장한 발명품입니다
tshepang

1
sudo에 루트 비밀번호가 필요한지 루트 비밀번호가 필요한지 여부는 구성에 따라 다릅니다. 어느 쪽이든 설정할 수 있습니다.
Jonathan M Davis

3
@Tshepang Amen 형제. 루트 암호를 해제하고 지원 기술에 대해 설명하고 SU를 사용하는 방법과 / anything /을하지 않는 방법에 대해 설명해야 apache2ctl graceful한다면 손목을 찢어 사용하는 것이 좋습니다.
Shadur

6

가장 큰 차이점은 sudo명령을 루트로 실행하기 위해 루트 암호가 필요하지 않다는 것입니다 su. sudoers파일 에 누군가를 추가하려면 루트 암호가 필요 하지만 그 이후에는 추가 암호없이 루트 또는 일부 또는 일부 (제한된 경우)를 루트로 실행할 수 있습니다.

또 다른 차이점은 앞에서 언급했듯이 sudo실행할 수있는 명령을 정확하게 제어 할 수 있다는 것입니다.

sudoers파일 형식에 대한 자세한 내용은 다음을 실행하십시오 man sudoers. 특정 명령 만 루트로 실행할 수있는 예제가 있습니다. 각 줄의 기본 구조는 다음과 같습니다.

user_list host_list = cmd_list

cmd_list에는 실제 사용자가 전환 할 수있는 사용자의 세부 사항이 포함될 수 있습니다. 예를 들어, 웹 마스터가 wwwroot로 전환하여 아파치를 다시 시작하지만 루트로 전환하지 못하게 할 수 있습니다. 또한 전환하기 전에 사용자 비밀번호가 필요한지 여부와 같은 다른 옵션도 포함 할 수 있습니다 (기본값).

예제 라인은 다음과 같습니다.

joe  ALL=(ALL) ALL

즉, joe가 모든 호스트에서 모든 사용자로 명령을 실행하도록합니다. 더 단단한 줄은 다음과 같습니다.

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

이는 joe가 / usr / local / ops 디렉토리에서 "operator"사용자로 명령을 실행하도록합니다.

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

/etc/sudoers명령을 사용하여 편집해야합니다 visudo. 이렇게하면 파일이 유효한지 확인하여 실수로 파일이 손상되는 것을 방지 할 수 있습니다.


sudo를 사용할 때 암호가 필요한지 여부는 전적으로 sudoers파일 설정 방법에 따라 다릅니다 . 암호를 요구하도록 설정하거나 암호를 요구하지 않도록 설정할 수 있습니다.
Jonathan M Davis

기본 / etc / sudoers 파일을 변경하지 않도록하는 추가 일반적인 방법 : IDS가이를보고 형식이 하루를 망칠 수 있기 때문에 : /do/sudoers.d에서 sudo 스 니펫을 별도의 파일로 사용하십시오. 사람들을 위해 바퀴 그룹을 사용하면 어떤 명령도 허용되었습니다.
bbaassssiiee

2

다른 답변 외에도 sudo는 로깅 기능을 제공하므로 실행 한 명령과 누가 명령을 추적 할 수 있습니다. sudo 액세스 권한을 가진 악의적 인 사용자가 로그를 지울 수 있기 때문에 보안 목적이 아닙니다. 지난 주 오전 2시에 자신이나 다른 관리자가 bleary가 뭘했는지 정확히 알아내는 것이 매우 유용합니다.


3
sudo는 syslog에 대한 로깅을 지원하기 때문에 보안을위한 것입니다. 보안에 관련된 모든 주요 설정에서 시스템이 손상 될 경우 로그가 영향을받지 않도록 별도의 원격 시스템에 로그하도록 구성됩니다.
Arrowmaster

추가 전용 파일 속성은 비트 chattr + a / var / log / secure에 도움이 될 수 있습니다
bbaassssiiee
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.