Chinaunix首页 | 论坛 | 博客
  • 博客访问: 103753007
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类: LINUX

2008-04-23 08:23:47

作者: Serge E. Hallyn/黄永兵译 出处:51CTO.com 
 
 
semanage用户管理命令创建了一个新的SELinux用户,SELinux用户不是Linux用户名,但是SELinux上下文的第一部分(id –Z返回的内容)是附加到一个进程和文件的,如果你在终端里敲入id –Z,将会看到system_u或unconfined_u,你的Linux用户名和SELinux用户名是可以相同的,他们不是单独联系的,但是,登陆进程为你的安全上下文使用Linux用户名来选择一个SELinux用户,与前面章节讨论的一样,SELinux用户是受与其有关联的角色限制的,同样,SELinux角色也受与其关联的SELinux域(类型)限制。

你正在使用semanage创建两个SELinux用户,mary_u和bob_u,同时,你也正在指定与其关联的角色,用户bob_u或许仅仅使用cashier_r角色,mary_u仅仅使用mgr_r角色,你还必须给用户home目录类型指定一个前缀。对mary而言,指定mgr,它将为她的home目录扩展为mgr_home_dir_t,并为那里面的文件扩大为mgr_home_t。

Semanage登陆命令把Linux用户名捆绑到SELinux用户上,我们指出mary以mary_u登陆,bob以bob_u登陆。

我们还需要为现金帐簿数据创建预备目录结构:

mkdir /data
mkdir /data/final
mkdir /data/cashier_r
mkdir /data/mgr_r
chmod 777 /data/cashier_r
chmod 777 /data/mgr_r
chmod 777 /data/final

最后,重新标记所有创建并安装的文件,同时包括为新用户创建的目录:
fixfiles -f relabel /data /bin/register.py /home

注意此时我们在策略里并没有定义SELinux用户,相反地,semanage命令创建了用户并将其与合适的角色进行了关联。

如果你只希望bob以cashier_r角色,mary以mgr_r角色登陆的话,所有事情都很好,但是或许你需要用户charlie既能以cashier_r登陆,也能以mgr_r登陆,这就需要一点改动了,首先创建用户:

adduser charlie
passwd charlie
semanage user -a -R mgr_r -R cashier_r -P mgr charlie_u
semanage login -a -s charlie_u charlie

然后告诉PAM模块charlie想以什么角色登陆,首先打开/etc/pam.d/login并替换下面这一行:

session required pam_selinux.so open
为:
session required pam_selinux.so open select_context

这将告诉pam_selinux.so模块用户将能选择一个默认的上下文登陆,紧接着告诉系统基于角色charlie_r的用户的默认类型,再次登陆时,Charlie将允许除默认角色(mgr_r,我们在semanage命令中列出来了)之外再指定一个角色,当你创建用户时可以使用-R标记指定任何一个角色,SELinux将使用需要的角色与其关联的默然类型,因此你必须为cashier_r指定一个默认的类型:
echo "cashier_r:cashier_t" >> \
/etc/selinux/targeted/contexts/default_type

现在Charlie登陆到终端(按Ctrl-Alt-F2转到一个终端下或按前面叙述的进入级别3),他将被问及要以什么角色登陆,默认的将是mgr_r,但是他可以用cashier_r登陆,如果他这样做了,他将能作为一个出纳存储他自己的数据,但是由于我们已经定义了策略,他将不能读取他home目录下的任何文件。

注意register.py不能防止Charlie为他自己的现今帐簿存储数据,不管是作为经理还是出纳登陆,他都可以提交数据,当然,这样的一个改变将非常容易实施。

阅读(223) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~