JavaScript is required to for searching.
탐색 링크 건너뛰기
인쇄 보기 종료
Oracle Solaris 관리: 보안 서비스     Oracle Solaris 11 Information Library (한국어)
search filter icon
search icon

문서 정보

머리말

제1부보안 개요

1.  보안 서비스(개요)

제2부시스템, 파일 및 장치 보안

2.  시스템 보안 관리(개요)

3.  시스템에 대한 액세스 제어(작업)

4.  바이러스 검사 서비스(작업)

5.  장치에 대한 액세스 제어(작업)

6.  기본 감사 보고 도구 사용(작업)

7.  파일에 대한 액세스 제어(작업)

제3부역할, 권한 프로파일 및 권한

8.  역할 및 권한 사용(개요)

9.  역할 기반 액세스 제어 사용(작업)

RBAC 사용(작업)

RBAC 기본값 보기 및 사용(작업)

RBAC 기본값 보기 및 사용(작업 맵)

모든 정의된 보안 속성을 보는 방법

할당된 권한을 보는 방법

역할을 맡는 방법

관리 권한을 얻는 방법

사이트에 대해 RBAC 사용자 정의(작업)

RBAC 초기 구성(작업 맵)

RBAC 구현을 계획하는 방법

역할을 만드는 방법

역할을 할당하는 방법

역할을 감사하는 방법

감사 프로파일을 만들거나 변경하는 방법

RBAC 등록 정보를 레거시 응용 프로그램에 추가하는 방법

RBAC 및 권한 할당 문제를 해결하는 방법

RBAC 관리(작업)

RBAC 관리(작업 맵)

역할의 암호를 변경하는 방법

역할의 보안 속성을 변경하는 방법

사용자의 RBAC 등록 정보를 변경하는 방법

사용자를 데스크탑 응용 프로그램으로 제한하는 방법

관리자를 명시적으로 할당된 권한으로 제한하는 방법

사용자가 고유의 암호를 사용하여 역할을 맡도록 설정하는 방법

root 역할을 사용자로 변경하는 방법

권한 사용(작업)

권한 확인(작업 맵)

시스템의 권한을 나열하는 방법

직접 할당된 권한을 확인하는 방법

실행할 수 있는 권한 있는 명령을 확인하는 방법

권한 관리(작업 맵)

프로세스의 권한을 확인하는 방법

프로그램에 필요한 권한을 확인하는 방법

권한 있는 명령으로 셸 스크립트를 실행하는 방법

10.  Oracle Solaris의 보안 속성(참조)

제4부암호화 서비스

11.  암호화 프레임워크(개요)

12.  암호화 프레임워크(작업)

13.  키 관리 프레임워크

제5부인증 서비스 및 보안 통신

14.  네트워크 서비스 인증(작업)

15.  PAM 사용

16.  SASL 사용

17.  Secure Shell 사용(작업)

18.  Secure Shell(참조)

제6부Kerberos 서비스

19.  Kerberos 서비스 소개

20.  Kerberos 서비스 계획

21.  Kerberos 서비스 구성(작업)

22.  Kerberos 오류 메시지 및 문제 해결

23.  Kerberos 주체 및 정책 관리(작업)

24.  Kerberos 응용 프로그램 사용(작업)

25.  Kerberos 서비스(참조)

제7부Oracle Solaris에서 감사

26.  감사(개요)

27.  감사 계획

28.  감사 관리(작업)

29.  감사(참조)

용어집

색인

권한 사용(작업)

다음 작업 맵은 시스템에서 권한을 관리하고 사용하기 위한 단계별 지침을 가리킵니다.

작업
설명
수행 방법
명령을 실행할 때 권한을 사용합니다.
내게 할당된 권한과 시스템에서 사용 가능한 권한을 나열합니다.
사이트에서 권한을 사용합니다.
권한을 할당, 제거, 추가하고 권한 사용을 디버그합니다.

권한 확인(작업 맵)

사용자가 권한에 직접 할당된 경우 권한은 모든 셸에서 유효합니다. 사용자에게 직접 권한이 지정되지 않은 경우 사용자가 프로파일 셸을 열어야 합니다. 예를 들어 지정된 권한을 가진 명령이 사용자의 권한 프로파일 목록에 있는 권한 프로파일에 있는 경우 사용자가 프로파일 셸에서 명령을 실행해야 합니다.

다음 작업 맵은 내게 할당된 권한을 보기 위한 절차를 가리킵니다

작업
설명
수행 방법
정의된 권한을 봅니다.
Oracle Solaris 권한 및 해당 정의를 나열합니다.
임의 셸에서 사용자로 권한을 봅니다.
직접 할당된 권한을 보여줍니다. 모든 프로세스가 이러한 권한으로 실행됩니다.
프로파일 셸에서 권한 있는 명령을 봅니다.
사용자가 할당된 권한 프로파일을 통해 실행할 수 있는 권한 있는 명령을 보여줍니다.
임의 셸에서 역할로 권한을 봅니다.
역할이 할당된 권한 프로파일을 통해 실행할 수 있는 권한 있는 명령을 보여줍니다.

시스템의 권한을 나열하는 방법

다음 절차는 권한 이름 및 정의를 보는 방법을 보여줍니다.

직접 할당된 권한을 확인하는 방법

다음 절차는 권한이 직접 할당되었는지 확인하는 방법을 보여줍니다.


주의

주의 - 직접 할당된 권한의 부적절한 사용은 의도하지 않은 보안 침해를 일으킬 수 있습니다. 설명은 보안 속성을 직접 지정할 때 보안 고려 사항을 참조하십시오.


  1. 프로세스가 사용할 수 있는 권한을 나열합니다.

    절차는 프로세스의 권한을 확인하는 방법을 참조하십시오.

  2. 동작을 호출하고 임의 셸에서 명령을 실행합니다.

    유효 세트에 나열된 권한은 세션 전체 동안 유효합니다. 기본 세트와 더불어 권한이 직접 할당된 경우 해당 권한이 유효 세트에 나열됩니다.

예 9-30 사용자 - 직접 지정된 권한 확인

사용자에게 직접 권한이 지정된 경우 해당 사용자의 기본 세트에는 원래 제공되는 기본 세트보다 더 많은 권한이 포함되어 있습니다. 이 예에서 사용자는 항상 proc_clock_highres 권한에 액세스할 수 있습니다.

% /usr/bin/whoami
jdoe
% ppriv -v $$
1800:   pfksh
flags = <none>
        E: file_link_any,…,proc_clock_highres,proc_session
        I: file_link_any,…,proc_clock_highres,proc_session
        P: file_link_any,…,proc_clock_highres,proc_session
        L: cpc_cpu,dtrace_kernel,dtrace_proc,dtrace_user,…,sys_time
% ppriv -vl proc_clock_highres
        Allows a process to use high resolution timers.

예 9-31 역할 - 직접 지정된 권한 확인

역할은 관리 셸 또는 프로파일 셸을 사용합니다. 역할을 맡은 사용자는 역할의 셸을 사용하여 역할에 직접 할당된 권한을 나열할 수 있습니다. 다음 예에서 realtime 역할은 날짜 및 시간 프로그램을 처리하기 위해 권한이 직접 할당되었습니다.

% su - realtime
Password: <Type realtime password>
$ /usr/bin/whoami
realtime
$ ppriv -v $$
1600:   pfksh
flags = <none>
        E: file_link_any,…,proc_clock_highres,proc_session,sys_time
        I: file_link_any,…,proc_clock_highres,proc_session,sys_time
        P: file_link_any,…,proc_clock_highres,proc_session,sys_time
        L: cpc_cpu,dtrace_kernel,dtrace_proc,dtrace_user,…,sys_time

실행할 수 있는 권한 있는 명령을 확인하는 방법

사용자가 직접 할당된 권한이 아닌 경우 권한 프로파일을 통해 권한 있는 명령에 액세스를 얻습니다. 권한 프로파일의 명령은 프로파일 셸에서 실행해야 합니다.

  1. 할당된 권한 프로파일을 확인합니다.
    % profiles
    Audit Review
    Console User
    Suspend To RAM
    Suspend To Disk
    Brightness
    CPU Power Management
    Network Autoconf
    Desktop Print Management
    Network Wifi Info
    Desktop Removable Media User
    Basic Solaris User
    All
  2. Audit Review 프로파일에서 권한을 확인합니다.
    profiles -l
    Audit Review
    
      solaris.audit.read
      
      /usr/sbin/auditreduce  euid=0
      /usr/sbin/auditstat    euid=0
      /usr/sbin/praudit      euid=0

    Audit Review 권한 프로파일을 통해 auditreduce, auditstat, praudit 명령을 유효 UID 0으로 실행하고 solaris.audit.read 권한 부여를 할당할 수 있습니다.

예 9-32 역할의 권한 있는 명령 확인

이 예에서 사용자가 할당된 역할을 맡고 권한 프로파일 중 하나에 포함된 명령을 나열합니다.

% roles
devadmin
% su - devadmin
Password: Type devadmin password
$ profiles -l
Device Security
          /usr/bin/kbd        uid=0;gid=sys
          /usr/sbin/add_allocatable    euid=0
          /usr/sbin/add_drv        uid=0
          /usr/sbin/devfsadm        uid=0
          /usr/sbin/eeprom        uid=0
          /usr/sbin/list_devices        euid=0
          /usr/sbin/rem_drv        uid=0
          /usr/sbin/remove_allocatable    euid=0
          /usr/sbin/strace        euid=0
          /usr/sbin/update_drv        uid=0

예 9-33 역할의 권한 있는 명령 실행

이 예에서 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: <Type admin password>
$ /usr/bin/whoami
admin
$ chgrp admin useful.script
$ chown admin useful.script
$ ls -l useful.script
-rwxr-xr-- 1 admin admin 262 Apr 2 10:53 useful.script

권한 관리(작업 맵)

사용자 및 역할에 대한 권한을 관리하는 가장 안전한 방법은 권한 프로파일의 명령에 권한을 사용하도록 구성하는 것입니다. 그러면 권한 프로파일이 역할에 포함됩니다. 역할이 사용자에 할당됩니다. 사용자가 할당된 역할을 맡을 때 프로파일 셸에서 실행되도록 권한 있는 명령을 사용할 수 있습니다. 다음 절차는 권한을 할당하고 권한을 제거하고 권한 사용을 디버그하는 방법을 보여줍니다.

다음 작업 맵은 권한을 할당, 제거, 디버그하고 권한 있는 명령이 포함된 스크립트를 실행하기 위한 절차를 가리킵니다.

작업
설명
수행 방법
어떤 권한이 프로세스에 있는지 확인합니다.
프로세스에 대한 유효, 상속 가능한, 허가된, 제한 권한 세트를 나열합니다.
어떤 권한이 프로세스에서 누락되었는지 확인합니다.
실패한 프로세스를 성공하는 데 필요한 권한을 나열합니다.
명령에 권한을 추가합니다.
권한 프로파일의 명령에 권한을 추가합니다. 사용자 또는 역할을 권한 프로파일에 할당할 수 있습니다. 그런 다음 사용자가 프로파일 셸에서 할당된 권한을 가진 명령을 실행할 수 있습니다.
사용자 또는 역할에 권한을 할당합니다.
사용자나 역할의 상속 가능한 권한 세트를 확장합니다. 이 절차는 주의해서 사용해야 합니다.
사용자의 권한을 제한합니다.
사용자의 기본 권한 세트를 제한합니다. 이 절차는 주의해서 사용해야 합니다.
권한 있는 셸 스크립트를 실행합니다.
셸 스크립트와 셸 스크립트의 명령에 권한을 추가합니다. 그런 다음, 프로파일 셸에서 스크립트를 실행합니다.

프로세스의 권한을 확인하는 방법

이 절차는 프로세스에 사용 가능한 권한을 확인하는 방법을 보여줍니다. 특정 명령에 할당된 권한은 목록에 포함되지 않습니다.

예 9-34 현재 셸의 권한 확인

다음 예에서 사용자의 셸 프로세스에서 부모 프로세스의 권한이 나열됩니다. 두번째 예에서 권한의 전체 이름이 나열됩니다. 출력의 단문자는 다음 권한 세트를 가리킵니다.

E

유효 권한 세트입니다.

I

상속 가능한 권한 세트입니다.

P

허가된 권한 세트입니다.

L

제한 권한 세트입니다.

% ppriv $$
1200:   -csh
flags = <none>
        E: basic
        I: basic
        P: basic
        L: all
% ppriv -v $$
1200:   -csh
flags = <none>
        E: file_link_any,net_access,proc_exec,proc_fork,proc_info,proc_session
        I: file_link_any,net_access,proc_exec,proc_fork,proc_info,proc_session
        P: file_link_any,net_access,proc_exec,proc_fork,proc_info,proc_session
        L: cpc_cpu,dtrace_kernel,dtrace_proc,dtrace_user,…,sys_time

예 9-35 사용자가 맡을 수 있는 역할의 권한 확인

역할은 관리 셸 또는 프로파일 셸을 사용합니다. 역할을 맡고 역할의 셸을 사용하여 역할에 직접 할당된 권한을 나열해야 합니다. 다음 예에서 sysadmin 역할에 직접 할당된 권한이 없습니다.

% su - sysadmin
Password: <Type sysadmin password>
$ /usr/bin/whoami
sysadmin
$ ppriv -v $$
1400:   pfksh
flags = <none>
        E: file_link_any,file_read,file_write,net_access,proc_exec,proc_fork,
           proc_info,proc_session
        I: file_link_any,file_read,file_write,net_access,proc_exec,proc_fork,
           proc_info,proc_session
        P: file_link_any,file_read,file_write,net_access,proc_exec,proc_fork,
           proc_info,proc_session
        L: cpc_cpu,dtrace_kernel,dtrace_proc,dtrace_user,…,win_upgrade_sl

프로그램에 필요한 권한을 확인하는 방법

이 절차는 명령이나 프로세스를 성공하는 데 필요한 권한을 확인합니다.

시작하기 전에

이 디버깅 절차가 작동하려면 명령이나 프로세스를 실패해야 합니다.

  1. ppriv 디버깅 명령의 인수로 실패하는 명령을 입력합니다.
    % ppriv -eD touch /etc/acct/yearly
    touch[5245]: missing privilege "file_dac_write"
         (euid = 130, syscall = 224) needed at zfs_zaccess+0x258
    touch: cannot create /etc/acct/yearly: Permission denied 
  2. /etc/name_to_sysnum 파일에서 syscall 번호를 찾아서 어떤 시스템 호출이 실패하는지 확인합니다.
    % grep 224 /etc/name_to_sysnum
    creat64                 224

예 9-36 truss 명령을 사용하여 권한 사용 조사

truss 명령은 일반 셸에서 권한 사용을 디버그할 수 있습니다. 예를 들어, 다음 명령은 실패하는 touch 프로세스를 디버그합니다.

% truss -t creat touch /etc/acct/yearly
creat64("/etc/acct/yearly", 0666)            
                       Err#13 EACCES [file_dac_write]
touch: /etc/acct/yearly cannot create

확장된 /proc 인터페이스가 truss 출력에 오류 코드 뒤에 누락된 권한을 보고합니다.

예 9-37 ppriv 명령을 사용하여 프로파일 셸의 권한 사용 조사

ppriv 명령은 프로파일 셸에서 권한 사용을 디버그할 수 있습니다. 권한 프로파일을 사용자에 할당하고 권한 프로파일에 권한 포함 명령이 포함된 경우 프로파일 셸에 명령을 입력해야 합니다. 권한 있는 명령을 일반 셸에 입력하면 명령이 권한으로 실행되지 않습니다.

이 예에서 jdoe 사용자는 objadmin 역할을 맡을 수 있습니다. objadmin 역할에는 Object Access Management 권한 프로파일이 포함됩니다. 이 권한 프로파일을 통해 objadmin 역할은 objadmin이 소유하지 않은 파일에 대한 사용 권한을 변경할 수 있습니다.

다음 발췌 부분에서 jdoeuseful.script 파일에 대한 사용 권한 변경을 실패합니다.

jdoe% ls -l useful.script
-rw-r--r--  1 aloe  staff  2303 Apr 10 10:10 useful.script
jdoe% chown objadmin useful.script
chown: useful.script: Not owner
jdoe% ppriv -eD chown objadmin useful.script
chown[11444]: missing privilege "file_chown" 
            (euid = 130, syscall = 16) needed at zfs_zaccess+0x258
chown: useful.script: Not owner

jdoeobjadmin 역할을 맡을 때 파일에 대한 사용 권한이 변경됩니다.

jdoe% su - objadmin
Password: <Type objadmin password>
$ ls -l useful.script
-rw-r--r--  1 aloe  staff  2303 Apr 10 10:10 useful.script
$ chown objadmin useful.script
$ ls -l useful.script
-rw-r--r--  1 objadmin  staff  2303 Apr 10 10:10 useful.script
$ chgrp admin useful.script
$ ls -l objadmin.script
-rw-r--r--  1 objadmin  admin  2303 Apr 10 10:11 useful.script

예 9-38 root 사용자가 소유한 파일 변경

이 예는 권한 에스컬레이션에 대한 보호 조치를 보여줍니다. 설명은 권한 에스컬레이션 금지를 참조하십시오. 파일은 root 사용자가 소유합니다. 비교적 덜 강력한 역할인 objadmin이 파일 소유권을 변경하려면 모든 권한이 필요하므로 작업을 실패합니다.

jdoe% su - objadmin
Password: <Type objadmin password>
$ cd /etc; ls -l system
-rw-r--r--  1 root  sys   1883 Oct 10 10:20 system
$ chown objadmin system
chown: system: Not owner
$ ppriv -eD chown objadmin system
chown[11481]: missing privilege "ALL" 
     (euid = 101, syscall = 16) needed at zfs_zaccess+0x258
chown: system: Not owner

권한 있는 명령으로 셸 스크립트를 실행하는 방법


주 - 권한이 필요한 명령을 실행하는 셸 스크립트를 만들 때 적절한 권한 프로파일에 할당된 권한을 가진 명령을 포함해야 합니다.


시작하기 전에

root 역할을 가진 사용자여야 합니다.

  1. 첫번째 라인에서 /bin/pfsh 또는 다른 프로파일 셸로 스크립트를 시작합니다.
    #!/bin/pfsh
    # Copyright (c) 2011 by Oracle
  2. 스크립트의 명령에 필요한 권한을 확인합니다.
    % ppriv -eD script-full-path
  3. 필요한 보안 속성을 가진 관리자가 됩니다.

    자세한 내용은 관리 권한을 얻는 방법을 참조하십시오.

  4. 스크립트에 대한 권한 프로파일을 만들거나 수정합니다.

    셸 스크립트와 셸 스크립트의 명령을 필요한 보안 속성으로 권한 프로파일에 추가해야 합니다. 단계는 감사 프로파일을 만들거나 변경하는 방법을 참조하십시오.

  5. 권한 프로파일을 역할에 추가하고 역할을 사용자에 할당합니다.

    스크립트를 실행하려면 사용자가 역할을 맡고 역할의 프로파일 셸에서 스크립트를 실행합니다.