SELinux(Security-Enhanced Linux)是一种在Linux系统上实现强制访问控制(MAC)的安全模块。它通过定义一套规则来限制进程对文件、网络和其他资源的访问。在Ubuntu系统中,SELinux默认是禁用的,但你可以通过以下步骤启用并配置它来控制文件访问。
安装SELinux包:
sudo apt update
sudo apt install selinux-basics selinux-policy-default
启用SELinux:
sudo selinux-activate
验证SELinux状态:
sestatus
你应该看到SELinux status: enabled。
SELinux的配置文件位于/etc/selinux/config。你可以编辑这个文件来更改SELinux的模式。
sudo nano /etc/selinux/config
将SELINUX=enforcing改为SELINUX=disabled可以禁用SELinux,或者改为SELINUX=permissive可以在不强制执行规则的情况下运行SELinux。
SELinux通过标签(labels)来控制文件和目录的访问。每个文件和目录都有一个SELinux标签,SELinux策略使用这些标签来决定是否允许访问。
查看文件和目录的SELinux标签:
ls -Z
更改文件或目录的SELinux标签:
sudo chcon user_home_t /path/to/file_or_directory
这里user_home_t是一个示例标签,你可以根据需要选择合适的标签。
永久更改文件或目录的SELinux标签:
sudo chcon -R user_home_t /path/to/file_or_directory
使用restorecon命令恢复默认标签:
sudo restorecon -Rv /path/to/file_or_directory
假设你想限制某个用户只能访问其主目录中的文件,你可以创建一个自定义的SELinux策略。
安装policycoreutils-python-utils:
sudo apt install policycoreutils-python-utils
生成自定义策略模块:
sudo ausearch -c 'user_home_access' --raw | audit2allow -M mypol
加载自定义策略模块:
sudo semodule -i mypol.pp
验证策略是否生效:
sudo ausearch -m avc -ts recent
通过这些步骤,你可以启用并配置SELinux来控制文件访问,从而提高系统的安全性。