Puncte:-2

Restricționați un utilizator să execute o comandă doar de două ori

drapel cn

Vreau să restricționez un utilizator să execute o comandă de numai două ori în Ubuntu.

Mai exact, am creat o comandă personalizată printr-un alias care trebuie executat doar de două ori de către fiecare utilizator.

Comanda mea personalizată este

alias extend_shutdown_150='bash extend_shutdown.sh 150'

Nu înțeleg modalitatea de a implementa mai multe despre asta!


#!/bin/bash
minute=1 $
echo $minute >> /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
dacă [[ "$a" -gt "2" ]] || [[ "$b" -gt "2" ]] || [[ "$c" -gt "2" ]] ; atunci
     echo „Eroare: utilizatorul a încercat să amâne sistemul de mai mult de 2 ori”
elif [[ "$minute" -eq "15" ]] || [[ „$minute” -eq „30” ]] || [[ "$minute" -eq "60" ]] ; atunci
     echo „Închiderea sistemului este extinsă $minute minute în plus”
altfel
  echo " Eroare: minutele trebuie să fie unul dintre 15, 30 sau 60"
fi

Deci, pe baza intrării utilizatorului, datele vor fi stocate în /usr/bin/input.log deci compar același fișier pentru a împiedica utilizatorul să amâne sistemul.

Există vreo modalitate posibilă de a adăuga numele de utilizator și data în /usr/bin/input.log de exemplu.: din 02.09.2021 15?

Jad avatar
drapel br
Jad
care comanda? de ce ai vrea sa le limitezi la 2 ori?
hariraj avatar
drapel cn
Am creat o comandă personalizată prin alias care trebuie executată doar de două ori de către fiecare utilizator și este cerința mea. Vă rog să mă ajutați.
drapel in
Ar putea acea comandă personalizată să nu păstreze un jurnal despre cine a rulat-o și de câte ori, apoi să prezinte utilizatorului o eroare cu privire la operațiuni excesive? Este deja personalizat, așa că de ce să nu îl personalizați în continuare?
hariraj avatar
drapel cn
comanda mea personalizată este „alias extend_shutdown_150=’bash extend_shutdown.sh 150”. Nu înțeleg modalitatea de a implementa mai multe despre asta!
user535733 avatar
drapel cn
Nu cunosc nicio comandă existentă cu o astfel de logică încorporată pe care să o utilizați. Trebuie să-l creezi.
Puncte:1
drapel cn

Puteți implementa asta singur în scriptul bash.

  • Puneți scriptul să înregistreze data și utilizatorul într-un fișier jurnal de fiecare dată când comanda este pornită.
  • Cereți scriptului să citească jurnalul și să verifice dacă combinația dată/utilizator apare de mai puțin de două ori (de exemplu, un grep -c $PATTERN $FIȘIER ar putea face: aceasta numără numărul de linii în care un anumit model, de ex. „data + nume de utilizator”, apare)
  • Continuați execuția sau opriți cu un mesaj dacă numărul de linii > 2.
Lorenz Keel avatar
drapel gr
Presupun că, în loc să conectați la `wc`, puteți utiliza opțiunea `-c` în `grep`. Este corect?
vanadium avatar
drapel cn
Asta e chiar mai bine, desigur. O voi schimba, cu multumiri.
hariraj avatar
drapel cn
Cum să adăugați acest „Scrieți scriptul să înregistreze data și utilizatorul într-un fișier jurnal de fiecare dată când comanda este pornită...”?
vanadium avatar
drapel cn
Nu ești deja în scripting bash?
hariraj avatar
drapel cn
sunt în scripting bash

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.