Запрещает пользователю запускать команду только два раза

Я хочу ограничить пользователя запуском команды только два раза в 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 ?

-2
задан 3 September 2021 в 10:54

1 ответ

Вы можете реализовать это самостоятельно в своем сценарии bash.

  • Сценарий должен записывать дату и пользователя в файл журнала каждый раз при запуске команды.
  • Пусть сценарий прочитает журнал и проверит, встречается ли комбинация дата / пользователь меньше двух раз (например, grep -c $ PATTERN $ FILE может сделать: это подсчитывает количество строк, в которых шаблон, например "дата + имя пользователя")
  • Продолжить выполнение или остановить с сообщением, если количество строк> 2.
1
ответ дан 4 September 2021 в 09:24

Другие вопросы по тегам:

Похожие вопросы: