簡體   English   中英

使用 bash 腳本向 fstab 中的 /tmp 分區添加選項

[英]add options to /tmp partition in fstab by using a bash script

在基本的 linux 服務器安裝之后,我正在編寫一個長腳本來添加安全選項。 其中一項安全措施是向 /temp 分區添加選項。 為此,我寫道:

    awk '{
if (!/^#/ && $2 == "/tmp")
awk '{ if(!match(/rw,nosuid,nodev,noexec,realtime/, $4)) $4=$4",rw,nosuid,nodev,noexec,realtime" } 1' /etc/fstab > /tmp/$$
cat /tmp/$$ > /root/fstab
rm /tmp/$$
echo "$(tput setaf 2)Mounting point /tmp has been updated and is now secured !$(tput sgr0)" >&3
}' /etc/fstab

fstab 文件是:

# <file system> <mount point>   <type>  <options>       <dump>  <pass>
/dev/mapper/debiantest--vg-root /               ext4    errors=remount-ro 0       1
# /boot was on /dev/sda1 during installation
UUID=495503ab-78ed-4af5-8587-5d1c30ff233d /boot           ext2    defaults        0       2
/dev/mapper/debiantest--vg-home /home           ext4    defaults        0       2
/dev/mapper/debiantest--vg-tmp /tmp            ext4    defaults        0       2
/dev/mapper/debiantest--vg-var /var            ext4    defaults        0       2
/dev/mapper/debiantest--vg-swap_1 none            swap    sw              0       0
/dev/sr0        /media/cdrom0   udf,iso9660 user,noauto     0       0

我想改:

/dev/mapper/debiantest--vg-tmp /tmp ext4 默認 0 2

經過:

/dev/mapper/debiantest--vg-tmp /tmp ext4 默認值,rw,nosuid,nodev,noexec,realtime 0 2

但這不適用於此錯誤消息:

無人值守符號« ( » 附近的語法錯誤

我發現這是因為我在第二個 awk 中有簡單的引號,它停止了之前的第一個簡單引號(第一個 awk)。

那么如何先檢查 /tmp 是否存在,然后在這一行添加選項呢? 也許“簡單”的 grep 可以工作,但是如何使用 grep 來確保只修改 /tmp 的行? 例如,我們可以使用 /var/tmp...

非常感謝您的幫助。

托托

好的解決方案是刪除第一個 awk 並將 egrep 處理為:

if egrep -qs '\s/tmp\s' /etc/fstab; then
awk -v OFS='\t' '!/^#/ && ($2 == "/tmp") && ($4 == "defaults") { $4=$4",rw,nosuid,nodev,noexec,realtime" } 1' /etc/fstab > /tmp/$$
cat /tmp/$$ > /etc/fstab
rm /tmp/$$
echo "$(tput setaf 2)Mounting point /tmp has been updated and is now secured !$(tput sgr0)" >&3
else
echo "$(tput setaf 1)Bad news, you don't have a separate /tmp partition... This is unsecured !$(tput sgr0)" >&3
fi

感謝我指出雙重 awk 問題。

如果您認為 grep 可以改進,請告訴我:-)

問候

托托

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM