在我的 centos 7 机器上,我有以下信息:
[wmsodbc]> pwd
/WMSData1/tomcat/latest
[wmsodbc]> ls -lrt /WMSData1/tomcat/latest
lrwxrwxrwx. 1 tomcat tomcat 37 May 2 19:26 /WMSData1/tomcat/latest -> /WMSData1/tomcat/apache-tomcat-8.5.37
[wmsodbc]> ls -ltd logs
drwxr-xr-x. 2 tomcat tomcat 4096 May 10 13:05 logs
[wmsodbc]> ls -lZd logs
drwxr-xr-x. tomcat tomcat system_u:object_r:default_t:s0 logs
[wmsodbc]>
Run Code Online (Sandbox Code Playgroud)
我曾多次尝试将文件上下文设置为 var_log_t,但没有成功。请参阅下面的尝试。从各种网站在线采取的所有步骤。首先,尝试1:
[wmsodbc]> ls -lZd logs
drwxr-xr-x. tomcat tomcat system_u:object_r:default_t:s0 logs
[wmsodbc]> more /etc/selinux/targeted/contexts/files/file_contexts.local
# This file is auto-generated by libsemanage
# Do not edit directly.
/WMSData1/tomcat/latest/logs(/.*)? system_u:object_r:var_log_t:s0
[wmsodbc]> sudo restorecon -vR logs/
[wmsodbc]> ls -lZd logs
drwxr-xr-x. tomcat tomcat system_u:object_r:default_t:s0 logs
[wmsodbc]>
Run Code Online (Sandbox Code Playgroud)
并尝试 2,使用稍微不同的方法:
[wmsodbc]> more /etc/selinux/targeted/contexts/files/file_contexts.local
# This file is auto-generated by libsemanage
# Do not edit directly.
[wmsodbc]> ls -lZd logs
drwxr-xr-x. tomcat tomcat system_u:object_r:default_t:s0 logs
[wmsodbc]> sudo chcon system_u:object_r:var_log_t:s0 /WMSData1/tomcat/latest/logs/
[wmsodbc]> ls -lZd logs
drwxr-xr-x. tomcat tomcat system_u:object_r:var_log_t:s0 logs
[wmsodbc]> more /etc/selinux/targeted/contexts/files/file_contexts.local
# This file is auto-generated by libsemanage
# Do not edit directly.
[wmsodbc]> sudo semanage fcontext -a -t var_log_t '/WMSData1/tomcat/latest/logs(/.*)?'
[wmsodbc]> ls -lZd logs
drwxr-xr-x. tomcat tomcat system_u:object_r:var_log_t:s0 logs
[wmsodbc]> sudo restorecon -v -R logs/
restorecon reset /WMSData1/tomcat/apache-tomcat-8.5.37/logs context system_u:object_r:var_log_t:s0->system_u:object_r:default_t:s0
[wmsodbc]>
Run Code Online (Sandbox Code Playgroud)
那么我做错了什么?显然,chcon 是暂时的。但与 semanage 不同,它可以更改文件上下文。然后我们清楚地看到 restorecon 将其改回“default_t”。所以第二个问题是为什么它将它改回“default_t”?
难道“最新”是软链接,而 semanage 不喜欢完整路径中的软链接?我想我可能已经通过直接进入目录“最新”指向并使用那个绝对路径来让它工作,但等待看看它是否能解决我的问题。如果有人能指出我证明这是问题所在,那就太好了。
难道“最新”是软链接,而 semanage 不喜欢完整路径中的软链接?
是的,这正是原因。
从 man 3 matchpathcon
NAME
matchpathcon, matchpathcon_index - get the default SELinux security context for the specified path from the file contexts configuration
...
DESCRIPTION
...
matchpathcon() matches the specified pathname, after transformation via realpath(3)...
Run Code Online (Sandbox Code Playgroud)
只是为了澄清,realpath(3)扩展路径中的所有符号链接以尝试定义文件的绝对规范路径。
您可能可以指定 PCRE/WMSData1/tomcat/[^/]+/logs(/.*)?来避免该问题,这意味着您不必不断添加新的文件上下文。
| 归档时间: |
|
| 查看次数: |
552 次 |
| 最近记录: |