lfs下安装selinux需要重新安装的程序

来源:互联网 发布:pc版直播软件 编辑:程序博客网 时间:2024/06/08 05:48

安装完selinux用户空间的lib和程序以后,要使用selinux还需要重新安装几个应用程序。

开始摸着弄得,很麻烦,中间有很多东西是用的时候有问题才发现的。

后来才发现在selinux userspace官网的Userland Packages里面大部分都写了,网址见下:

http://userspace.selinuxproject.org/trac/wiki/Userland

下面还是大概写一下为什么要安装吧,要是遇到问题了也能做个参考。


1、SysVinit   这个是一定要重新编译的。而且要打一个补丁。我用的gentoo里面的补丁。加上这个补丁以后,在init开始运行的前期就会根据selinux的config文件加载相应的policy。并进入相应的模式 (enforcing、permissive、disabled)。

                    补丁可以在gentoo的各个镜像的 distfiles/sysvinit-xxx-patches.tar.bz2里面找到。补丁文件不一定能直接使用,自己稍作修改就行了。编译的时候我还是按照lfs的弄得,但要 make的时候记着要:

                        make WITH_SELINUX=yes。


2、coreutils   这个要重新configure、make一下,链接到libselinux。不需要特殊的参数,configure会自动判断libselinux的。

                  不重新编译这个的话,ls、id那写的 -Z 参数都没用的,都会显示 ? 或者 不正常的东西。chcron也用不了。


3、pam       开始的时候没安装这个库,结果登陆了以后通过id -Z看到的用户的信息一直都是system_u:system_r (semange login 里面都设了还是不对)。开始郁闷了很久,后来看到Harry Ciao的《SELinux 学习笔记》有一个地方提到了PAM,才开始怀疑用户登陆时候脚色的切换是不是依靠pam。然后才装了,结果就对了。安装方法参考blfs,configure的时候加个 --enable-selinux的参数。

               另外:安装linux-pam后要重新编译 policycoreutils,否则newrole 的时候会报: cannot find your entry in the shadow passwd file.

 

4、shadow   编译完一定要重新编译一下这个,blfs里面说了。而且selinux好像也需要重新编译这个。不需要加参数,会自动判断selinux和pam的。


5、utils-linux   selinux userspace的Userland Packages里面说了就弄了,configure的时候需要加上  --with-selinux 的参数


6、udev     这个官网里面没说。发现这个问题是在relable系统的时候,/dev/console明明已经relable成console_device_t。但是重启完了以后就变成 device_t了。/dev/tty* 也是。后来就怀疑到这了。感觉像udev重新创建/dev的时候没relable。就试着重装了一下,OK了。configure的时候需要加上  --with-selinux 的参数


另外,当时newrole -r xxx_r 的时候报  Error! Shell is not valid. 的错误。看了下newrole的代码,它会去  /etc/shells 里面判断当前的shell是否合法的?感觉很奇怪。LFS里面没有这个文件。自己建一个吧,内容如下就行:

# /etc/shells: valid login shells
/bin/bash
/bin/sh


原创粉丝点击