Advertisement
Guest User

Untitled

a guest
Jun 13th, 2018
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.79 KB | None | 0 0
  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
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement