如何在具有root访问权限的bash脚本中以编程方式启用selinux?
我已经知道我可以像这样安装必要的软件包:
/boot/grub/menu.lst
但是如何编写以下步骤的脚本:
"selinux=1 security=selinux"
中,将.autorelabel
附加到内核行<section class="bg-primary text-white mb-0" id="about">
<div class="container">
<h2 class="text-center text-uppercase text-white">Map</h2>
<div id="map" style="height=450px"></div>
</div>
</section>
文件有人在GitHub某个地方放了一个脚本吗?我们正在使用Amazon Linux,但我认为CentOS或RHEL的步骤相同。
答案 0 :(得分:0)
好吧,我将不正确的先前脚本更改为适合您的脚本。对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 $1;}')
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行附加到以内核开头的任何行,然后在根目录中为您创建一个空的.autorelabel文件。您需要以root用户身份运行脚本,因为它将在root拥有的目录中创建和编辑文件,但是它将完全满足您的需要。
答案 1 :(得分:0)
最终使用:
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