在Fedora 25上编译SELinux Policy

前些天尝试在Fedora 25上修改SELinux Policy。做这项工作需要编译SELinux Policy。在实践中碰到了一些问题,现在把正确的步骤写在下面:

大体上说,有两个选择,一个是从Fedora的源码rpm包编译,另一个是从源码编译。

1. 利用源码rpm编译:

    a) 获取RPM

    dnf download --source --destdir `pwd` selinux-policy-targeted

    b) 准备编译环境  

    dnf install rpm-build
    mkdir -p~/rpmbuild/{BUILD,RPMS,SOURCES,SPECS,SRPMS}
    echo '%_topdir %(echo $HOME)/rpmbuild'> ~/.rpmmacros
    rpmbuild --rebuild./selinux-policy-3.13.1-225.13.fc25.src.rpm


利用源码RPM包编译,相对比较简单,但是对于需要频繁修改源码的场景,就不是那么方便了。下面介绍直接利用源码编译。

2. 利用源码编译

    a) 获取源码

   git clonehttps://github.com/fedora-selinux/selinux-policy.git
   git clonehttps://github.com/fedora-selinux/selinux-policy-contrib.git

    b) 修改源码

    在selinux-policy/policy/modules目录中,创建子目录"contrib",将所有selinux-policy-contrib中的文件拷贝到这个目录下

    touch selinux-policy/policy/modules/admin/metadata.xml

    修改selinux-policy/policy/modules.conf,将下面这行

     storage = module

     改为

     storage = base

      c) 编译

   make UNK_PERMS=allow NAME=targeted TYPE=mcs DISTRO=redhat UBAC=n DIRECT_INITRC=n MONOLITHIC=n MLS_CATS=1024 MCS_CATS=1024 bare
   make UNK_PERMS=allow NAME=targeted TYPE=mcs DISTRO=redhat UBAC=n DIRECT_INITRC=n MONOLITHIC=n MLS_CATS=1024 MCS_CATS=1024 conf
   make UNK_PERMS=allow NAME=targeted TYPE=mcs DISTRO=redhat UBAC=n DIRECT_INITRC=n MONOLITHIC=n MLS_CATS=1024 MCS_CATS=1024 base

    也可以先修改build.conf,让build.conf中相应变量的值和上面的命令中的值一致,然后运行:

     make bare; make conf; make base

     


更多内容:www.zhian-tech.com

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值