Chinaunix首页 | 论坛 | 博客
  • 博客访问: 588445
  • 博文数量: 50
  • 博客积分: 4764
  • 博客等级: 上校
  • 技术积分: 597
  • 用 户 组: 普通用户
  • 注册时间: 2008-07-18 09:00
个人简介

资深IT码农,擅长Linux、C/C++、bash

文章分类

全部博文(50)

文章存档

2015年(17)

2014年(2)

2011年(7)

2010年(4)

2009年(20)

分类: LINUX

2009-06-01 09:45:06

SELinux导致登录不进Linux系统的问题与解决

冷胜魁(Seaquester)
lengshengkui@gmail.com
2008-6-4

最近在做Linux USB启动盘时遇到一个问题:用U盘启动,输入用户名和密码之后,屏幕快速的闪过一段提示,然后重新出现login>提示符,始终登录不进去。让我郁闷了好久,在网上搜索了好久,也没有找到答案。

后来我怀疑到SELinux(我的USB启动盘是在Fedora Core 6下面做的,FC6里面打开了SELinux,U盘的rootfs里面的文件都是从FC6里面copy过来的)。在U盘的 /var/log/messages 里面看到这样的信息:

May  28 20:59:43 localhost kernel: audit(1168261183.296:4): avc:  denied  { entrypoint } for  pid=2118 comm="login" name="bash" dev=sda1 ino=77521 scontext=root:system_r:hotplug_t:s0-s0:c0.c1023 tcontext=root:object_r:file_t:s0 tclass=file
May  28 21:00:00 localhost kernel: audit(1168261200.421:5): avc:  denied  { entrypoint } for  pid=2120 comm="login" name="bash" dev=sda1 ino=77521 scontext=root:system_r:hotplug_t:s0-s0:c0.c1023 tcontext=root:object_r:file_t:s0 tclass=file

所以我尝试着在U盘的系统里面禁用SELinux,就可以登录进去了。

禁用SELinux方法:
1) 在grub.conf里面加一个kenrnel的参数(selinux=0):kernel /boot/vmlinuz-2.6.18-1.2798.fc6 ro root=LABEL=ROOT_USB selinux=0
2)修改 /etc/selinux/config 文件,将 SELINUX=Enforcing 改为 SELINUX=disabled。
进一步研究了一下 SELinux,发现,原来是因为Copy到U盘上面的文件的security context变化了(用ls -Z就可以看到),应该在copy的时候加上-Z参数,如:
    cp -aZ

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