Shell脚本将“ noexec”和“ nosuid”添加到/ var分区

时间:2018-12-13 15:40:11

标签: fstab hardening

我正在尝试创建一个小的脚本,以通过修改/var文件将noexec和nosuid添加到/etc/fstab分区。

当前,/etc/fstab/var分区外,还包含/ var / log分区。

运行脚本时,同时对/var/var/log进行了更改。我只想将“ noexec”和“ nosuid”添加到/var分区。

这是我写的

#cat test.sh
#!/bin/bash
egrep -q  '/var/.+noexec' /etc/fstab || sed -ri '/\/var/ s/defaults/defaults,noexec/' /etc/fstab
egrep -q  '/var/.+noexec' /etc/fstab || sed -ri '/\/var/ s/defaults,nodev/defaults,nodev,noexec/' /etc/fstab
egrep -q  '/var/.+nosuid' /etc/fstab || sed -ri '/\/var/ s/defaults/defaults,nosuid/' /etc/fstab
  1. 当前/ etc / fstab条目w.r.t / var和/ var / log在下面给出,
cat /etc/fstab

/dev/mapper/system-var  /var                    ext4    defaults,nodev        1 2

/dev/mapper/system-varlog /var/log                ext4    defaults,nodev        1 2
  1. 运行脚本后,输出如下,
/dev/mapper/system-var  /var                    ext4    defaults,nosuid,noexec,nodev        1 2

/dev/mapper/system-varlog /var/log                ext4    defaults,nosuid,noexec,nodev        1 2
  1. 预期输出如下,
cat /etc/fstab

/dev/mapper/system-var  /var                    ext4    defaults,nosuid,noexec,nodev        1 2

/dev/mapper/system-varlog /var/log                ext4    defaults,nodev        1 2

1 个答案:

答案 0 :(得分:0)

最简单的方法是在/var之后向您的grep模式添加一个空白的空格字符,如下所示:

egrep '/var\s' /etc/fstab

\s在许多REGEX实现中(sed,perl ...)代表空白,它由空格,制表符和其他一些字符组成。