![限制用户仅运行两次命令](https://linux22.com/image/940754/%E9%99%90%E5%88%B6%E7%94%A8%E6%88%B7%E4%BB%85%E8%BF%90%E8%A1%8C%E4%B8%A4%E6%AC%A1%E5%91%BD%E4%BB%A4.png)
我想限制用户在 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,则继续执行或暂停并显示消息。