У меня очень странные вещи с SELinux.
Мой пост может быть немного беспорядочным, потому что я не совсем понимаю, что происходит.
Перед всем рассказом у меня была хорошая и очень стабильная установка Linux:
CentOS 5.5
uname -a:
Linux andreys-comp 2.6.18-194.8.1.el5xen #1 SMP
Thu Jul 1 19:41:05 EDT 2010 x86_64 x86_64 x86_64 GNU/Linux
getenforce
echo $?
0
Но однажды (вчера) я решил сделать yum update
и параллельно:
cvs -d:pserver:anonymous@SELinux.cvs.sourceforge.net:/cvsroot/SELinux -z3 co nsa
(cvs загрузил все файлы в каталог /SELinux, который создал сам)
После загрузки я прочитал README, где написано, что для полной установки самостоятельно скомпилированного SELinux мне нужно сделать:
make menuconfig
make
make install
Я только сделал (!), Но сразу после этого мой компьютер сошел с ума.
Я не знаю, все ли это из-за обновления системы, или компиляции SELinux, или и того и другого, но Firefox прекратил показывать страницы, и когда я пытаюсь запустить system-config-SELinux, которую я недавно установил, я получаю
/usr/lib64/Python2.4/site-packages/SELinux/_SELinux.so: undefined symbol: SELinux_check_securetty_context
и не беги.
После этого я перезагрузил систему, во время работы системы у меня возникает паника ядра и что-то вроде: "не удалось применить политику SELinux" (точно не помню, сообщение не остается на экране достаточно времени, потому что компьютер выключается)
Поэтому я запустил LiveCD для отключения SELinux в файле /etc /SELinux /config, но (!) (наступает момент кульминации), когда я запускаю ls на / из файловой системы LiveCD, я вижу:
[root@livecd /]# ls -la
total 180
drwxr-xr-x 4 root root 0 Aug 9 18:23 SELinux
Но это виртуальная файловая система! Я помню, что cvs загрузил весь исходный код в /SELinux
.
Это контекст этой директории: system_u:object_r:security_t
Более того, каталог /SELinux
даже содержал файлы внутри него. Одним из них было нулевое символьное устройство.
Это обычный каталог файловой системы LiveCD? Или это мой недавно созданный каталог cvs
в каком-то загадочном хранилище и коварно смонтированный в корневой файловой системе LiveCD?
После этого я смонтировал корневую файловую систему моего жесткого диска, выполнил ls
и обнаружил, что каталог SELinux остается там вполне компетентно:
[root@livecd VolGroup00-LogVol01]# ls -la
total 240
drwxr-xr-x 2 root root 4096 Jun 5 07:01 SELinux
но (!) этот каталог теперь был пуст внутри!
Это контекст каталога: system_u:object_r:file_t
Это монтирования, которые были в режиме LiveCD:
/dev/mapper/live-rw on / type ext3 (rw,noatime)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
/dev/hdc on /mnt/live type iso9660 (ro)
/dev/sda2 on /mnt/disc/sda2 type ext3 (ro)
/dev/sda6 on /mnt/disc/sda6 type vfat (ro,uid=500)
/dev/mapper/VolGroup00-LogVol01 on /mnt/lvm/VolGroup00-LogVol01 type ext3 (rw)
/dev/mapper/VolGroup00-LogVol00 on /mnt/lvm/VolGroup00-LogVol00 type ext3 (ro)
После всего этого я отключил SELinux в соответствующем файле:
SELinux=disabled
SELinuxTYPE=targeted
SETLOCALDEFS=0
И я перезагрузил свой компьютер. После загрузки я снова запускаю ls для пользователя root и вижу, что у меня снова есть каталог SELinux, но он снова пуст!
[root@andreys-comp SELinux]# pwd
/SELinux
[root@andreys-comp SELinux]# ls
[root@andreys-comp SELinux]#
Больше этого Когда я загрузился с жесткого диска, я установил файл squashfs.img
на LiveCD и ext3fs.img
на нем, который содержит всю корневую файловую систему, и вот что я вижу:
[root@andreys-comp isotemp2]# mount
/isotemp/LiveOS/ext3fs.img on /isotemp2 type ext3 (ro,loop=/dev/loop1)
[root@andreys-comp isotemp2]# ls -l
total 180
drwxr-xr-x 2 root root 4096 Oct 2 2009 SELinux
[root@andreys-comp isotemp2]# cd SELinux/
[root@andreys-comp SELinux]# ls
[root@andreys-comp SELinux]#
Это также пусто! Где весь код SELinux?
Теперь, может быть, я много расскажу о папках SELinux, но вопрос о моих общих проблемах с SELinux для меня не менее важен.
Таким образом, если я включаю SELinux, я получаю панику ядра (даже если я на уровне выполнения 1).
После загрузки с LiveCD и отключения его все снова работает.
Итак, у меня есть два вопроса:
Где все скомпилированные объекты SELinux?
Как вернуть гармонию и мир в мир моего компьютера?