웹사이트 검색

Sudo 사용자에 대해 'su' 액세스를 비활성화하는 방법


su 명령은 다른 사용자 및 그룹으로 명령을 실행할 수 있는 특수 Linux 명령입니다. 또한 루트 계정(인수 없이 실행하는 경우)이나 다른 지정된 사용자 계정으로 전환할 수도 있습니다.

기본적으로 모든 사용자는 su 명령에 액세스할 수 있습니다. 그러나 시스템 관리자는 아래 설명된 대로 sudoers 파일을 사용하여 사용자 또는 사용자 그룹에 대한 su 액세스를 비활성화할 수 있습니다.

sudoers 파일은 사용자의 sudo 권한을 결정하는 sudo 보안 정책 플러그인을 구동합니다. sudo 명령을 사용하면 사용자는 다른 사용자(기본적으로 루트 사용자)의 보안 권한으로 프로그램을 실행할 수 있습니다.

다른 사용자 계정으로 전환하려면 사용자는 표시된 대로 현재 로그인 세션에서 su 명령을 실행할 수 있습니다. 이 예에서 aaronk 사용자는 testuser 계정으로 전환합니다. aaronk 사용자에게 testuser 계정의 비밀번호를 입력하라는 메시지가 표시됩니다.

su testuser

루트 계정으로 전환하려면 사용자에게 루트 비밀번호가 있거나 sudo 명령을 호출할 수 있는 권한이 있어야 합니다. 즉, 사용자가 sudoers 파일에 존재해야 합니다. 이 예에서는 aaronk 사용자(sudo 사용자)가 루트 계정으로 전환합니다.

sudo를 호출한 후 aaronk 사용자에게 자신의 비밀번호를 입력하라는 메시지가 표시됩니다. 비밀번호가 유효할 경우 사용자에게 루트로 대화형 셸에 대한 액세스 권한이 부여됩니다.

sudo su

Sudo 사용자에 대한 su 액세스 비활성화

sudo 사용자(예: 위의 aaronk 사용자)에 대한 su 액세스를 비활성화하려면 먼저 /etc/sudoers에 있는 원본 sudoers 파일을 백업하세요. 다음과 같이:

sudo cp /etc/sudoers /etc/sudoers.bak

그런 다음 다음 명령을 사용하여 sudoers 파일을 엽니다. sudoers 파일을 직접 편집하는 것은 권장되지 않습니다. 항상 visudo 명령을 사용하세요.

 
sudo visudo

aliases 명령 섹션에서 다음 별칭을 만듭니다.

Cmnd_Alias DISABLE_SU = /bin/su

그런 다음 파일 끝에 다음 줄을 추가하고 사용자 이름 aaronksu 액세스를 비활성화하려는 사용자로 바꾸세요.

aaronk ALL=(ALL) NOPASSWD: ALL, !DISABLE_SU

파일을 저장하고 닫습니다.

그런 다음 테스트를 통해 설정이 다음과 같이 작동하는지 확인합니다. 시스템은 다음과 같은 오류 메시지를 반환해야 합니다. "죄송합니다. aaronk 사용자는 tecmint에서 루트로 '/bin/su'를 실행할 수 없습니다. ".

sudo su

Sudo 사용자 그룹에 대한 su 액세스 비활성화

sudo 사용자 그룹에 대해 su 액세스를 비활성화할 수도 있습니다. 예를 들어 admin 그룹의 모든 사용자에 대해 su 액세스를 비활성화하려면 다음 줄을 수정합니다.

%admin ALL=(ALL) ALL

이에:

%admin ALL=(ALL) ALL, !DISABLE_SU

파일을 저장하고 닫습니다.

admin 그룹에 사용자를 추가하려면 usermod 명령을 실행하십시오(사용자 이름을 실제 사용자로 바꾸십시오).

sudo usermod -aG  admin  username

su, sudosudoers에 대한 자세한 내용은 해당 매뉴얼 페이지를 확인하세요.

man su
man sudo
man sudoers