Oracle® Solaris 11.2의 사용자 및 프로세스 보안

인쇄 보기 종료

업데이트 날짜: 2014년 7월
 
 

사용자 권한 확장

예 3-10  DHCP를 관리할 수 있는 사용자 만들기

보안 관리자는 DHCP를 관리할 수 있는 사용자를 만듭니다.

# useradd -P "DHCP Management" -s /usr/bin/pfbash -S ldap  jdoe

사용자에게 로그인 셸로 pfbash가 지정되었기 때문에 DHCP Management 관리 프로파일의 권한은 항상 평가되므로 DHCP 관리 명령이 성공합니다.

예 3-11  사용자가 DHCP를 관리하기 전에 암호를 입력하도록 요구

이 예에서 보안 관리자는 jdoe가 DHCP를 관리하기 전에 암호를 제공하도록 요구합니다.

# usermod -K auth_profiles="DHCP Management" profiles="Edit Administrative Files" jdoe

jdoe가 DHCP 명령을 입력하면 암호 프롬프트가 나타납니다. jdoe를 인증한 후 DHCP 명령이 완료됩니다. 검색 순서에서 인증된 권한 프로파일이 일반 프로파일보다 먼저 처리됩니다.

jdoe% dhcpconfig -R 120.30.33.7,120.30.42.132
Password: xxxxxxxx  
/** Command completes **/
예 3-12  사용자에 직접 권한 부여 지정

이 예에서 보안 관리자가 화면 밝기를 조절할 수 있는 로컬 사용자를 만듭니다.

# useradd -c "Screened KDoe, local" -s /usr/bin/pfbash \
-A solaris.system.power.brightness  kdoe

이 권한 부여는 사용자의 기존 권한 부여 지정에 추가됩니다.

예 3-13  역할에 권한 부여 지정

이 예에서 보안 관리자는 DNS 서버 서비스에 대한 구성 정보를 변경할 수 있는 역할을 만듭니다.

# roleadd -c "DNS administrator role" -m -A solaris.smf.manage.bind" dnsadmin
예 3-14  사용자에 직접 권한 지정

이 예에서는 보안 관리자가 시스템 시간에 영향을 미치는 매우 특정한 권한으로 사용자 kdoe를 신뢰합니다. 역할에 권한을 지정하려면 Example 3–8을 참조하십시오.

# usermod -K defaultpriv='basic,proc_clock_highres' kdoe

defaultpriv 키워드의 값이 기존 값을 대체합니다. 따라서 basic 권한을 보유할 사용자에 대해 basic 값이 지정됩니다. 기본 구성에서 모든 사용자는 기본 권한을 갖습니다. 기본 권한 목록은 권한 목록을 참조하십시오.

사용자는 추가된 권한 및 해당 정의를 볼 수 있습니다.

kdoe% ppriv -v $$
1800:   pfksh
flags = <none>
        E: file_link_any,…,proc_clock_highres,sys_ib_info
        I: file_link_any,…,proc_clock_highres,sys_ib_info
        P: file_link_any,…,proc_clock_highres,sys_ib_info
        L: cpc_cpu,dtrace_kernel,dtrace_proc,dtrace_user,...,win_upgrade_sl
% ppriv -vl proc_clock_highres
        Allows a process to use high resolution timers.
예 3-15  역할의 기본 권한에 추가

다음 예에서는 날짜 및 시간 프로그램을 처리하기 위해 realtime 역할에 직접 권한이 지정되었습니다. Example 3–8에서는 proc_clock_highresrealtime에 지정했습니다.

# rolemod -K defaultpriv='basic,sys_time' realtime
% su - realtime
Password: xxxxxxxx
# ppriv -v $$
1600:   pfksh
flags = <none>
        E: file_link_any,...,proc_clock_highres,sys_ib_info,sys_time
        I: file_link_any,...,proc_clock_highres,sys_ib_info,sys_time
        P: file_link_any,...,proc_clock_highres,sys_ib_info,sys_time
        L: cpc_cpu,dtrace_kernel,dtrace_proc,dtrace_user,...,sys_time
예 3-16  사용자가 역할 암호에 고유한 암호를 사용할 수 있도록 설정

기본적으로 사용자가 역할을 맡으려면 역할의 암호를 입력해야 합니다. 관리자는 사용자 암호를 요구하여 Linux 환경에서 역할을 맡듯이 Oracle Solaris에서 역할을 맡을 수 있게 합니다.

# rolemod -K roleauth=user auditrev

이 역할을 맡으려면 지정된 사용자가 역할을 위해 특별히 만든 암호가 아니라 고유한 암호를 사용할 수 있습니다.

사용자에게 다른 역할이 지정된 경우 사용자 암호는 해당 역할에도 인증합니다.

예 3-17  사용자가 역할 암호에 고유한 암호를 사용할 수 있도록 권한 프로파일 수정
# profiles -p "Local System Administrator"
profiles:Local System Administrator> set roleauth="user"
profiles:Local System Administrator> end
profiles:Local System Administrator> exit

Local System Administrator 권한 프로파일에 지정된 사용자가 역할을 맡을 때 암호를 묻는 메시지가 나타납니다. 다음 시퀀스에서 역할 이름은 admin입니다.

% su - admin
Password: xxxxxxxx
# /** You are now in a profile shell with administrative rights**/
예 3-18  LDAP 저장소에서 역할에 대한 roleauth의 값 변경

이 예에서 root 역할을 통해 secadmin 역할을 맡을 수 있는 모든 사용자가 역할을 맡을 때 고유의 암호를 사용하도록 합니다. 이 기능은 LDAP 서버에서 관리되는 모든 시스템에 대해 해당 사용자에게 부여됩니다.

# rolemod -S ldap -K roleauth=user secadmin
예 3-19  신뢰할 수 있는 사용자가 확장 계정 파일을 읽을 수 있도록 설정

신뢰할 수 있는 사용자 또는 사용자 그룹이 root 계정에 의해 소유된 파일을 읽을 수 있도록 설정할 수 있습니다. 이 권한은 root 소유 파일이 포함된 관리 응용 프로그램을 실행할 수 있는 사용자에게 유용할 수 있습니다. 이 예에서는 Extended Accounting Net Management 권한 프로파일에 Perl 스크립트를 하나 이상 추가합니다.

root 역할을 맡은 후 관리자는 이름이 network로 시작하는 계정 파일을 읽을 수 있는 기능을 추가하는 관리 프로파일을 만듭니다.

다음 프로파일은 확장 권한 정책을 사용하여 /var/adm/exacct/network* 파일만 액세스할 수 있는 file_dac_read 권한을 스크립트에 부여합니다. 이 프로파일은 기존 Extended Accounting Net Management 관리 프로파일을 보충 프로파일로 추가합니다.

# profiles -p "Extended Accounting Perl Scripts"
profiles:Extended Accounting Perl Scripts > 
set desc="Perl Scripts for Extended Accounting"
... Scripts> add profiles="Extended Accounting Net Management"
... Scripts> add cmd=/usr/local/bin/exacctdisp.pl
... Scripts:exacctdisp.pl> set privs={file_dac_read}:/var/adm/exacct/network*
... Scripts:exacctdisp.pl> end
... Scripts> commit
... Scripts> exit

샘플 스크립트는 Oracle Solaris 11.2의 리소스 관리 의 libexacct에 대한 Perl 인터페이스 사용을 참조하십시오.

권한 프로파일 항목에서 오타 오류, 생략, 반복 등의 오류를 검토한 후 관리자는 역할이나 사용자에게 Extended Accounting Perl Scripts 권한 프로파일을 지정합니다.

# profiles -p "Extended Accounting Perl Scripts" info
Found profile in files repository.
name=Extended Accounting Perl Scripts
desc=Perl Scripts for Extended Accounting
profiles=Extended Accounting Net Management
cmd=/usr/local/bin/exacctdisp.pl
privs={file_dac_read}:/var/adm/exacct/network*
# rolemod -K profiles+="Extended Accounting Perl Scripts" rolename
# usermod -K profiles+="Extended Accounting Perl Scripts" username
예 3-20  root 계정이 root 소유 파일을 읽을 수 있도록 설정

이 예에서 관리자는 확장 권한(privilege) 정책을 사용하여 권한이 부여된 사용자와 역할이 root가 소유한 /var/adm/sulog 파일을 읽을 수 있도록 설정하는 권한(right) 프로파일을 만듭니다. 관리자는 사용자가 파일을 읽는 데 사용할 수 있는 명령을 추가합니다. head 명령 등 목록에 없는 명령은 사용할 수 없습니다.

# profiles -p "Read sulog File"
profiles:Read sulog File 
set desc="Read sulog File"
... File> add profiles="Read Log Files"
... File> add cmd=/usr/bin/cat
... File:cat> set privs={file_dac_read}:/var/adm/sulog
... File:cat> end
... File> add cmd=/usr/bin/less
... File:less> set privs={file_dac_read}:/var/adm/sulog
... File:less> end
... File> add cmd=/usr/bin/more
... File:more> set privs={file_dac_read}:/var/adm/sulog
... File:more> end
... File> add cmd=/usr/bin/page
... File:page> set privs={file_dac_read}:/var/adm/sulog
... File:page> end
... File> add cmd=/usr/bin/tail
... File:tail> set privs={file_dac_read}:/var/adm/sulog
... File:tail> end
... File> add cmd=/usr/bin/view
... File:head> set privs={file_dac_read}:/var/adm/sulog
... File:head> end
... File> commit
... File> exit

view 명령을 통해 사용자는 파일을 읽을 수 있지만 편집할 수는 없습니다.