这将允许你使用应用然后收集 AVC 的其它数据,你可以结合audit2allow来写一个本地策略。一旦完成你就不会看到新的 AVC 的拒绝消息,你就可以通过运行以下命令从许可中删除程序:
semanage permissive -d gpg_pinentry_t
用 SELinux 的用户 staff_r 使用你的工作站SELinux 带有角色(role)的原生实现,基于用户帐户相关角色来禁止或授予某些特权。作为一个管理员,你应该使用staff_r角色,这可以限制访问很多配置和其它安全敏感文件,除非你先执行sudo。
默认情况下,用户以unconfined_r创建,你可以自由运行大多数应用,没有任何(或只有一点)SELinux 约束。转换你的用户到staff_r角色,运行下面的命令:
usermod-Z staff_u [username]
你应该退出然后登录新的角色,届时如果你运行id -Z,你将会看到:
staff_u:staff_r:staff_t:s0-s0:c0.c1023
在执行sudo时,你应该记住增加一个额外标志告诉 SELinux 转换到“sysadmin”角色。你需要用的命令是:
sudo-i -r sysadm_r
然后id -Z将会显示:
staff_u:sysadm_r:sysadm_t:s0-s0:c0.c1023
警告:在进行这个切换前你应该能很顺畅的使用ausearch和audit2allow,当你以staff_r角色运行时你的应用有可能不再工作了。在写作本文时,已知以下流行的应用在staff_r下没有做策略调整就不会工作:
Chrome/Chromium
Skype
VirtualBox
切换回unconfined_r,运行下面的命令:
usermod-Z unconfined_u [username]
然后注销再重新回到舒适区。
延伸阅读IT 安全的世界是一个没有底的兔子洞。如果你想深入,或者找到你的具体发行版更多的安全特性,请查看下面这些链接:
许可这项工作在创作共用授权4.0国际许可证许可下。