Shell 启用 selinux 的脚本
Shell script to enable selinux
如何在具有 root 访问权限的 bash 脚本中以编程方式启用 selinux?
我已经知道我可以像这样安装必要的包:
if sestatus | grep -q disabled; then
yum -y install selinux-policy selinux-policy-targeted policycoreutils-python
fi
但是我该如何编写以下步骤的脚本:
- in
/boot/grub/menu.lst
附加 "selinux=1 security=selinux"
到内核行
- 在根目录中创建一个空的
.autorelabel
文件
有人在 GitHub 某处整理了脚本吗?我们使用的是 Amazon Linux,但我认为 CentOS 或 RHEL 的步骤是相同的。
好的,我将之前不正确的脚本更改为适合您的脚本。比我更有 sed 经验的人可能会将 selinux 行添加为一行,但这就是我所拥有的:
#!/bin/bash
if sestatus | grep -q disabled; then
yum -y install selinux-policy selinux-policy-targeted policycoreutils-python
fi
while IFS= read -r line; do
firstStr=$(echo $line | awk '{print ;}')
if [[ $firstStr = 'kernel' ]] ; then
echo "$line selinux=1 security=selinux" >> outFile.txt
else
echo $line >> outFile.txt
fi
done < /etc/grub/menu.lst
mv outFile.txt /etc/grub/menu.lst
touch /.autorelabel
这应该对您有用,它所做的是将 selinux 行附加到以 kernel 开头的任何行,然后在根目录中为您创建一个空的 .autorelabel 文件。您需要 运行 以 root 身份运行该脚本,因为它将在 root 拥有的目录中创建和编辑文件,但它会完全满足您的需要。
最终使用:
if ! cat /boot/grub/menu.lst | grep -q "selinux=1 security=selinux"; then
yum -y install selinux-policy selinux-policy-targeted policycoreutils-python
sed -i -e 's/kernel\s[^\n]*/& selinux=1 security=selinux/g' /boot/grub/menu.lst
yum -y update
touch /.autorelabel
echo "[Remediated] selinux enabled, reboot required"
else
echo "[Skipping] selinux appears to be enabled"
fi
如何在具有 root 访问权限的 bash 脚本中以编程方式启用 selinux?
我已经知道我可以像这样安装必要的包:
if sestatus | grep -q disabled; then
yum -y install selinux-policy selinux-policy-targeted policycoreutils-python
fi
但是我该如何编写以下步骤的脚本:
- in
/boot/grub/menu.lst
附加"selinux=1 security=selinux"
到内核行 - 在根目录中创建一个空的
.autorelabel
文件
有人在 GitHub 某处整理了脚本吗?我们使用的是 Amazon Linux,但我认为 CentOS 或 RHEL 的步骤是相同的。
好的,我将之前不正确的脚本更改为适合您的脚本。比我更有 sed 经验的人可能会将 selinux 行添加为一行,但这就是我所拥有的:
#!/bin/bash
if sestatus | grep -q disabled; then
yum -y install selinux-policy selinux-policy-targeted policycoreutils-python
fi
while IFS= read -r line; do
firstStr=$(echo $line | awk '{print ;}')
if [[ $firstStr = 'kernel' ]] ; then
echo "$line selinux=1 security=selinux" >> outFile.txt
else
echo $line >> outFile.txt
fi
done < /etc/grub/menu.lst
mv outFile.txt /etc/grub/menu.lst
touch /.autorelabel
这应该对您有用,它所做的是将 selinux 行附加到以 kernel 开头的任何行,然后在根目录中为您创建一个空的 .autorelabel 文件。您需要 运行 以 root 身份运行该脚本,因为它将在 root 拥有的目录中创建和编辑文件,但它会完全满足您的需要。
最终使用:
if ! cat /boot/grub/menu.lst | grep -q "selinux=1 security=selinux"; then
yum -y install selinux-policy selinux-policy-targeted policycoreutils-python
sed -i -e 's/kernel\s[^\n]*/& selinux=1 security=selinux/g' /boot/grub/menu.lst
yum -y update
touch /.autorelabel
echo "[Remediated] selinux enabled, reboot required"
else
echo "[Skipping] selinux appears to be enabled"
fi