SELinux를 지원하지 않는 Linux 시스템(Arch Linux)이 있습니다. 내 시스템에서 이러한 지원을 구성하고 싶지 않습니다. 이제 파일에 일부 SELinux 컨텍스트가 설정된 ext4 볼륨 이미지가 있습니다. 일부 파일의 컨텍스트를 읽고 변경해야 합니다. 이 이미지를 설치하고 ls -lZ
작동 하면 ?
컨텍스트 대신 가 표시됩니다.
시스템 전체에서 SELinux를 활성화하지 않은 경우 파일의 SELinux 컨텍스트에 어떻게 액세스하고 변경합니까? 이것이 가능하지 않다면 전체 시스템에 영향을 미치지 않지만 설치된 이미지 내에서 컨텍스트를 변경할 수 있는 최소 SELinux 구성은 무엇입니까?
답변1
SELinux 컨텍스트는 파일의 확장 속성( xattr
, man 5 attr
)에 저장됩니다. core/attr
이를 사용하기 위한 도구는 소프트웨어 패키지에 제공됩니다.
SELinux 컨텍스트를 사용하여 속성을 검색할 수 있습니다 getfattr
. 하지만 주의할 점이 있습니다. 기본적으로 네임스페이스에 있는 속성 getfattr
만 user.
나열됩니다. 필요한 속성은 네임스페이스에 selinux
있습니다 . 따라서 모든 네임스페이스에 대한 속성을 요청하려면 옵션을 security
전달해야 합니다 ( 예: 값 및 이름 덤프).-m -
-d
$ getfattr -m - -d bin/sh
# file: bin/sh
security.selinux="u:object_r:system_file:s0"
selinux 컨텍스트를 변경하기 위해 setfattr
루트 권한이 필요한 도구를 사용했습니다.
$ sudo setfattr -n security.selinux -v u:object_r:shell_exec:s0 bin/sh
$ getfattr -m - -d bin/sh
# file: bin/sh
security.selinux="u:object_r:shell_exec:s0"