daily pastebin goal
41%
SHARE
TWEET

Untitled

a guest Jun 13th, 2018 45 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #! /bin/bash
  2.  
  3. userid=$(id -u)
  4. file="./system_info.txt"
  5. start=${1:-"start"}
  6.  
  7. function for_sure_not_goto() #cytuję: "Niech mnie Pan zaskoczy" :D
  8. {
  9.     label=$1
  10.     cmd=$(sed -n "/$label:/{:a;n;p;ba};" $0 | grep -v ':$')
  11.     eval "$cmd"
  12.     exit
  13. }
  14. function menu()
  15. {
  16.         echo "*************************************"
  17.         echo "* 1 - Zbierz informacje o systemie  *"
  18.         echo "* 2 - Wyswietl zapisane informacje  *"
  19.  
  20.         if [ $userid = 0 ]; then
  21.                 echo "* 3 - Utworz grupe                  *"
  22.                 echo "* 4 - Utworz uzytkownika            *"
  23.         else
  24.             echo -e "* \e[9m3 - Utworz grupe                  \e[0m*"
  25.                 echo -e "* \e[9m4 - Utworz uzytkownika            \e[0m*"
  26.         fi    
  27.  
  28.         echo "* 5 - Pobierz i przetworz plik      *"
  29.         echo -e "* \e[9m6 - Wyszukaj frazy w plikach      \e[0m*"
  30.         echo "* 0 - Opuszczenie skryptu           *"
  31.         echo "*************************************"
  32.     echo ""
  33.         if [ $userid = 0 ]; then
  34.             echo "Wybierz opcje [1,2,3,4,5 lub 0] > "
  35.         else
  36.             echo -e "Wybierz opcje [1,2,5 lub 0] > "
  37.         fi
  38. }
  39.  
  40. function delete_user()
  41. {
  42.     clear
  43.     echo -e "\e[3mUsuwanie uzytkownika\e[0m"
  44.     sleep 0.5
  45.     clear
  46.     echo -e "\e[3mUsuwanie uzytkownika.\e[0m"
  47.     sleep 0.5
  48.     clear
  49.     echo -e "\e[3mUsuwanie uzytkownika..\e[0m"
  50.     sleep 0.5
  51.     clear
  52.     echo -e "\e[3mUsuwanie uzytkownika...\e[0m"
  53.     sleep 0.5
  54.     clear
  55.     echo "Usunieto uzytkownika!"
  56.     sleep 1
  57. }
  58.  
  59. function existing_user()
  60. {
  61.     read choice
  62.     case $choice in
  63.         1)  echo ""
  64.             echo "Podaj ponownie nazwe uzytkownika do usuniecia: "
  65.             read user
  66.             if [ $(getent passwd $user) ]; then
  67.                 delete_user;
  68.                 userdel -r $user
  69.                 goto_menu;             
  70.             else
  71.                 echo "Taki uzytkownik nie istnieje!"
  72.                 goto_menu;
  73.             fi;;
  74.         2)  create_user;;
  75.         3)  clear
  76.             goto_menu;;
  77.         *)  echo "Brak takiej opcji. Powrot do menu."
  78.             goto_menu;;
  79.     esac
  80. }
  81.  
  82. function existing_group()
  83. {
  84.     read choice
  85.     case $choice in
  86.         1)  create_group;;
  87.         2)  cut -d: -f1 /etc/group
  88.             goto_menu;;        
  89.         3)  goto_menu;;
  90.         *)  echo "Brak takiej opcji. Powrot do menu."
  91.             goto_menu;;
  92.     esac
  93. }
  94.  
  95. function add_user()
  96. {
  97.     clear
  98.     echo -e "\e[3mDodawanie uzytkownika\e[0m"
  99.     sleep 0.5
  100.     clear
  101.     echo -e "\e[3mDodawanie uzytkownika.\e[0m"
  102.     sleep 0.5
  103.     clear
  104.     echo -e "\e[3mDodawanie uzytkownika..\e[0m"
  105.     sleep 0.5
  106.     clear
  107.     echo -e "\e[3mDodawanie uzytkownika...\e[0m"
  108.     sleep 0.5
  109.     clear
  110.     echo "Dodano uzytkownika!"
  111.     sleep 1
  112. }
  113.  
  114. function add_group()
  115. {
  116.     clear
  117.     echo -e "\e[3mTworzenie grupy\e[0m"
  118.     sleep 0.5
  119.     clear
  120.     echo -e "\e[3mTworzenie grupy.\e[0m"
  121.     sleep 0.5
  122.     clear
  123.     echo -e "\e[3mTworzenie grupy..\e[0m"
  124.     sleep 0.5
  125.     clear
  126.     echo -e "\e[3mTworzenie grupy...\e[0m"
  127.     sleep 0.5
  128.     clear
  129.     echo "Stworzono grupe!"
  130.     sleep 1
  131. }
  132.  
  133. function create_user()
  134. {
  135.     clear
  136.     echo "Podaj nazwe nowego uzytkownika: "
  137.     read user
  138.     if [ $(getent passwd $user) ]; then
  139.         clear
  140.         echo "Taki uzytkownik juz istnieje. Co zrobic?"
  141.         echo "1 - Usun uzytkownika"
  142.         echo "2 - Sprobuj ponownie z inna nazwa"
  143.         echo "3 - Powrot do menu"
  144.         existing_user;
  145.     else
  146.         echo "Podaj nazwe grupy, do ktorej ma nalezec uzytkownik:"
  147.         read group
  148.         if [ $(getent group $group) ]; then
  149.             add_user;
  150.             useradd $user -m -g $group
  151.             passwd $user
  152.             goto_menu;
  153.         else
  154.             clear
  155.             echo "Podana grupa nie istnieje. Co zrobic?"
  156.             echo "1 - Stworz grupe"
  157.             echo "2 - Wyswietl grupy"
  158.             echo "3 - Powrot do menu"
  159.             existing_group;
  160.         fi
  161.     fi
  162. }
  163.  
  164. function create_group()
  165. {
  166.     clear
  167.     echo "Podaj nazwe nowej grupy: "
  168.     read group
  169.     if [ $(getent group $group) ]; then
  170.         clear
  171.         echo "Podana grupa juz istnieje. Co zrobic?"
  172.         echo "1 - Stworz grupe z inna nazwa"
  173.         echo "2 - Wyswietl grupy"
  174.         echo "3 - Powrot do menu"
  175.         existing_group;
  176.     else   
  177.         add_group;
  178.         groupadd $group
  179.         goto_menu;     
  180.     fi
  181. }
  182.  
  183. function goto_menu()
  184. {
  185.     echo ""
  186.     read -p "Nacisnij dowolny klawisz..." -n1 -s
  187.     clear
  188.     for_sure_not_goto $start
  189. }
  190.  
  191. function menu_root()
  192. {
  193.     case $choice in
  194.         1)  if [ ! -f "$file" ]; then
  195.                 make_system_info_sleep;
  196.                 make_system_info >> $file
  197.                 goto_menu;
  198.             else
  199.                 show_system_info_sleep;
  200.                 existing_data;
  201.             fi;;
  202.         2)  show_system_info;
  203.             goto_menu;;
  204.         3)  create_group;;
  205.         4)  create_user;;
  206.         5)  clear
  207.             exit;;
  208.         6)  clear
  209.             echo -e "Opcja nieaktywna (\e[3mw budowie...\e[0m)"
  210.             goto_menu;;
  211.         0)  clear
  212.             exit;;
  213.         *)  echo "Brak takiej opcji. Powrot do menu."
  214.             goto_menu;;
  215.     esac
  216. }
  217.  
  218. function menu_nonroot()
  219. {
  220.     case $choice in
  221.         1)  if [ ! -f "$file" ]; then
  222.                 make_system_info_sleep;
  223.                 make_system_info >> $file
  224.                 goto_menu;
  225.             else
  226.                 show_system_info_sleep;
  227.                 existing_data;
  228.             fi;;
  229.         2)  show_system_info;
  230.             goto_menu;;
  231.         3)  clear          
  232.             echo "Wymagane podniesienie uprawnien (root)!"
  233.             goto_menu;;
  234.         4)  clear          
  235.             echo "Wymagane podniesienie uprawnien (root)!"
  236.             goto_menu;;
  237.         5)  clear
  238.             exit;;
  239.         6)  clear
  240.             echo "Opcja nieaktywna (\e[3mw budowie...\e[0m)"
  241.             goto_menu;;
  242.         0)  clear
  243.             exit;;
  244.         *)  echo "Brak takiej opcji. Powrot do menu."
  245.             goto_menu;;
  246.     esac
  247. }
  248.  
  249. function make_system_info()
  250. {
  251.     echo "*** Informacje o systemie ***"
  252.     echo "Zalogowany uzytkownik: $USER"
  253.     echo "Katalog domowy: $HOME"
  254.     echo "Informacje o pamieci: "
  255.     echo "----------------------------------------------------------------------"
  256.         free
  257.     echo "----------------------------------------------------------------------"
  258.     echo ""
  259.     echo "Calkowita przesten dysku: "
  260.     echo "----------------------------------------------------------------------"
  261.         df     
  262.     echo "----------------------------------------------------------------------"
  263. }
  264.  
  265. function show_system_info()
  266. {
  267.     clear
  268.     if [ ! -f "$file" ]; then
  269.         echo "Plik nie istnieje. Co zrobic?"
  270.         echo "1 - Stworz plik"
  271.         echo "2 - Powrot do menu"
  272.         read choice
  273.         non_existing_data;
  274.     else
  275.         cat $file  
  276.     fi
  277. }
  278.  
  279. function non_existing_data()
  280. {  
  281.     clear
  282.     case $choice in
  283.         1)  make_system_info_sleep
  284.             make_system_info >> $file
  285.             goto_menu;;
  286.         2)  goto_menu;;
  287.         *)  echo "Brak takiej opcji. Powrot do menu."
  288.             goto_menu;;
  289.     esac
  290. }
  291.  
  292. function existing_data()
  293. {
  294.     clear
  295.     echo "Plik juĹź istnieje, co zrobić?"
  296.         echo "1 - Nadpisz plik"
  297.         echo "2 - Usun plik"
  298.         echo "3 - Nie rob nic"
  299.     existing_data_choice;
  300. }
  301.  
  302. function existing_data_choice()
  303. {
  304.     read choice
  305.     case $choice in
  306.         1)  overwrite;
  307.             make_system_info > $file
  308.             goto_menu;;
  309.         2)  rm system_info.txt
  310.             goto_menu;;
  311.         3)  goto_menu;;
  312.         *)  echo "Brak takiej opcji. Powrot do menu."
  313.             goto_menu;;
  314.     esac
  315. }
  316.  
  317. function make_system_info_sleep()
  318. {
  319.     clear
  320.     echo -e "\e[3mTworzenie pliku z informacjami o systemie\e[0m"
  321.     sleep 0.5
  322.     clear
  323.     echo -e "\e[3mTworzenie pliku z informacjami o systemie.\e[0m"
  324.     sleep 0.5
  325.     clear
  326.     echo -e "\e[3mTworzenie pliku z informacjami o systemie..\e[0m"
  327.     sleep 0.5
  328.     clear
  329.     echo -e "\e[3mTworzenie pliku z informacjami o systemie...\e[0m"
  330.     sleep 0.5
  331.     clear
  332.     echo "Stworzono plik!"
  333.     sleep 1
  334. }
  335.  
  336. function show_system_info_sleep()
  337. {
  338.     clear
  339.     echo -e "\e[3mSzukanie pliku z informacjami o systemie\e[0m"
  340.     sleep 0.5
  341.     clear
  342.     echo -e "\e[3mSzukanie pliku z informacjami o systemie.\e[0m"
  343.     sleep 0.5
  344.     clear
  345.     echo -e "\e[3mSzukanie pliku z informacjami o systemie..\e[0m"
  346.     sleep 0.5
  347.     clear
  348.     echo -e "\e[3mSzukanie pliku z informacjami o systemie...\e[0m"
  349.     sleep 0.5
  350.     clear
  351.     echo "Znaleziono plik!"
  352.     sleep 1
  353. }
  354.  
  355. function overwrite()
  356. {
  357.     clear
  358.     echo -e "\e[3mNadpisywanie pliku z informacjami o systemie\e[0m"
  359.     sleep 0.5
  360.     clear
  361.     echo -e "\e[3mNadpisywanie pliku z informacjami o systemie.\e[0m"
  362.     sleep 0.5
  363.     clear
  364.     echo -e "\e[3mNadpisywanie pliku z informacjami o systemie..\e[0m"
  365.     sleep 0.5
  366.     clear
  367.     echo -e "\e[3mNadpisywanie pliku z informacjami o systemie...\e[0m"
  368.     sleep 0.5
  369.     clear
  370.     echo "Nadpisano plik!"
  371.     sleep 1
  372. }
  373.  
  374. clear
  375.  
  376. for_sure_not_goto $start
  377. start:
  378. menu;
  379. read choice
  380. if [ $userid = 0 ]; then
  381.     menu_root;
  382. else
  383.     menu_nonroot;
  384. fi
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top