SELinux

本文介绍了SELinux中用于文件操作、进程管理和系统配置的一系列命令,包括ls、chcon、restorecon等,并解释了如何使用这些命令来管理和调整SELinux的安全策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  SELinux是个经过安全强化的Linux操作系统,实际上,基本上原来的运用软件没有必要修改就能在它上面运行。真正做了特别修改的RPM包只要50 多个。像文件系统EXT3都是经过了扩展。对于一些原有的命令也进行了扩展,另外还增加了一些新的命令,接下来我们就来看看这些命令。

文件操作

  1)ls命令

  在命令后加个 -Z 或者加 –context

  [root@localhost 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@localhost tmp]# ls --context test.txt

  -rw-r--r-- root root root:object_r:staff_tmp_t test.txt

  [root@localhost tmp]# chcon -t etc_t test.txt

  [root@localhost tmp]# chcon --reference /var/usr/local/httpd/htdoc/  /home/www/     参照/var/usr/local/httpd/htdoc的标签来修改/home/www下的文件的标签。

      [root@localhost 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迁移。

      10)getsebool -a 查看selinux的布尔值

             setsebool -P ftp_home_dirs on   设置永久生效。

进程domain的确认

  程序现在在那个domain里运行,我们可以在ps 命令后加 -Z

  [root@localhost /]# 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

ROLE的确认和变更

  命令id能用来确认自己的 security context

  [root@localhost ~]# 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@localhost ~]# newrole -r sysadm_r

  Authenticating root.

  口令:

  [root@localhost ~]# 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

模式切换

  1)getenforce

  得到当前的SELINUX值

  [root@localhost bin]# getenforce

  Permissive

  2)setenforce

  更改当前的SELINUX值 ,后面可以跟 enforcing,permissive 或者 1, 0。

  [root@localhost bin]# setenforce permissive

  3)sestatus

  显示当前的 SELinux的信息

  [root@localhost 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

  /sbin/init system_u:object_r:init_exec_t

  /sbin/mingetty system_u:object_r:getty_exec_t

其他重要命令

  1)Audit2allow

  很重要的一个以python写的命令,主要用来处理日志,把日志中的违反策略的动作的记录,转换成 access vector,对开发安全策略非常有用。在refpolicy里,它的功能比以前有了很大的扩展。

  [root@localhost log]# cat dmesg | audit2allow -m local > local.te

  2)checkmodule -m -o local.mod local.te

  编译模块

  [root@localhost log]# checkmodule -m -o local.mod local.te

  checkmodule: loading policy configuration from local.te

  checkmodule: policy configuration loaded

  checkmodule: writing binary representation (version 5) to local.mod

  3)semodule_package

  创建新的模块

  [root@localhost log]# semodule_package -o local.pp -m local.mod

  4)semodule

  可以显示,加载,删除 模块

  加载的例子:

  [root@localhost log]# semodule -i local.pp

  5)semanage

  这是一个功能强大的策略管理工具,有了它即使没有策略的源代码,也是可以管理安全策略的。因为我主要是介绍用源代码来修改策略的,详细用法大家可以参考它的man页。

      6)SElinux Administration

       system-config-selinux (from policycoreutils-gui package 依赖于selinux-policy-devel)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值