私はfreetdsの空のconfファイルを作成しましたが、権限が間違っていることがわかりました。
[root@box etc]# touch freetds.conf.new
[root@box etc]# ll -lZ freetds.conf*
-rw-r--r--. root root system_u:object_r:etc_t:s0 freetds.conf
-rw-rw----. root root unconfined_u:object_r:etc_t:s0 freetds.conf.new
だから私は次のことを試みます:
[root@box]# semanage fcontext -a -t system_u /etc/freetds.conf.new
しかし、これは失敗します。
ValueError: Type system_u is invalid, must be a file or device type
freetds.conf.newファイルのラベルをからに変更するには何を使用する必要がありますかunconfined_u
?system_u
ベストアンサー1
「一時」ラベルの変更は、chcon
次のコマンドを使用して行われます。
bash-4.2# touch freetds.conf.new
bash-4.2# ls -lZ freetds.conf.new
-rw-r--r--. root root unconfined_u:object_r:etc_t:s0 freetds.conf.new
bash-4.2# chcon -t etc_t -u system_u freetds.conf.new
bash-4.2# ls -lZ freetds.conf.new
-rw-r--r--. root root system_u:object_r:etc_t:s0 freetds.conf.new
永続的な変更はsemanage
コマンドによって行われます。/etc/selinux/targeted/contexts/files/file_contexts.local
これにより、適用可能な行が追加(または変更)されますrestorecon
。
それでは新しいファイルから始めましょう。
bash-4.2# rm freetds.conf.new
bash-4.2# touch freetds.conf.new
bash-4.2# ls -lZ freetds.conf.new
-rw-r--r--. root root unconfined_u:object_r:etc_t:s0 freetds.conf.new
これにルールを追加できます。
bash-4.2# semanage fcontext -a -t etc_t -s system_u /etc/freetds.conf.new
bash-4.2# cat /etc/selinux/targeted/contexts/files/file_contexts.local
# This file is auto-generated by libsemanage
# Do not edit directly.
/etc/freetds.conf.new system_u:object_r:etc_t:s0
しかし、これはファイルを変更しませんでした
bash-4.2# ls -lZ freetds.conf.new
-rw-r--r--. root root unconfined_u:object_r:etc_t:s0 freetds.conf.new
それでは適用しましょう。
bash-4.2# restorecon -vF /etc/freetds.conf.new
restorecon reset /etc/freetds.conf.new context unconfined_u:object_r:etc_t:s0->system_u:object_r:etc_t:s0
bash-4.2# ls -lZ /etc/freetds.conf.new
-rw-r--r--. root root system_u:object_r:etc_t:s0 /etc/freetds.conf.new
ETA:更新後にfreetds.conf.new
コピーする場合はfreetds.conf
このコマンドを使用する方がchcon
簡単で、名前が正しい場合は既存のルールセットが再タグ付けを処理します。semanage
これが最終名の場合にのみその形式を使用します。