SE Linux初级教程:添加新的用户域

现在让我们建立一个我们自己的用户域, 并把它叫做second_t 。 我们也将会建立一个新的角色叫做second_r 。 要建立second_r 角色首先在前面的部分(刚刚分配了 user_r 角色并且并不真正建立这样的用户) 中一步一步跟着作,但是不要运行第 5.2 节中的make命令。在你已经编辑 /etc/selinux/user之后,回到这里并且继续下一部分,关于编辑使用者领域文件的部分。

关于为什么我不想要你运行make指令的原因,是因为早先的部分刚刚分配了缺省的一个 user_r 的角色。 但是我们将会建立一个新的角色,而且同样地我们需要一个新的域与它搭配。以下部分进行概略说明。

6.1编辑用户的域文件

用户域的配置文件是 /etc/selinux/domains/user.te 。请先看一遍。 添加以下几行:

full_user_role(second)

allow system_r second_r

allow sysadm_r second_r

在文件的什么位置添加是无所谓的,在上面添加注释:

# if adding new user roles make sure you edit the in_user_role macro in

# macros/user_macros.te to match

再来编辑 /etc/selinux/macros/user_macros.te 文件进行匹配。 打开此文件并找到 in_user_role (差不多在文件的结尾)这行。添加 "role second_r types $1;" 现在这部分文件应该像这样:

undefine(`in_user_role')

define(`in_user_role', `

role user_r types $1;

role second_r types $1;

')

回到我们编辑的第一个文件 (full_user_role(second)), 这样我们就建立了second_t域和second_home_dir_t类型以及 second_home_t 类型(用户主目录的类型和主目录里文件的类型)。一个 second_tmp_t类型 ,当在/tmp目录下建立文件时。 类型 second_tmpfs_t是在tmpfs中共享内存文件系统中建立文件的上下文。 最后,second_tty_device_t和 second_devpts_t类型分别被用来标记终端设备(tty)和虚拟终端设备。当然也建立了相应的策略应用于这些标记。

SE Linux内部并不支持任何类型的标定, 以及类型/域的继承,等。当然策略语言的编写也不支持这些特征。 所以我们用M4宏编译器来设置简单的域和类型。

我们现在来建立一个用户在这个新域中使用 (second_t)并访问 second_r 角色。

6.2再次建立一个新的测试用户

使用 useradd, 建立一个新的用户。(让我们假设用户叫做 " spike") 把spike加入 /etc/selinux/users 只给予他对 second_r 角色的访问权和没有其它权限。 然后运行

make -C /etc/selinux load

应用新的策略。

接下来是设置缺省域和新的角色。 我们可以编辑 /etc/security/default_type 文件并添加以下行:

second_r:second_t

我们现在必须手动设定/home/spike 和它的上下文。useradd ,命令不会做这些事情,它只支持重新标记用户的 user_r 角色。 运行下面的命令:

find /home/spike -print0 | xargs -0 chcon -h system_u:object_r:second_home_t ;\

chcon -h system_u:object_r:second_home_dir_t /home/spike

现在试着用spike用户身份登录。

时间: 2024-09-07 07:14:17

SE Linux初级教程:添加新的用户域的相关文章

SE Linux初级教程:介绍

本文的最原始版本为2004年3月所写,此份HOWTO是作者在今年2月根据最新的SE Linux所作的修改后的版本.新的SE Linux与以前的有比较大的变化,而且这项技术本身也正在飞速的发展,并未最后成熟.阅读本文是需要对Linux本身有一定深度的了解作为基础的.本文并不是Linux的初级教程,但却是SE Linux技术的初级教程. 新的SE Linux是基于2.6.*内核的,但是仍然支持2.4.*的内核.这份文档的大部分内容是原来的,我在需要修改的地方做了调整. 这份文档是美国http://w

SE Linux初级教程:总揽

接下来是有关在什么情况下你该使用SE Linux和它的基本使用的简短介绍. 2.2 部分规定了后面章节将常使用的的术语., 所以请熟悉他们. 2.1 为什么使用SE Linux? SE Linux 可以为你的系统提供较棒的安全防护. 使用者能被分配预先定义好的角色,以便他们不能存取文件或者访问他们不拥有的程序. 这可不是简单的 " chmod 777" 同等物操作. 这在角色, 或他所在的安全上下文已经限制接触的文件和其他的资源的使用者定义中是不同于一般的 Unix 许可权限的,除了在

SE Linux初级教程:建立用户帐户

现在来作点有意思的事情! 我们将会建立一个 SE Linux 用户并分配给他一个角色,然后为用户设定默认的安全上下文. 在旧的SE Linux环境下, 封装程序的建立用 vipw (svipw)来设置,比如, useradd (suseradd), passwd (spasswd), chfn (schfn) 等, 在新的 SE Linux环境下, 这些程序有其它的名称. 5.1 建立一个新的用户 我们现在建立一个新用户.我们叫它setest. 转换到 sysadm_r:sysadm_t 角色:

SE Linux初级教程:安装

接下来的一章我们讲解释怎样获得软件包以及安装, 和怎样获得新的SE Linux的软件包以及安装. 因为我运行的是http://www.aliyun.com/zixun/aggregation/33836.html">Debian,所以我演示的安装过程式基于它的. 我们假定你知道该怎样在你所用的发布版上安装软件, 编译内核,并且给内核打补丁. 如果你是从旧的SE Linux上升级的, 并且运行了 SE Linux kernel, 请进入permissive 模式 (用 avc_toggle

Linux 使用fdisk添加新分区

Linux系统由于数据累计增长.前期存储规划不合理等诸多因素,出现存储不够用的情况时,此时就需要扩展逻辑分区或添加新的逻辑分区.下面介绍一下通过使用fdsik添加新的逻辑分区.   首先使用df命令检查文件系统的磁盘空间占用情况 [root@DB-ONE-SERVER~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/VolGroup00-sda3 30G 2.4G 26G 9% / /dev/sda1 99M 23M

如何在现有的Linux系统上添加新的磁盘

作为一个系统管理员,我们会有这样的一些需求:作为升级服务器容量的一部分,或者有时出现磁盘故障时更换磁盘,我们需要将新的硬盘配置到现有服务器. 在这篇文章中,我会向你逐步介绍添加新硬盘到现有 RHEL/CentOS 或者 Debian/Ubuntu Linux 系统的步骤. 重要:请注意这篇文章的目的只是告诉你如何创建新的分区,而不包括分区扩展或者其它选项. 我使用 fdisk 工具 完成这些配置. 我已经添加了一块 20GB 容量的硬盘,挂载到了 /data 分区. fdisk 是一个在 Lin

linux CentOS5.5 添加Root权限用户方法总结

v操作系统:CentOS 5.5 1.添加用户,首先用adduser命令添加一个普通用户:  代码如下 复制代码 #adduser junguoguo//添加一个名为junguoguo的用户 #passwd junguoguo //修改密码 Changing password for user junguoguo. New UNIX password: //在这里输入新密码 Retype new UNIX password: //再次输入新密码 passwd: all authenticatio

麒麟Linux系统怎么添加新账户

  惠普电脑麒麟Linux系统如何创建账户 1.点击开始-控制面板 2.选择系统中的用户账户 3.点击添加用户,然后在弹出的对话框中输入新创建的用户名称,密码.输入完毕点击确定后新用户即可创建成功.

在 Linux 中无人看守批量创建用户的方法

介绍 作为一名 Linux 系统管理员,你有时必须向系统添加新的用户帐户.为此,经常使用adduser 命令.当涉及到多个用户的创建时,adduser 命令可能会变得相当无聊和耗时.这篇短文旨在为 Linux 系统管理员提供一种简单而无人值守的方式来批量创建用户.newusers 命令将帮助你通过从预填文件中获取信息来创建多个用户. 要求 访问 Linux 计算机的特权. 约定 # - 给定命令需要以 root 用户权限运行或者使用 sudo 命令 $ - 给定命令以常规权限用户运行 如何进行