限制用户仅运行两次命令

限制用户仅运行两次命令

我想限制用户在 Ubuntu 中只能运行两次命令。

具体来说,我通过别名创建了一个自定义命令,每个用户只需执行两次。

我的自定义命令是

alias extend_shutdown_150='bash extend_shutdown.sh 150'

我不知道如何实现更多这一点!


#!/bin/bash
minutes=$1
echo $minutes >> /usr/bin/input.log

a=`grep -i 15 /usr/bin/input.log | wc -l`
b=`grep -i 30 /usr/bin/input.log | wc -l`
c=`grep -i 60 /usr/bin/input.log | wc -l`
#echo $a $b $c
if [[ "$a" -gt "2" ]] ||  [[ "$b" -gt "2" ]] ||   [[ "$c" -gt "2" ]] ; then
     echo " Error: User tried to snooze the system more then 2 times"
elif [[ "$minutes" -eq "15" ]] ||  [[ "$minutes" -eq "30" ]] ||   [[ "$minutes" -eq "60" ]] ; then
     echo " System shutdown is extend $minutes Minutes more"
else
  echo " Error: Minutes must be one of 15,30 or 60"
fi

因此,根据用户输入,数据将被存储到其中/usr/bin/input.log,因此我正在比较同一个文件以阻止用户暂停系统。

有什么可能的方法来附加用户名和日期,/usr/bin/input.log例如:hari 9/2/2021 15

答案1

您可以自己在 Bash 脚本中实现该功能。

  • 让脚本在每次启动命令时将日期和用户记录在日志文件中。
  • 让脚本读取日志并检查日期/用户组合是否出现少于两次(例如grep -c $PATTERN $FILE可以这样做:计算出现某种模式(例如“日期+用户名”)的行数)
  • 如果行数 > 2,则继续执行或暂停并显示消息。

相关内容