我正在尝试创建一个小的脚本,以通过修改/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
cat /etc/fstab
/dev/mapper/system-var /var ext4 defaults,nodev 1 2
/dev/mapper/system-varlog /var/log ext4 defaults,nodev 1 2
/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
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
答案 0 :(得分:0)
最简单的方法是在/var
之后向您的grep模式添加一个空白的空格字符,如下所示:
egrep '/var\s' /etc/fstab
\s
在许多REGEX实现中(sed,perl ...)代表空白,它由空格,制表符和其他一些字符组成。