Disabled就不用说了,permissive就是Selinux有效,但是即使您违反了策略的话他让您继续操作,但是把您的违反的内容记录下来。在我们研发策略的时候很的有用。
相当于Debug模式。
Enforcing就是您违反了策略,您就无法继续操作下去。
SELINUXTYPE呢,现在主要有2大类,一类就是红帽子研发的targeted,他只是对于,主要的网络服务进行保护,比如 apache ,sendmail, bind,postgresql等,不属于那些domain的就都让他们在unconfined_t里,可导入性高,可用性好但是不能对整体进行保护。
另一类是Strict,是NAS研发的,能对整个系统进行保护,但是设定复杂,我认为虽然他复杂,但是一些基本的会了,还是能够玩得动的。
我们除了在/etc/sysconfig/selinux设他有效无效外,在启动的时候,也能够通过传递参数selinux给内核来控制他。(Fedora 5默认是有效)
kernel /boot/vmlinuz-2.6.15-1.2054_FC5 ro root=LABEL=/ rhgb quiet selinux=0
上面的变更能够让他无效。
[root@python sysconfig]# /usr/sbin/getenforce
Enforcing
确认有效后重新对文档系统赋予标签:
[root@python sysconfig]# /sbin/fixfiles relabel
或
[root@python /]# touch /.autorelabel
然后 reboot ,您就在secure的Linux环境下工作了。
4. SELinux的基本操作
SELinux是个经过安全强化的Linux操作系统,实际上,基本上原来的运用软件没有必要修改就能在他上面运行。真正做了特别修改的RPM包只要50多个。像文档系统EXT3都是经过了扩展。对于一些原有的命令也进行了扩展,另外还增加了一些新的命令,接下来我们就来看看这些命令。
4.1 文档操作
1)ls命令
在命令后加个 -Z 或加 –context
[root@python azureus]# ls -Z
-rwxr-xr-x fu fu user_u:object_r:user_home_t azureus
-rw-r--r-- fu fu user_u:object_r:user_home_t Azureus2.jar
-rw-r--r-- fu fu user_u:object_r:user_home_t Azureus.png
2)chcon
更改文档的标签
[root@python tmp]# ls --context test.txt
-rw-r--r-- root root root:object_r:staff_tmp_t test.txt
[root@python tmp]# chcon -t etc_t test.txt
[root@python tmp]# ls -lZ test.txt
-rw-r--r-- root root root:object_r:etc_t test.txt
3)restorecon
当这个文档在策略里有定义是,能够恢复原来的 文档标签。
4)setfiles
跟chcon相同能够更改一部分文档的标签,无需对整个文档系统重新设定标签。
5)fixfiles
一般是对整个文档系统的, 后面一般跟 relabel,对整个系统 relabel后,一般我们都重新启动。假如,在根目录下有.autorelabel空文档的话,每次重新启动时都调用 fixfiles relabel
6)star
就是tar在SELinux下的互换命令,能把文档的标签也一起备份起来。
7)cp
能够跟 -Z, --context=CONTEXT 在拷贝的时候指定目的地文档的security context
8)find
能够跟 –context 查特定的type的文档。
例子:
find /home/fu/ --context fu:fu_r:amule_t -exec ls -Z {} \:
9)run_init
在sysadm_t里手动启动一些如Apache之类的程式,也能够让他正常进行,domain迁移。
4.2进程domain的确认
程式现在在那个domain里运行,我们能够在ps 命令后加 -Z
[root@python /]# ps -eZ
LABEL PID TTY TIME CMD
system_u:system_r:init_t 1 ? 00:00:00 init
system_u:system_r:kernel_t 2 ? 00:00:00 ksoftirqd/0
system_u:system_r:kernel_t 3 ? 00:00:00 watchdog/0
4.3ROLE的确认和变更
命令id能用来确认自己的 security context
[root@python ~]# id
uid=0(root) gid=0(root) groups=0(root),1(bin),2(daemon),3(sys),4(adm),6(disk),10(wheel) context=root:staff_r:staff_t
这里,虽然是ROOT用户,但也只是在一般的ROLE和staff_t里运行,假如在enforcing模式下,这时的ROOT对于系统管理工作来说,是什么也干不了。
[root@python ~]# newrole -r sysadm_r
Authenticating root.
口令:
[root@python ~]# id
uid=0(root) gid=0(root) groups=0(root),1(bin),2(daemon),3(sys),4(adm),6(disk),10(wheel) context=root:sysadm_r:sysadm_t
4.4模式转换
1)getenforce
得到当前的SELINUX值
[root@python bin]# getenforce
Permissive
2)setenforce
更改当前的SELINUX值 ,后面能够跟 enforcing,permissive 或 1, 0。
[root@python bin]# setenforce permissive
3)sestatus
显示当前的 SELinux的信息
[root@python bin]# sestatus -v
SELinux status: enabled
SELinuxfs mount: /selinux
Current mode: permissive
Mode from config file: permissive
Policy version: 20
Policy from config file: refpolicy
Process contexts:
Current context: user_u:user_r:user_t
Init context: system_u:system_r:init_t
/sbin/mingetty system_u:system_r:getty_t
/usr/sbin/sshd system_u:system_r:sshd_t
File contexts:
Controlling term: user_u:object_r:user_devpts_t
/etc/passwd system_u:object_r:etc_t
/etc/shadow system_u:object_r:shadow_t
/bin/bash system_u:object_r:shell_exec_t
/bin/login system_u:object_r:login_exec_t
/bin/sh system_u:object_r:bin_t -> system_u:object_r:shell_exec_t
/sbin/agetty system_u:object_r:getty_exec_t
文章整理:西部数码--专业提供域名注册、虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!




