semanage fcontext -a -t puppet_etc_t "/etc/puppet/environments(/.*)?"
cat /etc/selinux/targeted/contexts/files/file_contexts.local
# This file is auto-generated by libsemanage
# Do not edit directly.
/etc/puppet/environments(/.*)? system_u:object_r:puppet_etc_t:s0
touch /etc/puppet/environments/hello1
ls -Z /etc/puppet/environments/hello1
-rw-r--r--. root root unconfined_u:object_r:puppet_etc_t:s0 /etc/puppet/environments/hello1
почему этот файл создан как «unlimited_u», а не как «system_u»? Как я могу это изменить? Спасибо.
Потому что вы создали файл при входе в систему как неограниченный пользователь.
Поскольку в целевой политике пользователя почти всегда игнорируют, это действительно не проблема.
Если вы действительно хотите его изменить, вы можете использовать chcon
сделать это. Например:
# ls -Z /etc/nsswitch.conf.ipabkp
-rw-r--r--. root root unconfined_u:object_r:etc_t:s0 /etc/nsswitch.conf.ipabkp
# chcon -u system_u /etc/nsswitch.conf.ipabkp
# ls -Z /etc/nsswitch.conf.ipabkp
-rw-r--r--. root root system_u:object_r:etc_t:s0 /etc/nsswitch.conf.ipabkp