Tôi có những điều rất lạ với SELinux.
Bài viết của tôi có thể sẽ bị rối loạn, vì tôi không hoàn toàn hiểu chuyện gì đang xảy ra.
Trước tất cả câu chuyện, tôi đã cài đặt Linux tốt và rất ổn định:
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
Nhưng một ngày (ngày hôm qua) tôi quyết định làm yum update
và song song:
cvs -d:pserver:anonymous@SELinux.cvs.sourceforge.net:/cvsroot/SELinux -z3 co nsa
(cvs đã tải tất cả các tệp vào thư mục / SELinux tự tạo)
Sau khi tải về, tôi đã đọc README và thông báo rằng để cài đặt hoàn toàn tự biên dịch, tôi cần phải thực hiện:
make menuconfig
make
make install
Tôi chỉ làm (!), Nhưng ngay sau đó máy tính của tôi trở nên điên rồ.
Tôi không biết liệu tất cả những điều này là do cập nhật hệ thống, hoặc biên dịch SELinux hay cả hai, nhưng Firefox đã dừng các trang hiển thị và khi tôi cố chạy system-config-SELinux mà tôi đã cài đặt gần đây, tôi nhận được:
/usr/lib64/Python2.4/site-packages/SELinux/_SELinux.so: undefined symbol: SELinux_check_securetty_context
và không chạy.
Sau đó tôi khởi động lại hệ thống, trong hệ thống lên tôi nhận được hoảng sợ hạt nhân và một số điều như: "thất bại trong việc áp dụng chính sách SELinux" (Tôi không nhớ chính xác, thông điệp không ở lại trên màn hình thời gian đủ vì máy tính đi xuống)
Vì vậy, những gì tôi đã làm, là chạy từ LiveCD để vô hiệu hóa tập tin SELinux trong tập tin / etc / SELinux / config, nhưng (ở đây là thời điểm cực đại) khi tôi chạy ls trên / của hệ thống tập tin LiveCD, tôi thấy:
[root@livecd /]# ls -la
total 180
drwxr-xr-x 4 root root 0 Aug 9 18:23 SELinux
Nhưng nó là hệ thống tập tin ảo! Tôi nhớ rằng cvs đã tải xuống tất cả các nguồn /SELinux
.
Đây là bối cảnh của thư mục này: system_u:object_r:security_t
Thêm nữa, /SELinux
thư mục này thậm chí có các tệp bên trong nó. Một trong số đó là thiết bị ký tự null.
Đây có phải là thư mục thường xuyên của hệ thống tập tin LiveCD không? Hoặc đây là cvs
thư mục được tạo gần đây của tôi trong một số lưu trữ bí ẩn và được gắn vào hệ thống tập tin gốc của LiveCD?
Sau đó, tôi đã gắn hệ thống tập tin gốc của đĩa cứng, tôi đã làm ls
và tìm thấy thư mục SELinux của mình ở đó hoàn toàn:
[root@livecd VolGroup00-LogVol01]# ls -la
total 240
drwxr-xr-x 2 root root 4096 Jun 5 07:01 SELinux
nhưng (!) thư mục này bây giờ trống rỗng bên trong! Đây là bối cảnh của thư mục:system_u:object_r:file_t
Đây là giá treo ở chế độ 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)
Sau tất cả, tôi đã vô hiệu hóa SELinux trong tệp thích hợp:
SELinux=disabled
SELinuxTYPE=targeted
SETLOCALDEFS=0
Và tôi đã khởi động lại máy tính của mình. Sau khi khởi động lên, tôi làm lại root và thấy rằng tôi lại có thư mục SELinux, nhưng nó lại trống!
[root@andreys-comp SELinux]# pwd
/SELinux
[root@andreys-comp SELinux]# ls
[root@andreys-comp SELinux]#
Thêm điều này. Khi tôi khởi động từ đĩa cứng, tôi đã gắn squashfs.img
LiveCD và ext3fs.img
trên đó, nó chứa tất cả hệ thống tập tin gốc và đây là những gì tôi thấy:
[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]#
Nó cũng trống rỗng! Trường hợp tất cả các mã SELinux?
Bây giờ, có thể tôi sẽ nói nhiều về các thư mục SELinux, nhưng câu hỏi về rắc rối chung của tôi với SELinux không phải là ít quan trọng đối với tôi.
Vì vậy, nếu tôi kích hoạt SELinux, tôi sẽ bị hoảng loạn kernel (ngay cả khi tôi chạy trong runlevel 1).
Sau khi khởi động với LiveCD và vô hiệu hóa nó, tất cả hoạt động trở lại.
Vì vậy, tôi có hai câu hỏi:
Tất cả các đối tượng SELinux được biên dịch ở đâu?
Làm thế nào tôi mang lại sự hài hòa và hòa bình cho thế giới máy tính của tôi?