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
阅读(3516) | 评论(0) | 转发(0) |