我刚刚为 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
Run Code Online (Sandbox Code Playgroud)
所以我试过:
[root@box]# semanage fcontext -a -t system_u /etc/freetds.conf.new
Run Code Online (Sandbox Code Playgroud)
但这失败了:
ValueError: Type system_u is invalid, must be a file or device type
Run Code Online (Sandbox Code Playgroud)
我应该使用什么unconfined_u
来system_u
将文件 freetds.conf.new 上的标签从 更改为?
Ste*_*ris 22
“临时”标签更改是通过以下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
Run Code Online (Sandbox Code Playgroud)
将通过该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
Run Code Online (Sandbox Code Playgroud)
我们可以为此添加一个规则:
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
Run Code Online (Sandbox Code Playgroud)
不过,这还没有改变文件
bash-4.2# ls -lZ freetds.conf.new
-rw-r--r--. root root unconfined_u:object_r:etc_t:s0 freetds.conf.new
Run Code Online (Sandbox Code Playgroud)
所以现在我们应用它:
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
Run Code Online (Sandbox Code Playgroud)
ETA:如果您要在更新后将其复制freetds.conf.new
到freetds.conf
,那么我可能会坚持使用该chcon
命令;它更容易,并且现有规则集将在具有正确名称时处理重新标记。semanage
如果这是最终名称,我只会使用该表单。
归档时间: |
|
查看次数: |
29319 次 |
最近记录: |