与selinux有关的一个报错解决

今日登录服务器查看到这条信息:

提示信息

查看信息得知是每日定时任务里面的错误:
/usr/bin/updatedb: can not open `/etc/updatedb.conf': Permission denied

报错信息

原本以为是updatedb.conf的权限问题,修改为如下权限之后还是出现故障。

尝试修改权限

最后在网上找到说可能和SELINUX的上下文权限有关。需要修改下就可以了。
此处出现restorecon的命令,另外关于上下文权限还有个命令chcon

ls -lZ /etc/updatedb.conf 
restorecon -RFv /etc/updatedb.conf
解决故障

这些设置与selinux有关:
有关上面的unconfined_u:object_r:user_tmp_t:s0的含义请看下文:
一个安全上下文由三部分组成:用户、角色和类型标识符。常常用下面的格式指定或显示安全上下文:
USER:ROLE:TYPE[LEVEL[:CATEGORY]]
1 USER
1)user identity:类似Linux系统中的UID,提供身份识别,用来记录身份;安全上下文的一部分;

  1. 三种常见的 user:

• user_u :普通用户登录系统后的预设;
• system_u :开机过程中系统进程的预设;
• root :root 登录后的预设;

  1. 在 targeted policy 中 users 不是很重要;
  2. 在strict policy 中比较重要,所有预设的 SELinux Users 都是以 “_u” 结尾的,root 除外。
    2 ROLE
  3. 文件、目录和设备的role:通常是 object_r;
  4. 程序的role:通常是 system_r;
  5. 用户的role:targeted policy为system_r; strict policy为sysadm_r、staff_r、user_r;用户的role,类似系统中的GID,不同角色具备不同的的权限;用户可以具备多个role;但是同一时间内只能使用一个role;
  6. 使用基于RBAC(Roles Based Access Control) 的strict和mls策略中,用来存储角色信息
    3 TYPE
  7. type:用来将主体(subject)和客体(object)划分为不同的组,给每个主体和系统中的客体定义了一个类型;为进程运行提供最低的权限环境;
  8. 当一个类型与执行中的进程相关联时,其type也称为domain;
  9. type是SElinux security context 中最重要的部位,是 SELinux Type Enforcement 的心脏,预设值以_t结尾;
    LEVEL和CATEGORY:定义层次和分类,只用于mls策略中
    • LEVEL:代表安全等级,目前已经定义的安全等级为s0-s15,等级越来越高
    • CATEGORY:代表分类,目前已经定义的分类为c0-c1023

如果需要继续连接SELINUX的详细内容可以查看:
SELinux深入理解

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容