Я хочу ограничить пользователя запуском команды только два раза в 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
?
Вы можете реализовать это самостоятельно в своем сценарии bash.
grep -c $ PATTERN $ FILE
может сделать: это подсчитывает количество строк, в которых шаблон, например "дата + имя пользователя")