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 명령을 실행합니다.