如何在此脚本中输出命令的结果?

时间:2019-11-13 08:23:02

标签: bash echo rhel7

if [ "$(stat -c "%a" /etc/crontab)" == "644" ]
then
  echo "Is there a vulnerability: No, Permission set on /etc/crontab file is correct."
else
  echo "Is there a vulnerability: Yes, Permission set on /etc/crontab file is incorrect. echo awk -F: $(stat -c "%a" /etc/crontab)"
fi

这是我正在处理的审核脚本,如果不等于chmod 644,我想输出/ etc / crontab文件的当前权限。我尝试了许多方法,但没有用。如果重要的话,我会在RHEL 7服务器上这样做。

2 个答案:

答案 0 :(得分:1)

这应该是您想要做的最正确的方法

#!/bin/bash

if (( $(stat -c "%a" /etc/crontab) == 644 ))
then
  echo "Is there a vulnerability: No, Permission set on /etc/crontab file is correct."
else
  echo "Is there a vulnerability: Yes, Permission set on /etc/crontab file is incorrect: $(stat -c "%a" /etc/crontab)"
fi

答案 1 :(得分:0)

比较bash中的数字时,应使用-eq而不是==。因此,您的if来自此:

if [ "$(stat -c "%a" /etc/crontab)" == "644" ]

必须

if [ "$(stat -c "%a" /etc/crontab)" -eq "644" ]

在这一行

 echo "Is there a vulnerability: Yes, Permission set on /etc/crontab file is incorrect. echo awk -F: $(stat -c "%a" /etc/crontab)"

您应该删除%a周围的引号