6.3. 限制现有 Linux 用户:semanage login
如果 Linux 用户映射到 SELinux
unconfined_u 用户(默认行为),并且您要更改它们映射到的 SELinux 用户,请使用 semanage login 命令。以下示例创建一个名为 newuser 的新 Linux 用户,然后将 Linux 用户映射到 SELinux user_u 用户:
过程 6.2. 将 Linux 用户映射到 SELinux 用户
- 以 root 用户身份,创建一个新的 Linux 用户(
newuser)。因为此用户使用默认的映射,所以它不会出现在 semanage login -l 输出中:~]# useradd newuser~]# semanage login -l Login Name SELinux User MLS/MCS Range Service __default__ unconfined_u s0-s0:c0.c1023 * root unconfined_u s0-s0:c0.c1023 * system_u system_u s0-s0:c0.c1023 * - 要将 Linux
newuser用户映射到 SELinuxuser_u用户,请以 root 用户身份输入以下命令:~]# semanage login -a -s user_u newusera选项添加新记录,而-s选项指定要将 Linux 用户映射到的 SELinux 用户。最后的参数newuser是您要映射到指定 SELinux 用户的 Linux 用户。 - 要查看 Linux
newuser用户和user_u之间的映射,请再次使用semanage工具:~]# semanage login -l Login Name SELinux User MLS/MCS Range Service __default__ unconfined_u s0-s0:c0.c1023 * newuser user_u s0 * root unconfined_u s0-s0:c0.c1023 * system_u system_u s0-s0:c0.c1023 * - 以 root 用户身份,为 Linux
newuser用户分配密码:~]# passwd newuser Changing password for user newuser. New password: Enter a password Retype new password: Enter the same password again passwd: all authentication tokens updated successfully. - 从当前会话中注销,然后以 Linux
newuser用户身份登录。输入以下命令查看newuser的 SELinux 上下文:~]$ id -Z user_u:user_r:user_t:s0 - 从 Linux
newuser的会话中注销,然后使用您的帐户重新登录。如果您不希望 Linuxnewuser用户,请以 root 用户及其主目录来移除它:~]# userdel -r newuser以 root 用户身份,删除 Linuxnewuser用户和user_u之间的映射:~]# semanage login -d newuser~]# semanage login -l Login Name SELinux User MLS/MCS Range Service __default__ unconfined_u s0-s0:c0.c1023 * root unconfined_u s0-s0:c0.c1023 * system_u system_u s0-s0:c0.c1023 *