권한이 평가되고 올바르게 적용되지 않는 이유에 영향을 주는 요소에는 여러 가지가 있습니다. 이 절차는 사용자, 역할 또는 프로세스에서 지정된 권한을 사용할 수 없는 이유를 디버그하는 데 도움이 됩니다. 일부 단계는 지정된 권한 검색 순서를 기반으로 합니다.
시작하기 전에
root 역할을 맡아야 합니다. 자세한 내용은 지정된 관리 권한 사용을 참조하십시오.
# svccfg -s name-service/switch svc:/system/name-service/switch> listprop config config application config/value_authorization astring solaris.smf.value.name-service.switch config/default astring files ldap config/host astring "files dns mdns ldap" config/netgroup astring ldap config/printer astring "user files"
이 출력에서 명시적으로 언급되지 않은 모든 서비스는 기본 files ldap의 값을 상속합니다. 따라서 passwd 및 관련 속성 데이터베이스인 user_attr, auth_attr 및 prof_attr이 파일에서 먼저 검색된 후 LDAP에서 검색됩니다.
nscd 데몬의 TTL(time-to-live) 간격이 길어질 수 있습니다. 데몬을 다시 시작하여 이름 지정 서비스를 현재 데이터로 업데이트합니다.
# svcadm restart name-service/cache
예를 들어, 다음 명령은 사용자 jdoe에 대해 지정된 권한과 지정된 위치를 나타냅니다. jdoe가 기본값을 사용 중임을 나타내는 출력은 없습니다.
% userattr -v access_times jdoe % userattr -v access_tz jdoe % userattr -v auth_profiles jdoe % userattr -v defaultpriv jdoe % userattr -v limitpriv jdoe % userattr -v idlecmd jdoe % userattr -v idletime jdoe % userattr -v lock_after_retries jdoe % userattr -v pam_policy jdoe % userattr -v auths jdoe Output indicates authorizations from rights profiles Basic Solaris User :solaris.mail.mailq,solaris.network.autoconf.read, solaris.admin.wusb.read Console User :solaris.system.shutdown,solaris.device.cdrw, solaris.device.mount.removable,solaris.smf.manage.vbiosd,solaris.smf.value.vbiosd % userattr -v audit_flags jdoe user_attr: fw:no Output indicates jdoe is individually assigned audit flags # userattr -v profiles jdoe user_attr: Audit Review,Stop Output indicates two assigned rights profiles # userattr roles jdoe user_attr : cryptomgt,infosec Output indicates two assigned roles
출력 결과는 jdoe에게 감사 플래그, 두 개의 권한 프로파일 및 두 개의 역할이 직접 지정되었음을 보여줍니다. 지정된 권한 부여는 policy.conf 파일의 기본 권한 프로파일에서 가져옵니다.
jdoe에 감사 플래그가 직접 지정되었으므로 권한 프로파일의 감사 플래그 값은 사용되지 않습니다.
권한 프로파일은 순서대로 먼저 Audit Review 권한 프로파일이 평가된 후 Stop 프로파일이 평가됩니다.
다른 모든 권한은 cryptomgt 및 infosec 역할에서 jdoe에 지정됩니다. 이러한 권한을 보려면 jdoe가 각 역할을 맡은 후 권한을 나열해야 합니다.
사용자에게 직접 권한이 지정되지 않은 경우 다음 검사를 계속합니다.
권한 부여가 사용자에 대해 누적되므로 권한 부여 지정의 소스는 중요하지 않습니다. 하지만 철자가 잘못된 권한 부여는 자동으로 실패합니다.
예를 들어, 일부 명령이 성공하려면 euid=0이 아니라 uid=0이 필요합니다. 명령이나 해당 옵션에 권한 부여가 필요한지 확인하는 명령은 매뉴얼 페이지를 참조하십시오.
목록에서 가장 빠른 권한 프로파일의 속성 값이 커널의 값입니다. 이 값이 올바르지 않으면 해당 권한 프로파일의 값을 변경하거나 프로파일을 올바른 순서로 다시 지정합니다. 지정된 권한 순서를 조정하는 방법을 참조하십시오.
권한 있는 명령의 경우 defaultpriv 또는 limitpriv 키워드에서 권한이 제거되지 않았는지 확인합니다.
인증된 권한 프로파일에 대해 수행한 것과 동일한 검사를 따르십시오.
권한이 역할에 지정된 경우 권한을 얻으려면 사용자가 역할을 맡아야 합니다.
프로파일이 존재하면 사용합니다. 인증된 권한 프로파일이나 일반 권한 프로파일로 사용자에게 지정합니다. 성공하려면 이 권한 부여가 필요한 명령이 포함된 다른 권한 프로파일보다 이전 순서를 프로파일에 지정합니다.
권한(privilege)이 필요한 명령에 권한(privilege)을 지정하고, 필요한 권한 부여를 추가하고, 명령 및 권한 부여를 권한(right) 프로파일에 배치하고, 프로파일을 사용자에게 지정합니다.
관리 명령은 프로파일 셸에서 실행해야 합니다. Example 7–1에서는 프로파일 셸이 있는지 테스트하는 방법을 보여줍니다.
사용자 오류 가능성을 줄이려면 다음을 시도할 수 있습니다.
프로파일 셸을 사용자 로그인 셸로 지정합니다.
사용자에게 모든 권한 있는 명령 앞에 pfexec 명령을 배치하도록 지시합니다.
사용자에게 프로파일 셸에서 관리 명령을 실행하도록 미리 알립니다.
사이트에서 역할을 사용 중인 경우 사용자에게 관리 명령을 실행하기 전에 역할을 맡도록 미리 알립니다. 사용자가 아니라 역할로서 성공한 명령 실행의 예는 Example 7–3을 참조하십시오.
권한 있는 명령이 작동하지 않는 경우 사용자가 PRIV_PFEXEC 플래그를 테스트한 후 명령을 실행합니다. 오류 메시지에 문제가 권한 문제라고 표시되지 않을 수도 있습니다.
% praudit 20120814200247.20120912213421.example-system praudit: Cannot associate stdin with 20120814200247.20120912213421.example-system: Permission denied % ppriv $$ 107219: bash flags = <none> ... % pfbash # ppriv $$ 1072232: bash flags = PRIV_PFEXEC ... # praudit 20120814200247.20120912213421.example-system /** Command succeeds **/예 7-2 역할의 권한 있는 명령 확인
이 예에서는 사용자가 지정된 역할을 맡고 권한 프로파일 중 하나에 포함된 권한을 나열합니다. 명령을 강조하기 위해 권한이 잘렸습니다.
% roles devadmin % su - devadmin Password: xxxxxxxx # profiles -l Device Security ... profiles=Service Configuration /usr/sbin/add_drv uid=0 /usr/sbin/devfsadm uid=0 privs=sys_devices,sys_config, sys_resource,file_owner, file_chown,file_chown_self, file_dac_read /usr/sbin/eeprom uid=0 /usr/bin/kbd /usr/sbin/list_devices euid=0 /usr/sbin/rem_drv uid=0 /usr/sbin/strace euid=0 /usr/sbin/update_drv uid=0 /usr/sbin/add_allocatable euid=0 /usr/sbin/remove_allocatable euid=0 Service Configuration /usr/sbin/svcadm /usr/sbin/svccfg예 7-3 역할의 권한 있는 명령 실행
다음 예에서는 admin 역할이 useful.script 파일에 대한 권한을 변경할 수 있습니다.
% whoami jdoe % ls -l useful.script -rwxr-xr-- 1 elsee eng 262 Apr 2 10:52 useful.script % chgrp admin useful.script chgrp: useful.script: Not owner % su - admin Password: xxxxxxxx # chgrp admin useful.script # chown admin useful.script # ls -l useful.script -rwxr-xr-- 1 admin admin 262 Apr 2 10:53 useful.script