暂无描述
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 14 天前 | ||
| 1 个月前 | ||
| 11 小时前 | ||
| 1 年前 | ||
| 3 年前 | ||
| 25 天前 | ||
| 1 年前 | ||
| 9 个月前 | ||
| 3 个月前 | ||
| 4 年前 | ||
| 1 年前 | ||
| 9 个月前 | ||
| 9 个月前 | ||
| 9 个月前 |
SELinux 用户空间
请将所有错误报告和补丁提交至 selinux@vger.kernel.org。
通过向 majordomo@vger.kernel.org 发送一封主题为“subscribe selinux”的电子邮件进行订阅。
该邮件列表的存档可在 https://lore.kernel.org/selinux/ 上获取。
安装
SELinux 库和工具已在多个 Linux 发行版中打包:
- Alpine Linux(https://pkgs.alpinelinux.org/package/edge/testing/x86/policycoreutils)
- Arch Linux 用户仓库(https://aur.archlinux.org/packages/policycoreutils/)
- Buildroot(https://git.buildroot.net/buildroot/tree/package/policycoreutils)
- Debian 和 Ubuntu(https://packages.debian.org/sid/policycoreutils)
- Gentoo(https://packages.gentoo.org/packages/sys-apps/policycoreutils)
- RHEL 和 Fedora(https://src.fedoraproject.org/rpms/policycoreutils)
- Yocto Project(http://git.yoctoproject.org/cgit/cgit.cgi/meta-selinux/tree/recipes-security/selinux)
- 以及更多(https://repology.org/project/policycoreutils/versions)
构建与测试
Fedora 上的构建依赖项:
# For C libraries and programs
dnf install \
audit-libs-devel \
bison \
bzip2-devel \
CUnit-devel \
diffutils \
flex \
gcc \
gettext \
glib2-devel \
make \
libcap-devel \
libcap-ng-devel \
pam-devel \
pcre-devel \
xmlto
# For Python and Ruby bindings
dnf install \
python3-devel \
ruby-devel \
swig
Debian 上的构建依赖项:
# For C libraries and programs
apt-get install --no-install-recommends --no-install-suggests \
bison \
flex \
gawk \
gcc \
gettext \
make \
libaudit-dev \
libbz2-dev \
libcap-dev \
libcap-ng-dev \
libcunit1-dev \
libglib2.0-dev \
libpcre3-dev \
pkgconf \
python3 \
python3-distutils \
systemd \
xmlto
# For Python and Ruby bindings
apt-get install --no-install-recommends --no-install-suggests \
python3-dev \
ruby-dev \
swig
要在私有目录下构建并安装所有内容,请运行:
make clean distclean
make DESTDIR=~/obj install install-rubywrap install-pywrap
在 Debian 系统上,安装 python 包装器时需要设置 PYTHON_SETUP_ARGS=--install-layout=deb,以创建正确的 python 目录结构。
要使用已构建的库和程序运行测试,需要将几个路径(相对于 $DESTDIR)添加到变量 $LD_LIBRARY_PATH、$PATH 和 $PYTHONPATH 中。
这可以通过 ./scripts/env_use_destdir 来完成:
DESTDIR=~/obj ./scripts/env_use_destdir make test
某些测试需要安装参考策略(例如在 python/sepolgen 中)。
要运行这些测试,可以执行类似于 ./.travis.yml 的 install 部分中的说明。
要将其安装为默认系统库和二进制文件 (覆盖任何先前安装的版本 - 此操作有风险!), 在 x86_64 上,请运行:
make LIBDIR=/usr/lib64 SHLIBDIR=/lib64 install install-pywrap relabel
或者在 x86(32 位)上,运行:
make install install-pywrap relabel
如果上游 SELinux 用户空间缺少您的发行版所依赖的库函数或其他依赖项,这可能会导致系统无法使用。如果出现问题,后果自负。
设置 CFLAGS
在 make 过程中设置 CFLAGS 会导致许多默认值被忽略。虽然项目努力提供一组合理的默认标志,但自定义 CFLAGS 可能会破坏构建,或对构建输出产生其他不良影响。因此,设置 CFLAGS 时要非常小心。覆盖默认值时建议设置的 CFLAGS 包括:
- -fno-semantic-interposition,适用于 gcc 或不默认执行此操作的编译器。clang 默认执行此操作。clang-10 及更高版本将支持传递此标志,但会忽略它。早期版本的 clang 会失败。
macOS
要在 macOS 上安装 libsepol(主要用于策略分析):
cd libsepol; make PREFIX=/usr/local install
这需要 GNU coreutils:
brew install coreutils