프로덕션 환경을 스테이징 환경과 동일하게 만들려고 합니다. 프로덕션에서는 SELinux 컨텍스트가 적용됩니다. 디렉토리에 파일을 나열하면 다음과 같은 권한 문자열 끝에 점이 표시됩니다.
drwxrwxr-x.
모든 컨텍스트를 재귀적으로 삭제하는 방법은 무엇입니까? /etc/selinux/config에서 SELinux를 비활성화했지만 재부팅할 때 디렉터리의 파일을 나열하면 컨텍스트가 계속 표시됩니다.
답변1
SELinux 파일 컨텍스트는 파일 시스템 확장 속성에 저장되며 사용할 수 있습니다 sefattr -x security.selinux [file]
.
find
재귀적으로 적용하려면 재귀 옵션이 없으므로 명령을 사용할 수 있습니다 setfattr
. 예를 들어
find . -type d,f -exec setfattr -x security.selinux {} \;
답변2
먼저 SELINUX가 비활성화되어 있는지 확인하십시오.
5.4.2. SELINUX 비활성화
SELinux가 비활성화된 경우
SELinux 정책이 전혀 로드되지 않습니다. 이는 적용되지 않으며 AVC 메시지가 기록되지 않습니다. 따라서 섹션 2.1, “SELinux 실행의 이점”에 나열된 SELinux 실행의 모든 이점이 손실됩니다.
중요한
Red Hat은 SELinux를 영구적으로 비활성화하는 것보다 허용 모드를 사용할 것을 강력히 권장합니다. 허용 모드에 대한 자세한 내용은 섹션 5.4.1.2, “허용 모드”를 참조하십시오. SELinux를 영구적으로 비활성화하려면 다음 단계를 따르십시오.
절차 5.4. SELinux 비활성화
/etc/selinux/config 파일에서 SELINUX=disabled를 구성합니다.
SELINUXTYPE=대상시스템을 다시 시작하십시오. 재부팅 후 getenforce 명령이 비활성화된 상태로 반환되는지 확인합니다.
$ 권력을 얻다
장애가 있는
파일에서 SELinux 컨텍스트를 제거하는 방법
다음 명령은 "점"을 제거합니다(SELinux 컨텍스트가 제거됨). 그러면 /home의 모든 파일과 디렉터리에서 모든 SELinux 컨텍스트가 제거됩니다.
$find /home -exec sudo setfattr -h -x security.selinux {} \;
이전("점"이 나타남)
$ ls -lrt / |grep home
drwxr-xr-x.22 루트 루트 4.0K 9월 9일 16:25 /home
이후("포인트"가 제거됨)
$ ls -lrt / |grep home
drwxr-xr-x 22 루트 루트 4.0K 9월 9일 16:26 /home