4.6. 부울
부울을 사용하면 SELinux 정책 작성에 대한 지식 없이 런타임 시 SELinux 정책 부분을 변경할 수 있습니다. 이렇게 하면 SELinux 정책을 다시 로드하거나 다시 컴파일하지 않고도 NFS 볼륨에 서비스 액세스 허용 등의 변경 사항을 허용합니다.
4.6.1. 부울 나열
부울 목록, 각 항목이 무엇인지, 실행 중인지에 대한 설명은 Linux root 사용자로 semanage boolean -l 명령을 실행합니다. 다음 예제는 모든 부울을 나열하지 않으며 출력은 간결성을 위해 단축됩니다.
~]#
semanage boolean -l
SELinux boolean State Default Description
smartmon_3ware (off , off) Determine whether smartmon can...
mpd_enable_homedirs (off , off) Determine whether mpd can traverse...
참고
자세한 설명을 보려면 selinux-policy-devel 패키지를 설치합니다.
SELinux 부울
열에는 부울 이름이 나열됩니다. Description
열에는 부울이 on 또는 off인지 여부와 수행할 작업이 나열됩니다.
getsebool -a 명령은 켜거나 꺼져 있는지 여부에 관계없이 부울을 나열하지만 각 옵션에 대한 설명은 표시하지 않습니다. 다음 예제는 모든 부울을 나열하지 않습니다.
~]$
getsebool -a
cvs_read_shadow --> off
daemons_dump_core --> on
getsebool boolean-name 명령을 실행하여 부울 이름 부울의 상태만 나열합니다.
~]$
getsebool cvs_read_shadow
cvs_read_shadow --> off
공백으로 구분된 목록을 사용하여 여러 부울을 나열합니다.
~]$
getsebool cvs_read_shadow daemons_dump_core
cvs_read_shadow --> off
daemons_dump_core --> on
4.6.2. 부울 구성
setsebool
boolean_name on/off 양식에서 setsebool 유틸리티를 실행하여 부울을 활성화하거나 비활성화합니다.
다음 예제에서는
httpd_can_network_connect_db
부울을 구성하는 방법을 보여줍니다.
절차 4.5. 부울 구성
- 기본적으로
httpd_can_network_connect_db
부울이 꺼져 Apache HTTP Server 스크립트 및 모듈이 데이터베이스 서버에 연결되지 않습니다.~]$
getsebool httpd_can_network_connect_db httpd_can_network_connect_db --> off - Apache HTTP Server 스크립트 및 모듈을 일시적으로 활성화하여 데이터베이스 서버에 연결하려면 root로 다음 명령을 입력합니다.
~]#
setsebool httpd_can_network_connect_db on getsebool
유틸리티를 사용하여 부울이 활성화되었는지 확인합니다.~]$
getsebool httpd_can_network_connect_db httpd_can_network_connect_db --> on이렇게 하면 Apache HTTP Server 스크립트 및 모듈이 데이터베이스 서버에 연결할 수 있습니다.- 이 변경 사항은 재부팅 시 유지되지 않습니다. 재부팅 시 영구적으로 변경하려면 명령에 root로 setsebool -P boolean-name 을 실행합니다.[3]
~]#
setsebool -P httpd_can_network_connect_db on
4.6.3. 쉘 자동 완성
getsebool
,setsebool
및 semanage
유틸리티와 함께 쉘 자동 완성을 사용할 수 있습니다. getsebool
및 setsebool
과 함께 자동 완성을 사용하여 명령줄 매개 변수와 부울을 모두 완료합니다. 명령줄 매개변수만 나열하려면 명령 이름 뒤에 하이픈 문자("-")를 추가하고 Tab 키를 누릅니다.
~]#
setsebool -[Tab]
-P
부울을 완료하려면 부울 이름 쓰기를 시작한 다음 Tab:을 누릅니다.
~]$
getsebool samba_[Tab]
samba_create_home_dirs samba_export_all_ro samba_run_unconfined
samba_domain_controller samba_export_all_rw samba_share_fusefs
samba_enable_home_dirs samba_portmapper samba_share_nfs
~]#
setsebool -P virt_use_[Tab]
virt_use_comm virt_use_nfs virt_use_sanlock
virt_use_execmem virt_use_rawip virt_use_usb
virt_use_fusefs virt_use_samba virt_use_xserver
semanage
유틸리티는 하나씩 완료된 여러 명령줄 인수와 함께 사용됩니다. semanage 명령의 첫 번째 인수는 SELinux 정책의 일부를 지정하는 옵션입니다.
~]#
semanage [Tab]
boolean export import login node port
dontaudit fcontext interface module permissive user
그런 다음 하나 이상의 명령줄 매개변수는 다음과 같습니다.
~]#
semanage fcontext -[Tab]
-a -D --equal --help -m -o
--add --delete -f -l --modify -S
-C --deleteall --ftype --list -n -t
-d -e -h --locallist --noheading --type
마지막으로 부울, SELinux 사용자, 도메인 또는 기타와 같은 특정 SELinux 항목의 이름을 완료합니다. 항목 입력을 시작하고 Tab 을 누릅니다.
~]#
semanage fcontext -a -t samba<tab>
samba_etc_t samba_secrets_t
sambagui_exec_t samba_share_t
samba_initrc_exec_t samba_unconfined_script_exec_t
samba_log_t samba_unit_file_t
samba_net_exec_t
명령줄 매개 변수는 명령으로 연결할 수 있습니다.
~]#
semanage port -a -t http_port_t -p tcp 81
[3]
기본 동작으로 임시로 되돌리려면 Linux root 사용자로 setsebool httpd_can_network_connect_db off 명령을 실행합니다. 재부팅 시 유지되는 변경 사항의 경우 setsebool -P httpd_can_network_connect_db off 명령을 실행합니다.