주:
- 이 사용지침서는 Oracle 제공 무료 실습 환경에서 제공됩니다.
- Oracle Cloud Infrastructure 인증서, 테넌시 및 구획에 대한 예제 값을 사용합니다. 실습을 마치면 사용자의 클라우드 환경과 관련된 값으로 대체합니다.
Oracle Linux에서 SELinux 사용
소개
SELinux는 커널 모드 및 사용자 공간 도구 세트로, 다른 계층의 시스템 보안, 정확한 액세스 제어, 시스템 차원의 관리 정의 정책 및 권한 에스컬레이션 공격에 대한 개선된 완화를 제공합니다.
이 자습서에서는 이러한 사용자 공간 도구를 사용하여 시스템을 강제 실행 모드로 유지하는 방법을 안내합니다.
목표
이 실습에서는 다음 내용을 배웁니다.
- SELinux 모드 및 상태 확인
- SELinux 보안 레이블 이해
- SELinux 네트워크 서비스 사용
- SELinux 유저 사용
- SELinux 부울 변경
- SELinux 파일 컨텍스트 평가
필요 조건
- 다음 구성으로 Oracle Linux 8이 설치된 시스템:
sudo
권한을 가진 비루트 사용자
랩 환경 설정
주: 무료 실습 환경을 사용하는 경우 Oracle Linux Lab Basics에서 연결 및 기타 사용 지침을 참조하십시오.
사용자 생성
추가 사용자는 이 연습의 뒷부분에서 SELinux 유저 할당을 테스트할 수 있습니다.
-
아직 연결되지 않은 경우 터미널을 열고 ssh를 통해 ol8-server 시스템에 연결합니다.
ssh oracle@<ip_address_of_ol8-server>
-
사용자를 만들고 암호를 설정합니다.
sudo useradd -u 8000 ralph echo "ralph:oracle" | sudo chpasswd
-
SSH 접속을 허용합니다.
oracle
사용자 계정에서 SSH 키를 복사합니다.sudo mkdir /home/ralph/.ssh sudo cp /home/oracle/.ssh/authorized_keys /home/ralph/.ssh/authorized_keys sudo chown -R ralph:ralph /home/ralph/.ssh sudo chmod 700 /home/ralph/.ssh sudo chmod 600 /home/ralph/.ssh/authorized_keys
-
새 터미널을 열고 SSH 접속이 작동하는지 확인합니다.
ssh ralph@<ip_address_of_ol8-server>
그런 다음 세션을
exit
하고 터미널 window를 닫습니다.
SELinux 모드 및 상태
Oracle Linux는 기본적으로 SELinux를 설치하며 Enforcing
모드로 실행됩니다.
-
SELinux 모드를 확인하여 확인합니다.
Enforcing
로 설정해야 합니다.getenforce
-
SELinux 상태 및 모드를 확인합니다.
sestatus
sestatus
명령 출력에는 SELinux 상태, 정책 및 모드가 표시됩니다.예제 출력:
SELinux status: enabled SELinuxfs mount: /sys/fs/selinux SELinux root directory: /etc/selinux Loaded policy name: targeted Current mode: enforcing Mode from config file: enforcing Policy MLS status: enabled Policy deny_unknown status: allowed Memory protection checking: actual (secure) Max kernel policy version: 31
SELinux 보안 레이블
SELinux의 모든 프로세스 및 시스템 리소스에는 SELinux 컨텍스트라는 보안 레이블이 있습니다. SELinux 레이블이라고도 하는 SELinux 컨텍스트는 보안 등록 정보에 중점을 두고 SELinux 정책의 객체를 참조할 수 있는 일관된 방법을 보장합니다.
-
파일에 대한 SELinux 보안 레이블을 표시합니다.
ls -ldZ /etc/passwd
예제 출력:
-rw-r--r--. 1 root root system_u:object_r:passwd_file_t:s0 1892 Apr 13 14:39 /etc/passwd
-Z
옵션이 있는ls
출력에는 4개의 SELinux 속성 필드가 표시됩니다.- 사용자:
system_u
- 역할:
object_r
- 유형:
passwd_file_t
- 보안:
s0
가장 중요한 것은 SELinux 유형입니다. 대부분의 SELinux
targeted
정책 규칙은 SELinux 유형을 활용하여 한 객체(예: 프로세스)와 다른 객체(예: 파일) 간에 허용되는 상호 작용을 정의하기 때문입니다. - 사용자:
-
사용 가능한 SELinux 유형 목록을 가져옵니다.
seinfo --type | head
head
명령은 출력을 처음 10개의 출력 행으로만 제한합니다.
전체 출력은
ssh
및sshd
와 같은 여러 명령 및 서비스에 대해 SELinux 유형이 존재함을 보여줍니다. -
특정 SELinux 유형의 목록을 가져옵니다.
grep
는ssh
단어를 포함하는 유형으로만 출력을 제한합니다.seinfo -t | grep ssh
-
특정 프로세스 및 구성 파일에 대한 보안 레이블 목록을 가져옵니다.
ps
를 사용하면 프로세스에 대한 보안 레이블이 생성됩니다.ps -efZ | grep sshd
예제 출력:
system_u:system_r:sshd_t:s0-s0:c0.c1023 root 2535 1 0 14:37 ? 00:00:00 /usr/sbin/sshd -D system_u:system_r:sshd_t:s0-s0:c0.c1023 root 18514 2535 0 15:21 ? 00:00:00 sshd: oracle [priv] unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 oracle 18528 18514 0 15:21 ? 00:00:00 sshd: oracle@pts/0 unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 oracle 23611 18529 0 15:41 pts/0 00:00:00 grep --color=auto sshd
ls
를 사용하면 구성 파일에 대한 보안 레이블이 생성됩니다.ls -lZ /etc/ssh/
예제 출력:
total 600 -rw-r--r--. 1 root root system_u:object_r:etc_t:s0 577388 Oct 9 2021 moduli -rw-r--r--. 1 root root system_u:object_r:etc_t:s0 1770 Oct 9 2021 ssh_config drwxr-xr-x. 2 root root system_u:object_r:etc_t:s0 28 Feb 18 08:51 ssh_config.d -rw-------. 1 root root system_u:object_r:etc_t:s0 4268 Apr 13 14:37 sshd_config -rw-r-----. 1 root ssh_keys system_u:object_r:sshd_key_t:s0 537 Apr 13 14:37 ssh_host_ecdsa_key -rw-r--r--. 1 root root system_u:object_r:sshd_key_t:s0 197 Apr 13 14:37 ssh_host_ecdsa_key.pub -rw-r-----. 1 root ssh_keys system_u:object_r:sshd_key_t:s0 432 Apr 13 14:37 ssh_host_ed25519_key -rw-r--r--. 1 root root system_u:object_r:sshd_key_t:s0 117 Apr 13 14:37 ssh_host_ed25519_key.pub -rw-r-----. 1 root ssh_keys system_u:object_r:sshd_key_t:s0 2635 Apr 13 14:37 ssh_host_rsa_key -rw-r--r--. 1 root root system_u:object_r:sshd_key_t:s0 589 Apr 13 14:37 ssh_host_rsa_key.pub
sshd
데몬 프로세스는sshd_t
유형을 사용합니다. 따라서 targeted 정책에서sshd_t
을 가진 객체가 다음 보안 속성을 가진 객체에 액세스할 수 있음을 알리는sshd_t
SELinux 속성에 대한 규칙이 필요합니다.etc_t
sshd_key_t
- ...
마찬가지로
ssh
명령을 검토할 경우ssh_home_t
와ssh_exec_t
간의 유사한 매핑을 확인할 수 있습니다.ls -lZ /usr/bin/ssh
예제 출력:
-rwxr-xr-x. 1 root root system_u:object_r:ssh_exec_t:s0 775720 Oct 9 2021 /usr/bin/ssh
ls -lZ ~/.ssh
예제 출력:
total 4 -rw-------. 1 oracle oracle unconfined_u:object_r:ssh_home_t:s0 404 Apr 13 14:39 authorized_keys
-
사용자의 보안 컨텍스트를 가져옵니다.
관련된 다른 컨텍스트 유형은
unconfined_t
입니다. 이 SELinux 유형의 객체(예: 사용자)는 무제한 액세스 권한을 가집니다. 이 액세스 레벨은 SELinux가 사용자가 수행할 수 있는 작업을 제한하지 않고 DAC 권한을 통해서만 금지함을 의미합니다. DAC(임의 액세스 제어)는 기존 사용자, 그룹 및 기타 권한에 의해 처리되는 보안 정책입니다.예를 들어,
oracle
사용자에 대한 보안 속성을 표시합니다.whoami
id -Z
예제 출력:
[oracle@ol-selinux ~]$ whoami oracle [oracle@ol-selinux ~]$ id -Z unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
SELinux 및 네트워크 서비스
SELinux는 내부 데이터베이스 내에서 가장 일반적으로 사용되는 네트워크 기반 소프트웨어 패키지에 대한 구성을 추적합니다. 이 추적을 통해 SELinux는 외부 서비스에서 공격에 이르기까지 시스템을 보호할 수 있습니다.
따라서 비표준 디렉토리나 포트를 사용하도록 소프트웨어를 구성하면 SELinux에서 서비스가 작동하지 않을 수 있습니다.
시스템의 표준 포트에 대해 SELinux가 인식하는 것을 표시하려면 SELinux 유틸리티 semanage
를 사용해야 합니다. Oracle Linux는 기본적으로 유틸리티를 설치하지 않으므로 설치합니다.
-
유틸리티를 제공하는 패키지를 확인합니다.
sudo dnf whatprovides semanage
결과는
/usr/sbin/semanage
가policycoreutils-python-utils
패키지의 일부임을 보여줍니다. -
패키지 및 종속성을 설치합니다.
sudo dnf install -y policycoreutils-python-utils
-
SELinux에서 허용되는
sshd
포트를 확인합니다.sudo semanage port -l | grep ssh
예제 출력:
ssh_port_t tcp 22
-
SELinux 정책에 새 포트를 추가합니다.
SSH 데몬이 수신하는 포트를 2222로 변경하거나 기본 구성을 저장하는 위치를 변경하려는 경우 SELinux에 해당 변경사항을 알려야 합니다.
semanage
를 다시 사용하여 새 정책 규칙을 추가하여 사용자정의 포트를 허용할 수 있습니다.sudo sudo semanage port -a -t ssh_port_t -p tcp 2222
-a
옵션은-t
유형의 새 정책 규칙을 추가합니다.
-
SELinux가 허용하는 포트를 확인합니다.
sudo semanage port -l | grep ssh
예제 출력:
ssh_port_t tcp 2222, 22
-
SELinux 정책에서 포트를 수정합니다.
SSH 데몬을 포트 443에 매핑하려고 한다고 가정해 보겠습니다. 동일한 명령을 반복하지만 포트가 이미 사용 중이라는 메시지와 함께 오류가 발생합니다.
sudo semanage port -a -t ssh_port_t -p tcp 443
예제 출력:
ValueError: Port tcp/443 already defined
http_port_t
유형에서ssh_port_t
유형으로 포트 443을 전환하려고 시도하는 중 오류가 발생했습니다. 이렇게 하려면 포트 객체 레코드를 수정하는-m
옵션을 사용합니다.sudo semanage port -m -t ssh_port_t -p tcp 443
SELinux 유저
각 Linux 사용자는 SELinux 정책을 사용하여 SELinux 유저에 매핑됩니다. 이 방법을 통해 Linux 사용자는 SELinux 사용자 매핑에 따라 제한 사항을 상속할 수 있습니다. Oracle Linux의 기본 매핑은 SELinux unconfined_u
사용자에게 매핑되는 __default__
로그인입니다.
-
현재 모든 Linux 사용자 매핑 목록을 가져옵니다.
sudo semanage login -l
oracle
사용자는 나열되지 않으므로unconfined_u
사용자에게 매핑됩니다.
-
SELinux 사용자 목록을 가져옵니다.
seinfo -u
-
사용자의 작업을 제한합니다.
기본 Linux 사용자가 제약 없이 실행되지만, 사용자의 작업으로 인해 응용 프로그램
domain
에 따라 제한이 발생할 수 있습니다.domain
는 SELinux 유형이 동일한 다양한 객체입니다.사용자가 X 윈도우 시스템,
sudo
및 네트워크를 사용하지 못하도록 차단하려면 어떻게 해야 합니까?SELinux에 해당 사용자가 있습니다.
이를 확인하려면 다른 Linux 사용자가 있어야 합니다. 사용자 ralph를 사용합니다.
-
guest_u
에 대한 새 매핑을 생성합니다.sudo semanage login -a -s guest_u ralph
-
매핑을 확인합니다.
sudo semanage login -l
-
ralph가 네트워크에 액세스할 수 없는지 테스트합니다.
guest_u
에서 상속된 제한은 로그인 후에만 발생하며sudo
또는su
를 수행하지 않습니다.새 터미널을 열고 ssh를 통해 ol8-server 시스템에 ralph 사용자로 연결합니다.
ssh ralph@<ip_address_of_ol8-server>
-
사용자의 컨텍스트를 확인합니다.
id; id -Z
예제 출력:
uid=8000(ralph) gid=8000(ralph) groups=8000(ralph) context=guest_u:guest_r:guest_t:s0 guest_u:guest_r:guest_t:s0
-
사용자의 현재 프로세스의 보안 컨텍스트 표시:
ps axZ
출력에는
guest_u
에 매핑된 사용자 ralph가 표시되고 로그인할 수 있습니다. 그러나 ralph는 네트워크에 액세스할 수 없어야 합니다. -
ping
를 사용하여 네트워크 연결을 테스트합니다.ping localhost
예제 출력:
ping: socket: Permission denied
-
또한
curl
를 사용하여 네트워크를 테스트합니다.curl ifconfig.me
예제 출력:
curl: (6) Could not resolve host: ifconfig.me
이 메시지는
curl
가ifconfig.me
의 DNS 이름을 IP 주소로 분석할 수 없음을 나타냅니다. Linux 네트워크 서비스인 DNS를 사용하려면 소켓을 열어야 하므로 SELinuxguest_u
사용자가 이를 차단합니다. -
현재 터미널 window를 닫습니다.
사용자 ralph로 테스트를 마쳤으므로 해당 터미널 창을 닫습니다.
exit
-
SELinux 부울
SELinux 부울은 SELinux 정책을 작성하는 방법을 몰라도 런타임 시 특정 정책 변경을 허용합니다. Oracle Linux는 많은 내장 부울을 제공하거나 SELinux 정책에 익숙한 관리자가 직접 작성할 수 있습니다. 구현된 정책이 선택 사항인 경우 관리자는 정책을 부울로 작성하는 것이 좋습니다.
-
그들의 의미와 함께 부울의 목록을 가져옵니다.
oracle로 로그인한 터미널로 다시 전환하고 다음 명령을 실행합니다.
sudo semanage boolean -l
예제 출력:
SELinux boolean State Default Description abrt_anon_write (off , off) Allow abrt to anon write abrt_handle_event (off , off) Allow abrt to handle event abrt_upload_watch_anon_write (on , on) Allow abrt to upload watch anon write antivirus_can_scan_system (off , off) Allow antivirus to can scan system antivirus_use_jit (off , off) Allow antivirus to use jit auditadm_exec_content (on , on) Allow auditadm to exec content authlogin_nsswitch_use_ldap (off , off) Allow authlogin to nsswitch use ldap authlogin_radius (off , off) Allow authlogin to radius ...
- 출력은 각 부울이 수행하는 작업과 사용으로 설정(
on
) 또는 사용 안함(off
) 여부를 설명합니다.
- 출력은 각 부울이 수행하는 작업과 사용으로 설정(
-
부울의 목록과 상태를 확인하세요.
sudo getsebool -a
예제 출력:
abrt_anon_write --> off abrt_handle_event --> off abrt_upload_watch_anon_write --> on antivirus_can_scan_system --> off antivirus_use_jit --> off auditadm_exec_content --> on authlogin_nsswitch_use_ldap --> off authlogin_radius --> off authlogin_yubikey --> off ...
-
단일 부울의 상태를 가져옵니다.
부울 이름이 알려진 경우 이름을 인수로 전달하여 해당 부울 상태만 가져옵니다.
sudo getsebool virt_use_nfs
-
부울에 대한 SELinux 정책을 질의합니다.
SELinux 정책 내에서 부울 트리거가 무엇인지 궁금해본 적이 있습니까? SELinux는 이러한 규칙을 질의하는 유틸리티를 제공합니다.
sesearch -b virt_use_nfs -A
예제 출력:
allow fsdaemon_t autofs_t:dir { getattr open search }; [ virt_use_nfs ]:True allow fsdaemon_t nfs_t:dir { getattr ioctl lock open read search }; [ virt_use_nfs ]:True allow fsdaemon_t nfs_t:dir { getattr ioctl lock open read search }; [ virt_use_nfs ]:True allow fsdaemon_t nfs_t:dir { getattr ioctl lock open read search }; [ virt_use_nfs ]:True allow fsdaemon_t nfs_t:dir { getattr open search }; [ virt_use_nfs ]:True allow fsdaemon_t nfs_t:dir { getattr open search }; [ virt_use_nfs ]:True allow fsdaemon_t nfs_t:file { getattr ioctl lock open read }; [ virt_use_nfs ]:True allow fsdaemon_t nfs_t:lnk_file { getattr read }; [ virt_use_nfs ]:True ...
-
부울에서 액세스를 허용하는지 질의합니다.
조건부 부울을 기준으로 특정 액세스가 허용되는지 여부는 어떻습니까? 질문 해답: 사용자 ping이 사용자 도메인(
user_t
)에서 ping 도메인(ping_t
)으로의 전환을 허용합니까?sesearch -s user_t -t ping_t -c process -p transition -AT
예제 출력:
allow user_t ping_t:process transition; [ selinuxuser_ping ]:True
user_ping
SELinux 부울이 사용으로 설정된 경우 전환이 허용됩니다.
-
부울을 사용으로 설정합니다.
KVM이 Samba 공유에 이미지를 저장하도록 허용하시겠습니까? 이것 또한 부울이 있습니다.
-
부울을 찾습니다.
sudo semanage boolean -l | grep virt | grep samba
예제 출력:
virt_use_samba (off , off) Allow virt to use samba
-
부울을 enabled로 변경합니다.
sudo setsebool virt_use_samba on
또는
sudo semanage boolean -m --on virt_use_samba
-
현재 상태를 확인합니다.
getsebool virt_use_samba
-
재부트 시 변경 사항이 지속되는지 확인합니다.
sudo setsebool -P virt_use_samba on
-
-
로컬 SELinux 정책 사용자정의를 표시합니다.
기본 설정을 변경했음을 알면 해당 로컬 사용자 정의를 표시할 수 있습니다.
sudo semanage boolean -l -C
예제 출력:
SELinux boolean State Default Description virt_use_samba (on , on) Allow virt to use samba
- 출력에는 기본값이
on
로 표시됩니다. 스위치를 영구적으로 만들고 보류 중인 값을 디스크의 정책 파일에 기록한 후 기본값이 변경되었습니다.
- 출력에는 기본값이
SELinux 파일 컨텍스트
SELinux를 실행할 때 모든 파일 및 디렉토리에는 SELinux 컨텍스트 레이블이 지정됩니다. 파일 시스템 레이블 지정을 관리하기 위한 몇 가지 명령을 살펴보겠습니다.
익숙한 예로는 Nginx 문서 루트에 대한 새 디렉토리를 만드는 것입니다.
-
세 개의 파일과 함께 새 디렉토리를 생성합니다.
sudo mkdir -p /web sudo touch /web/file{1,2,3}
-
새 디렉토리 및 파일 레이블 지정을 확인합니다.
ls -lZ /web
예제 출력:
total 0 -rw-r--r--. 1 root root unconfined_u:object_r:default_t:s0 0 Apr 14 19:00 file1 -rw-r--r--. 1 root root unconfined_u:object_r:default_t:s0 0 Apr 14 19:00 file2 -rw-r--r--. 1 root root unconfined_u:object_r:default_t:s0 0 Apr 14 19:00 file3
- 새 디렉토리의 컨텍스트 유형과 파일은
default_t
입니다.
주: 새로 생성된 파일 및 디렉토리는 상위 디렉토리의 SELinux 유형을 상속합니다.
- 새 디렉토리의 컨텍스트 유형과 파일은
-
임시 레이블을 변경합니다.
문제 해결 또는 테스트의 일부로 일시적으로 컨텍스트를 변경할 수 있습니다.
sudo chcon -R -t httpd_sys_content_t /web/
ls -lZ /web
-
레이블을 기본 설정으로 되돌립니다.
컨텍스트를 기본 컨텍스트 유형으로 다시 전환합니다.
sudo restorecon -R -v /web/
예제 출력:
[oracle@ol-selinux ~]$ sudo restorecon -R -v /web/ Relabeled /web from unconfined_u:object_r:httpd_sys_content_t:s0 to unconfined_u:object_r:default_t:s0 Relabeled /web/file1 from unconfined_u:object_r:httpd_sys_content_t:s0 to unconfined_u:object_r:default_t:s0 Relabeled /web/file2 from unconfined_u:object_r:httpd_sys_content_t:s0 to unconfined_u:object_r:default_t:s0 Relabeled /web/file3 from unconfined_u:object_r:httpd_sys_content_t:s0 to unconfined_u:object_r:default_t:s0 [oracle@ol-selinux ~]$ ls -lZ /web total 0 -rw-r--r--. 1 root root unconfined_u:object_r:default_t:s0 0 Apr 14 19:00 file1 -rw-r--r--. 1 root root unconfined_u:object_r:default_t:s0 0 Apr 14 19:00 file2 -rw-r--r--. 1 root root unconfined_u:object_r:default_t:s0 0 Apr 14 19:00 file3
-
레이블 변경 사항을 영구적으로 적용합니다.
변경 사항을 영구적으로 적용하고 재부트를 계속하려면
semanage fcontext
명령을 사용합니다.-a
는/etc/selinux/targeted/contexts/files/file_contexts.local
파일에 레코드를 추가하고-t
는 유형을 정의합니다.sudo semanage fcontext -a -t httpd_sys_content_t "/web(/.*)?"
주:
semanage fcontext
로 SELinux 컨텍스트를 변경할 때 파일 시스템 레이블을 재지정하거나restorecon
를 실행한 후 파일 레이블이 잘못 지정되지 않도록 파일 또는 디렉토리에 대한 전체 경로를 사용하는 것이 좋습니다. -
컨텍스트를 확인하십시오.
ls -ldZ /web; ls -lZ /web
예제 출력:
[oracle@ol-selinux ~]$ ls -ldZ /web; ls -lZ /web drwxr-xr-x. 2 root root unconfined_u:object_r:default_t:s0 45 Apr 14 19:00 /web total 0 -rw-r--r--. 1 root root unconfined_u:object_r:default_t:s0 0 Apr 14 19:00 file1 -rw-r--r--. 1 root root unconfined_u:object_r:default_t:s0 0 Apr 14 19:00 file2 -rw-r--r--. 1 root root unconfined_u:object_r:default_t:s0 0 Apr 14 19:00 file3
컨텍스트가 변경되지 않았으며 예상했던 내용을 확인합니다.
-
새로 만든 파일 및 디렉토리의 컨텍스트를 표시합니다.
sudo semanage fcontext -C -l
예제 출력:
[oracle@ol-selinux ~]$ sudo semanage fcontext -C -l SELinux fcontext type Context /web(/.*)? all files system_u:object_r:httpd_sys_content_t:s0
-
컨텍스트에 변경 사항을 적용합니다.
sudo restorecon -R -v /web
예제 출력:
[oracle@ol-selinux ~]$ sudo restorecon -R -v /web Relabeled /web from unconfined_u:object_r:default_t:s0 to unconfined_u:object_r:httpd_sys_content_t:s0 Relabeled /web/file1 from unconfined_u:object_r:default_t:s0 to unconfined_u:object_r:httpd_sys_content_t:s0 Relabeled /web/file2 from unconfined_u:object_r:default_t:s0 to unconfined_u:object_r:httpd_sys_content_t:s0 Relabeled /web/file3 from unconfined_u:object_r:default_t:s0 to unconfined_u:object_r:httpd_sys_content_t:s0
-
새 SELinux 컨텍스트를 제거합니다.
sudo semanage fcontext -d "/web(/.*)?"
- 이 예제에서는 컨텍스트를 생성할 때 사용되는 정규 표현식을 전달하여 파일의 컨텍스트 레코드 시작 부분에 배치합니다. 정규 표현식이므로 따옴표로 묶습니다.
-
변경 사항을 적용하고
default_t
로 반환된 컨텍스트를 확인합니다.sudo restorecon -R -v /web; ls -ldZ /web; ls -lZ /web
표시된 유틸리티는 man
페이지를 확인하십시오. 그런 다음 배운 내용을 사용하여 SELinux를 Enforcing
모드로 유지합니다.
추가 정보
다른 관련 리소스 보기:
추가 학습 자원
docs.oracle.com/learn에서 다른 실습을 살펴보거나 Oracle Learning YouTube 채널에서 보다 무료 학습 컨텐츠에 접근할 수 있습니다. 또한 education.oracle.com/learning-explorer을 방문하여 Oracle Learning Explorer가 됩니다.
제품 설명서는 Oracle Help Center를 참조하십시오.