sudo -i 및 sudo su - 및 기타(있는 경우)를 사용하여 사용자가 루트로 로그인하는 것을 제한하는 방법

sudo -i 및 sudo su - 및 기타(있는 경우)를 사용하여 사용자가 루트로 로그인하는 것을 제한하는 방법

파일을 편집하여 sudoers사용자를 제한 하려고 합니다 M ALL=!/bin/su. 제한할 수는 있지만 sudo su -할 수는 없습니다 sudo -i.

답변1

/bin/bash원래 질문의 경우 다음과 같이 제외 (또는 에서 사용자 쉘로 정의된 모든 것 ) 해야 합니다 /etc/passwd.

tomk ALL= ALL,!/bin/su,!/bin/bash

하지만(!!!), 귀하의 질문에 대한 의견에 명시된 바와 같이, 이것이 사용자의 실행을 거부하더라도 sudo -s또는 sudo -i,실제로 그/그녀가 루트로서 대화형 쉘을 얻는 것을 막지는 않습니다.

에서 man sudoers:

'!'에 대한 제한 연산자

ALL에서 "빼기"를 위해 "!" 연산자를 사용하는 것은 일반적으로 효과가 없습니다. 사용자는 원하는 명령을 다른 이름으로 복사한 다음 해당 명령을 실행하여 이 문제를 쉽게 피할 수 있습니다. 예를 들어:

bill    ALL = ALL, !SU, !SHELLS

Bill이 SU 또는 SHELLS에 나열된 명령을 실행하는 것을 실제로 막을 수 있는 방법은 없습니다. 왜냐하면 그는 단순히 명령을 다른 이름으로 복사하거나 편집기 또는 다른 프로그램의 셸 이스케이프를 사용할 수 있기 때문입니다. 따라서 그러한 제한은 기껏해야 권고 사항으로 간주되어야 합니다(그리고 정책에 의해 강화되어야 함).

일반적으로 사용자가 sudo ALL을 사용하는 경우 사용자 사양의 "!" 요소에 관계없이 루트 셸을 제공하는 자체 프로그램을 만드는 것(또는 자체적인 셸 복사본을 만드는 것)을 막을 수 없습니다.

관련 정보