SELinux에 의해 특정 파일 컨텍스트()로 표시된 파일 시스템의 모든 파일을 setools
찾는 데 사용해야 하는 명령(아마도)에 대한 정보를 찾을 수 없습니다 .fcontext
이제 난 할 수 있어수동파일과 해당 fcontext
파일을 나열한 /etc/selinux/targeted/contexts/files
다음 보고 싶은 특정 콘텐츠를 나열합니다 grep
.fcontext
[root@FedPadSSD files]# cat file_contexts |grep ifconfig_exec_t
/bin/ip -- system_u:object_r:ifconfig_exec_t:s0
/sbin/ip -- system_u:object_r:ifconfig_exec_t:s0
/sbin/tc -- system_u:object_r:ifconfig_exec_t:s0
/usr/bin/ip -- system_u:object_r:ifconfig_exec_t:s0
/usr/sbin/ip -- system_u:object_r:ifconfig_exec_t:s0
/usr/sbin/tc -- system_u:object_r:ifconfig_exec_t:s0
/sbin/ethtool -- system_u:object_r:ifconfig_exec_t:s0
/sbin/ifconfig -- system_u:object_r:ifconfig_exec_t:s0
/sbin/iwconfig -- system_u:object_r:ifconfig_exec_t:s0
/sbin/mii-tool -- system_u:object_r:ifconfig_exec_t:s0
/usr/sbin/ethtool -- system_u:object_r:ifconfig_exec_t:s0
/usr/sbin/ifconfig -- system_u:object_r:ifconfig_exec_t:s0
/usr/sbin/iwconfig -- system_u:object_r:ifconfig_exec_t:s0
/usr/sbin/mii-tool -- system_u:object_r:ifconfig_exec_t:s0
/sbin/ipx_configure -- system_u:object_r:ifconfig_exec_t:s0
/sbin/ipx_interface -- system_u:object_r:ifconfig_exec_t:s0
/sbin/ipx_internal_net -- system_u:object_r:ifconfig_exec_t:s0
/usr/sbin/ipx_configure -- system_u:object_r:ifconfig_exec_t:s0
/usr/sbin/ipx_interface -- system_u:object_r:ifconfig_exec_t:s0
/usr/sbin/ipx_internal_net -- system_u:object_r:ifconfig_exec_t:s0
이 작업을 수행할 때의 문제는 대부분의 경우 뭔가 잘못되었거나 누락되었거나 불완전한 것처럼 보인다는 것입니다.수동SELinux "데이터베이스"(더 나은 단어가 없음)와 관련되어 있기 때문입니다. setools
따라서 시스템 전체 구성 파일을 사용하지 않고도 이 작업을 수행할 수 있는 패키지나 관련 패키지에 이미 존재하는 것이 있는지 궁금합니다 .
답변1
semanage fcontext -l | grep whatever_exec_t
아마도 특정 컨텍스트에 대한 태그 규칙을 찾는 가장 좋은 방법일 것입니다.
태그 규칙 대신 현재 파일 컨텍스트를 검색하려면 ls -Z
SELinux 인식 find
지원 -context <glob>
테스트 및 %Z
형식 지정자를 사용할 수 있습니다 -printf
. 전체 컨텍스트 문자열이 일치하므로 <glob>
와일드카드는 유형을 일치시킬 때만 사용됩니다. 내 Centos 7.3의 예:
#find / -xdev -type f -context '*ifconfig_exec_t*' -printf '%-50Z%p\n'
system_u:object_r:ifconfig_exec_t:s0 /usr/sbin/ip
unconfined_u:object_r:ifconfig_exec_t:s0 /usr/sbin/ifconfig
system_u:object_r:ifconfig_exec_t:s0 /usr/sbin/ethtool
system_u:object_r:ifconfig_exec_t:s0 /usr/sbin/iw
unconfined_u:object_r:ifconfig_exec_t:s0 /usr/sbin/mii-tool
system_u:object_r:ifconfig_exec_t:s0 /usr/sbin/tc
답변2
배포 패키지 ifconfig_selinux
매뉴얼 페이지(Fedora에 포함되어 있는 경우)selinux 전략 개발) 다음 내용을 알려줍니다.
The following file types are defined for ifconfig:
ifconfig_exec_t
- Set files with the ifconfig_exec_t type, if you want to transition an
executable to the ifconfig_t domain.
Paths:
/bin/ip, /sbin/ip, /sbin/tc, /usr/bin/ip, /usr/sbin/ip,
/usr/sbin/tc, /sbin/ethtool, /sbin/ifconfig, /sbin/iwconfig,
/sbin/mii-tool, /usr/sbin/ethtool, /usr/sbin/ifconfig,
/usr/sbin/iwconfig, /usr/sbin/mii-tool, /sbin/ipx_configure,
/sbin/ipx_interface, /sbin/ipx_internal_net, /usr/sbin/ipx_config‐
ure, /usr/sbin/ipx_interface, /usr/sbin/ipx_internal_net
ifconfig_exec_t를 사용하면 sesearch -all -t ifconfig_exec_t
ifconfig_exec_t가 대상으로 하는 파일에서 어떤 변환이 수행되는지 확인할 수 있으며, 이는 해당 컨텍스트가 있는 파일을 찾는 데 도움이 될 수 있습니다.
답변3
현재 RHEL7.1에서 - 이것이 항상 거기에 있었고 놓쳤는지 확실하지 않습니다. 다음 명령을 실행하여 모든 파일 컨텍스트 목록을 가져온 다음 출력을 다음으로 파이프할 수 있습니다 grep
.
# semanage fcontext -l |grep ifconfig_exec_t
/bin/ip regular file system_u:object_r:ifconfig_exec_t:s0
/sbin/ethtool regular file system_u:object_r:ifconfig_exec_t:s0
/sbin/ifconfig regular file system_u:object_r:ifconfig_exec_t:s0
/sbin/ip regular file system_u:object_r:ifconfig_exec_t:s0
/sbin/ipx_configure regular file system_u:object_r:ifconfig_exec_t:s0
/sbin/ipx_interface regular file system_u:object_r:ifconfig_exec_t:s0
/sbin/ipx_internal_net regular file system_u:object_r:ifconfig_exec_t:s0
/sbin/iw regular file system_u:object_r:ifconfig_exec_t:s0
/sbin/iwconfig regular file system_u:object_r:ifconfig_exec_t:s0
/sbin/mii-tool regular file system_u:object_r:ifconfig_exec_t:s0
/sbin/tc regular file system_u:object_r:ifconfig_exec_t:s0
/usr/bin/ip regular file system_u:object_r:ifconfig_exec_t:s0
/usr/sbin/ethtool regular file system_u:object_r:ifconfig_exec_t:s0
/usr/sbin/ifconfig regular file system_u:object_r:ifconfig_exec_t:s0
/usr/sbin/ip regular file system_u:object_r:ifconfig_exec_t:s0
/usr/sbin/ipx_configure regular file system_u:object_r:ifconfig_exec_t:s0
/usr/sbin/ipx_interface regular file system_u:object_r:ifconfig_exec_t:s0
/usr/sbin/ipx_internal_net regular file system_u:object_r:ifconfig_exec_t:s0
/usr/sbin/iw regular file system_u:object_r:ifconfig_exec_t:s0
/usr/sbin/iwconfig regular file system_u:object_r:ifconfig_exec_t:s0
/usr/sbin/mii-tool regular file system_u:object_r:ifconfig_exec_t:s0
/usr/sbin/tc regular file system_u:object_r:ifconfig_exec_t:s0
답변4
find 명령을 사용하면 보안 컨텍스트별로 검색할 수 있습니다.
예를 들어 "unlabeled_t" 유형의 모든 파일을 검색해 보겠습니다.
find / -type f -context *unlabeled_t*
첫 번째 부분인 "find / -type f"는 시스템의 모든 일반 파일을 검색하도록 지시합니다.
"-context *unlabeled_t*" 필터는 unlabeled_t 유형의 모든 파일을 표시합니다. 시작 부분의 사용자/역할이나 끝 부분의 MLS/MCS 컨텍스트에 관심이 없기 때문에 시작과 끝 부분에 와일드카드를 사용해야 합니다.