3.9. sudo 및 sysadm_r 역할을 사용하여 관리자 제한
관리 권한이 있는 특정 사용자를 staff_u
SELinux 사용자에게 매핑하고 사용자가 sysadm_r
SELinux 관리자 역할을 얻을 수 있도록 sudo
를 구성할 수 있습니다. 이 역할을 사용하면 사용자가 SELinux 거부 없이 관리 작업을 수행할 수 있습니다. 사용자가 로그인하면 세션이 staff_u:staff_r:staff_t
SELinux 컨텍스트에서 실행되지만 사용자가 sudo
를 사용하여 명령을 입력하면 세션이 staff_u:sysadm_r:sysadm_t
컨텍스트로 변경됩니다.
기본적으로 관리 권한이 있는 사용자를 포함하여 Red Hat Enterprise Linux의 모든 Linux 사용자는 제한되지 않은 SELinux 사용자 unconfined_u
에 매핑됩니다. SELinux 제한 사용자에게 사용자를 할당하여 시스템의 보안을 개선할 수 있습니다. 이 명령은 V-71971 보안 기술 구현 가이드를 준수하는 데 유용합니다.
사전 요구 사항
-
root
사용자는 제한되지 않은 상태로 실행됩니다. 이는 Red Hat Enterprise Linux 기본값입니다.
절차
새 사용자 또는 기존 사용자를
staff_u
SELinux 사용자에게 매핑합니다.새 사용자를 매핑하려면 새 사용자를
wheel
사용자 그룹에 추가하고 사용자를staff_u
SELinux 사용자에게 매핑합니다.# adduser -G wheel -Z staff_u <example_user>
기존 사용자를 매핑하려면 사용자를
wheel
사용자 그룹에 추가하고 사용자를staff_u
SELinux 사용자에게 매핑합니다.# usermod -G wheel -Z staff_u <example_user>
사용자 홈 디렉터리의 컨텍스트를 복원합니다.
# restorecon -R -F -v /home/<example_user>
SELinux 관리자 역할을 얻을 수 있도록
<example_user>
하려면/etc/sudoers.d/
디렉터리에 새 파일을 만듭니다. 예를 들면 다음과 같습니다.# visudo -f /etc/sudoers.d/<example_user>
새 파일에 다음 행을 추가합니다.
<example_user> ALL=(ALL) TYPE=sysadm_t ROLE=sysadm_r ALL
검증
staff_u
SELinux 사용자에게 매핑되었는지<example_user>
확인합니다.# semanage login -l | grep <example_user> <example_user> staff_u s0-s0:c0.c1023 *
예를 들어 SSH를 사용하여 로
<example_user>
로그인하고root
사용자로 전환합니다.[<example_user>@localhost ~]$ sudo -i [sudo] password for <example_user>:
루트
보안 컨텍스트를 표시합니다.# id -Z staff_u:sysadm_r:sysadm_t:s0-s0:c0.c1023
예를 들어
sshd
서비스를 다시 시작하는 등 관리 작업을 시도합니다.# systemctl restart sshd
출력이 없으면 명령이 성공적으로 완료되었습니다.
명령이 성공적으로 완료되지 않으면 다음 메시지가 출력됩니다.
Failed to restart sshd.service: Access denied See system logs and 'systemctl status sshd.service' for details.