Рейтинг:-2

Разрешить пользователю запускать команду только два раза

флаг cn

Я хочу запретить пользователю запускать команду только два раза в Ubuntu.

В частности, я создал пользовательскую команду через псевдоним, который должен выполняться только два раза каждым пользователем.

Моя пользовательская команда

псевдоним extend_shutdown_150='bash extend_shutdown.sh 150'

Я не получаю способ реализовать больше об этом!


#!/бин/баш
минуты=$1
эхо $минут >> /usr/bin/input.log

a=`grep -i 15 /usr/bin/input.log | туалет -l`
b=`grep -i 30 /usr/bin/input.log | туалет -l`
c=`grep -i 60 /usr/bin/input.log | туалет -l`
#эхо $a $b $c
если [[ "$a" -gt "2" ]] || [[ "$b" -gt "2" ]] || [[ "$c" -gt "2" ]] ; тогда
     echo "Ошибка: пользователь пытался приостановить работу системы более 2 раз"
elif [[ "$minutes" -eq "15" ]] || [[ "$minutes" -eq "30" ]] || [[ "$minutes" -eq "60" ]] ; тогда
     echo "Выключение системы продлено еще на $minutes минут"
еще
  echo "Ошибка: Минуты должны быть 15, 30 или 60"
фи

Таким образом, на основе пользовательского ввода данные будут храниться в /usr/bin/input.log поэтому я сравниваю один и тот же файл, чтобы пользователь не засыпал систему.

Есть ли способ добавить имя пользователя и дату в /usr/bin/input.log например.: Хари 02.09.2021 15?

Jad avatar
флаг br
Jad
какая команда? почему вы хотите ограничить их 2 раза?
hariraj avatar
флаг cn
Я создал пользовательскую команду через псевдоним, который должен выполняться только два раза каждым пользователем, и это мое требование. Пожалуйста, помоги мне.
флаг in
Может ли эта пользовательская команда не вести журнал того, кто и сколько раз ее запускал, а затем отображать ошибку пользователю при чрезмерных операциях? Это уже обычай, так почему бы не настроить его дальше?
hariraj avatar
флаг cn
моя пользовательская команда - «псевдоним extend_shutdown_150 = 'bash extend_shutdown.sh 150». Я не получаю способ реализовать больше об этом!
user535733 avatar
флаг cn
Я не знаю ни одной существующей команды с такой встроенной логикой, которую вы могли бы использовать. Вы должны создать его.
Рейтинг:1
флаг cn

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

  • Пусть сценарий регистрирует дату и пользователя в файле журнала каждый раз при запуске команды.
  • Попросите сценарий прочитать журнал и проверить, встречается ли комбинация даты/пользователя менее двух раз (например, grep -c $ШАБЛОН $ФАЙЛ мог бы сделать: это подсчитывает количество строк, в которых определенный шаблон, например. «дата + имя пользователя», встречается)
  • Продолжить выполнение или остановить с сообщением, если количество строк > 2.
Lorenz Keel avatar
флаг gr
Я предполагаю, что вместо конвейера в `wc` вы можете использовать опцию `-c` в `grep`. Это правильно?
vanadium avatar
флаг cn
Так даже лучше, конечно. Буду менять, с благодарностью.
hariraj avatar
флаг cn
Как добавить это «Пусть сценарий регистрирует дату и пользователя в файле журнала каждый раз при запуске команды..?»
vanadium avatar
флаг cn
Вы уже не умеете писать сценарии на bash?
hariraj avatar
флаг cn
я увлекаюсь bash-скриптами

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.