-특수권한-
<ACL (Access Control List)>
- 파일이나 디렉토리에 권한보다 강력한 접근 제어를 제공
<ACL 명령어>
1) getfacl [파일이름] : 해당파일의 acl내용 출력
2) setfacl [acl_entries] [파일이름] : 해당파일의 acl 추가 (상세정보에 +표시 됨)
-s | 전체설정 (ex) setfacl –s u::6,g::6,o:1,m:4,u:asus01:7 dir1 |
-m | 일부항목 수정 (ex) setfacl –m g::5,u::4 dir1 |
-d | 하나 이상의 항목 삭제 |
-r | 마스크 값을 기반으로 유효권한을 계산 (자동으로 계산에서 마스크 설정됨) |
<acl_entries 항목>
u::perm | user권한 |
g::perm | group권한 |
o:perm | other권한 |
u:UID 또는 Username | 소유자 권한 |
g:GID 또는 Groupname | 그룹 권한 |
m:perm | 마스크값 설정 (effective 권한) |
<실습>
1) getfacl dir1

2) setfacl –s u::6,g::6,o:1,m:4,u:asus01:7 dir1 (acl추가시 +표시)

3) setfacl –m g::5,u::4 dir1

4) setfacl –d u:asus01 dir1

5) setfacl –r –m u:asus01:5

<실습2>
1) 일반사용자 중에서 asus01 사용자만 dir1 디렉토리에 접근, 목록보기, 파일 또는 디렉토리 생성이 가능하도록 설정 |
setfacl –m m:7,o:0,u:asus01:7 dir1
2) 일반사용자 중에서 asus02 사용자만 dir2 디렉토리에 접근, 목록보기가 가능하고 asus03사용자는 접근만 가능하도록 설정 |
setfacl –m m:5,o:0,u:asus02:5 dir2
setfacl –m u:asus03:1 dir2
3) dir1 디렉토리에 01~05는 모든 권한을 06~10은 일기, 실행 권한만 dir1 디렉토리에 06~10는 모든 권한을 01~05은 읽기, 실행 권한만 |
setfacl –r –m o:0,u:asus01:7,u:asus02:7,u:asus03:7,u:asus04:7,u:asus05:7 dir1
setfacl –r –m o:0,u:asus06:3,u:asus07:3,u:asus08:3,u:asus09:3,u:asus10:3 dir1
setfacl –r –m o:0,u:asus01:3,u:asus02:3,u:asus03:3,u:asus04:3,u:asus05:3 dir1
setfacl –r –m o:0,u:asus06:7,u:asus07:7,u:asus08:7,u:asus09:7,u:asus10:7 dir1
<접근 제어 종류>
1)DAC(Discretionary Access Control)
- 일반적으로 알고 있는 퍼미션을 사용하는 시스템
- 접근제어는 각각 개별 소유자들이 임의적으로 한다.
2)RBAC(Role Based Access Control)
- 무언가를 할 수 있는 Rights를 만들고 사용자들에게 부여해서 사용
3)MAC(Mandatory Access Control)
- 일반적이지 않은 시스템에서 사용
- 군사적인 목적
- 관리자는 접근제어만 관리할 수 있다.
<RBAC 관련 용어>
룰(Role) | 특정사용자만이 실행할 수 있는 권한이 있는 프로그램 또는 명령을 실행할 수 있는 사용자ID (/etc/user_attr) |
권한 프로파일 (Rights Profiles) |
사용자에게 할당할 수 있는 권한 또는 명령의 목록, 집합 (/etc/security/prof_attr, /etc/security/exec_attr) |
권한 부여 (Authorization) |
권한을 부여하는 것 (/etc/security/auth_attr) |
프로파일 쉘 (Profile Shell) |
pfksh, pfcsh, pfsh 일반적인 쉘은 RBAC 관련 파일을 인식하거나 참조하지 않기 때문에 RBAC 관련 파일을 인식할 수 있는 쉘 |
<RBAC 구성 파일>
1)/etc/user_attr : 롤 사용자를 정의

1: username : 사용자ID 2: quilifier : x 3: res1: x 4: res2: x 5: attr : 사용자가 명령을 실행할 때 적용될 속성 -type: normal, role -auths: 부여할 권한의 이름 -profiles: 부여할 권한 프로파일을 지정 -roles: 사용자가 일반사용자일 경우 역발 기반 사용자와 맵핑 |
2)/etc/security/prof_attr : 권한 프로파일을 정의

1: profname : 권한 프로파일의 이름 2: res1: x 3: res2: x 4: desc: 권한 프로파일에 대한 설명 5: attr : 프로파일에 대한 속성지정 -help : 도움말 파일의 위치지정 -auths : 권한의 이름을 지정 /etc/security/auth_attr에 정의된 권한 이름을 지정 |
3)/etc/security/exec_attr : 권한 프로파일에서 할 수 있는 명령을 정의

1: profname: 권한 프로파일 이름 2: policy: 현재는 suser라는 값이 유일하게 사용 3: type: 프로파일에 정의된 데이터의 종류를 명시 cmd라는 값이 유일하게 사용 4: res1: x 5: res2: x 6: id: 실행할 명령의 절대경로가 들어간다. 7: attr: 명령을 실행할 때 가지는 uid, gid, euid, guid를 지정 |
4)/etc/security/auth_attr : 어떠한 역할의 프로파일이 어떤 Rights를 수행할 수 있는지 명시

1: authname : 권한의 이름으로 도메인명처럼 ~.~.~로 사용된다. 2: res1: x 3: res2: x 4: short_desc: 짧은 설명 5: long_desc: 긴 설명 6: attr: 도움말의 위치 |
5)/etc/security/policy_conf
: 솔라리스에 정의된 모든 사용자에게 기본적으로 할당할 권한과 권한 프로파일 지정

<실습>
1) vi /etc/security/prof_attr system down:::test: 2) vi /etc/sescurity/exec_attr system down:suser:cmd:::/usr/sbin/shutdown:uid=0 3)roleID 생성 roleadd –m –d /export/home/sysdown –s /usr/bin/pfksh –P “system down” sysdown passwd sysdown 4)asus02에 역할기반의 sysdown와 맵핑 usermod –R sysdown asus02 5)asus02로 로그인 후 역발기반 사용자로 로그인 가능 |
실습2)
asus10사용자가 다른 사용자의 crontab까지 관리할 수 있도록 역할 부여
1) vi /etc/security/prof_attr modify_cron:::cron: auths=solaris.jobs.*.solaris.smf.manage.cron 2) vi /etc/sescurity/exec_attr modify_cron:suser:cmd:::/usr/bin/crontabs:uid=0 3)roleID 생성 roleadd –m –d /export/home/ modify_cron –s /usr/bin/pfksh –P “modify_cron” modify_cron passwd modify_cron 4)asus03에 역할기반의 modify_cron 와 맵핑 usermod –R modify_cron asus03 |
<syslog>
- os는 시스템에 다양한 형태의 로그 메세지를 남긴다. 이러한 로그 메세지는 시스템의 설치 및 운영, 보안상 매우 중요하다
- syslog는 다양한 형태의 로그 메시지 중 하나이다
logger –p [Selector] [메세지] : 인위적으로 로그인 남기기 /var/adm/messages : 로그파일 내용 |
<syslog 데몬>
- /etc/syslog.conf 파일에서 정의된 내용에 따라 지정된 곳에 이벤트 메세지를 남긴다.

1: Selector: Facility(분류) + Level(중요도) 2: Action: 로그 메세지 남길 대상 |
<Facility(분류)>
kern | 커널에 의해서 생성된 메세지 |
user | 사용자 프로세스에 대해 생성된 메세지 |
메일 시스템 | |
daemon | |
auth | |
syslog | |
cron |
<레벨>
레벨 | 우선 순위 | |
emerge | 0 | 일반적으로 모든 사용자에게 전달되는 패닉상황 |
alert | 1 | 시스템DB 송신 등 즉시 수정해야 하는 상황 |
crit | 2 | 하드장치 오류 등 중대한 상황 |
err | 3 | 하드장치 오류 이외의 오류 |
warning | 4 | 경고 메세지 |
notice | 5 | 특별한 처리가 필요할 수 있는 비오류 상황 |
info | 6 | 정보 메세지 |
debug | 7 | 프로그램 디버깅시 사용 |
none | 8 | 메세지 전송 안함 |
<액션필드>
/pathname | 메세지가 저장될 경로 |
@host | 메세지가 전달될 원격 호스트 |
username | 메세지가 전달될 로컬 사용자 |
* | 로그인 된 모든 사용자에게 메세지 전달 |
<실습>
1) vi /etc/syslog 내용 수정
- *.err /test/testlog

2) syslog데몬 재시작
- svcadm restart svc:/system/system-log:default

3) 로그 인위적으로 남기기
- logger –p kern.err test3

<순환로그>
- 로그파일이 일정이상의 용량이 되면 0번, 1번, 2번 등으로 파일의 이름을 바꿔 다른 파일로 저장
/etc/logadm.conf : 순환로그 설정 명시된 파일 logadm –w [로그파일 경로] –s [용량] : 순환로그파일 용량설정 |
'IT > OS' 카테고리의 다른 글
UNIX ZFS (0) | 2024.01.31 |
---|---|
UNIX RAID (0) | 2024.01.31 |
UNIX NFS (1) | 2024.01.30 |
UNIX RPC서비스 가상메모리 SWAP dump (0) | 2024.01.16 |
UNIX /root복구 네트워크 인터페이스 (0) | 2024.01.16 |