根据 SELinux 授予 sudo

根据 SELinux 授予 sudo

我最近遇到了 SELinux 和sudo。是否可以sudo在 SELinux 宽松时允许用户,而在 SELinux 强制执行时阻止某些用户而允许其他用户?

我看过部分3.9. 使用 sudo 和 sysadm_r 角色限制管理员 RedHat 使用 SELinux,我知道可以授予某人sysadm_rsudo 访问权限。但是,如何根据 SELinux 是强制的还是宽容的来拒绝某些用户?

答案1

SELinux 策略在一系列规则中使用这些上下文,这些规则定义了进程如何相互交互以及与各种系统资源交互。默认情况下,除非规则明确授予访问权限,否则该策略不允许任何交互。

因此,您需要查找现有的默认/添加的策略,如果它允许用户使用,则将其删除sudo,然后您可以添加您想要的用户。

答案2

将 bob 和 alice 添加到staff_u

# semanage login -l

Login Name           SELinux User         MLS/MCS Range        Service

__default__          unconfined_u         s0-s0:c0.c1023       *
alice                staff_u              s0-s0:c0.c1023       *
bob                  staff_u              s0-s0:c0.c1023       *

在 sudoers 文件中添加以下内容:

alice ALL=(ALL) TYPE=staff_t ROLE=staff_r ALL
bob ALL=(ALL) TYPE=sysadm_t ROLE=sysadm_r ALL

现在,如果强制执行 SELinux,则只bob允许运行。alice在允许的情况下才允许运行:

[alice@vm ~]$ getenforce 
Enforcing
[alicevm ~]$ sudo su
[sudo] password for alice: 
su: avc.c:74: avc_context_to_sid_raw: Assertion `avc_running' failed.
Aborted
[alice@vm ~]$ getenforce 
Permissive
[alice@vm ~]$ sudo su
[root@vm alice]# 

相关内容