20.5. IdM 클라이언트에서 서비스 계정으로 명령을 실행하는 CLI에 sudo 규칙 생성
IdM에서는 RunAs 별칭 을 사용하여 sudo
규칙을 구성하여 다른 사용자 또는 그룹으로 sudo
명령을 실행할 수 있습니다. 예를 들어 데이터베이스 애플리케이션을 호스팅하는 IdM 클라이언트가 있을 수 있으며 해당 애플리케이션에 해당하는 로컬 서비스 계정으로 명령을 실행해야 합니다.
이 예제를 사용하여 run_third-party-app_report
라는 명령 줄에 sudo
규칙을 생성하여 idmclient
호스트의 thirdpartyapp
서비스 계정으로 idm_user
계정에서 /opt/ third-party-app/bin/report
명령을 실행할 수 있습니다.
사전 요구 사항
- IdM 관리자로 로그인되어 있습니다.
-
사용자 암호를 생성하여 IdM에서
idm_user
에 대한 사용자 계정을 생성하고 계정을 잠금 해제했습니다. CLI를 사용하여 새 IdM 사용자를 추가하는 방법에 대한 자세한 내용은 명령줄을 사용하여 사용자 추가를 참조하십시오. -
idmclient
호스트에 로컬idm_user
계정이 없습니다.idm_user
사용자는 로컬/etc/passwd
파일에 나열되어 있지 않습니다. -
third-party-app
이라는 사용자 지정 애플리케이션이idmclient
호스트에 설치되어 있습니다. -
third-party-app
애플리케이션에 대한report
명령은/opt/ third-party-app/bin/report
디렉터리에 설치됩니다. -
third-party-app
애플리케이션에 대한 명령을 실행하기 위해thirdpartyapp
이라는 로컬 서비스 계정을 생성했습니다.
절차
IdM
관리자로
Kerberos 티켓을 검색합니다.[root@idmclient ~]# kinit admin
sudo
명령의 IdM 데이터베이스에/opt/third-party-app/bin/report
명령을 추가합니다.[root@idmclient ~]# ipa sudocmd-add /opt/third-party-app/bin/report ---------------------------------------------------- Added Sudo Command "/opt/third-party-app/bin/report" ---------------------------------------------------- Sudo Command: /opt/third-party-app/bin/report
이름이
run_third-party-app_report
인sudo
규칙을 만듭니다.[root@idmclient ~]# ipa sudorule-add run_third-party-app_report -------------------------------------------- Added Sudo Rule "run_third-party-app_report" -------------------------------------------- Rule name: run_third-party-app_report Enabled: TRUE
user
= <user> 옵션을 사용하여
지정합니다.sudorule-add-runasuser
명령에 대해 RunAs 사용자를[root@idmclient ~]# ipa sudorule-add-runasuser run_third-party-app_report --users=thirdpartyapp Rule name: run_third-party-app_report Enabled: TRUE RunAs External User: thirdpartyapp ------------------------- Number of members added 1 -------------------------
로컬 서비스 계정 또는 Active Directory 사용자와 같은 IdM에 대해
--groups=*
옵션으로 지정된 사용자(또는 그룹)는 외부일 수 있습니다. 그룹 이름에 대해%
접두사를 추가하지 마십시오./opt/ bad-party-app/bin/report
명령을run_knative-party-app_report
규칙에 추가합니다.[root@idmclient ~]# ipa sudorule-add-allow-command run_third-party-app_report --sudocmds '/opt/third-party-app/bin/report' Rule name: run_third-party-app_report Enabled: TRUE Sudo Allow Commands: /opt/third-party-app/bin/report RunAs External User: thirdpartyapp ------------------------- Number of members added 1 -------------------------
IdM
idmclient
호스트에run_third-party-app_report
규칙을 적용합니다.[root@idmclient ~]# ipa sudorule-add-host run_third-party-app_report --hosts idmclient.idm.example.com Rule name: run_third-party-app_report Enabled: TRUE Hosts: idmclient.idm.example.com Sudo Allow Commands: /opt/third-party-app/bin/report RunAs External User: thirdpartyapp ------------------------- Number of members added 1 -------------------------
idm_user
계정을run_third-party-app_report
규칙에 추가합니다.[root@idmclient ~]# ipa sudorule-add-user run_third-party-app_report --users idm_user Rule name: run_third-party-app_report Enabled: TRUE Users: idm_user Hosts: idmclient.idm.example.com Sudo Allow Commands: /opt/third-party-app/bin/report RunAs External User: thirdpartyapp ------------------------- Number of members added 1
서버에서 클라이언트로 변경 사항을 전파하는 데 몇 분이 걸릴 수 있습니다.
검증
-
idmclient
호스트에idm_user
계정으로 로그인합니다. 새 sudo 규칙을 테스트합니다.
idm_user
계정이 수행할 수 있는sudo
규칙을 표시합니다.[idm_user@idmclient ~]$ sudo -l Matching Defaults entries for idm_user@idm.example.com on idmclient: !visiblepw, always_set_home, match_group_by_gid, always_query_group_plugin, env_reset, env_keep="COLORS DISPLAY HOSTNAME HISTSIZE KDEDIR LS_COLORS", env_keep+="MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE", env_keep+="LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES", env_keep+="LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE", env_keep+="LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY KRB5CCNAME", secure_path=/sbin\:/bin\:/usr/sbin\:/usr/bin User idm_user@idm.example.com may run the following commands on idmclient: (thirdpartyapp) /opt/third-party-app/bin/report
report
명령을thirdpartyapp
서비스 계정으로 실행합니다.[idm_user@idmclient ~]$ sudo -u thirdpartyapp /opt/third-party-app/bin/report [sudo] password for idm_user@idm.example.com: Executing report... Report successful.