ko 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151
  1. #!/bin/bash
  2. # Milis Linux Kullanıcı Ekleme Betiği
  3. # Milis Linux 2.0 2019
  4. # Nutyx Linux kullanıcı ekleme betiğinden çatallanmıştır.
  5. # https://github.com/NuTyX/packages-x86_64/blob/rolling/scripts/setup-nutyx.in#L203
  6. # Değişkenler
  7. user_groups=""
  8. default_groups="users disk network netdev floppy fuse video lp tty audio cdrom scanner adm vboxusers wheel pulse-access"
  9. # Boşluk sorunlarını engellemek için
  10. OLD_IFS=$IFS
  11. IFS="|
  12. "
  13. # İşlevler
  14. check_args()
  15. {
  16. description="$1"
  17. name="$2"
  18. name_test=`echo -n "$name" | sed 's@^[a-z][a-z0-9]*$@@g'`
  19. if [ "$name_test" != "" ]; then
  20. echo 1>&2 "HATA=kullanıcı sorunlu kareketerler içerrmektedir."
  21. return 1
  22. fi
  23. if grep "$name" /etc/passwd > /dev/null; then
  24. echo 1>&2 "$name kullanıcısı zaten var!"
  25. return 2
  26. fi
  27. desc_test=`echo "$description" | sed 's@^[[:alnum:]! -.,~_@;%<>?]*$@@ig'`
  28. if [ "$desc_test" != "" ]; then
  29. echo 1>&2 "HATA=Kullanıcı tam ismi ! -.,~_\\\@;%<>? karekerleri içeremez.Harf-sayı olmalıdır! "
  30. return 3
  31. fi
  32. return 0
  33. }
  34. usage()
  35. {
  36. echo 1>&2 'KULLANIM:
  37. ko kullanıcı kullanıcı_ismi'
  38. exit 1
  39. }
  40. # kullanıcıya Milis Xfce4 öntanımlı masaüstü ayarlarının kopyalanması
  41. xfce4_ayarla(){
  42. if [ $1 ];then
  43. _isim=$1
  44. mkdir -p /home/${_isim}/.config
  45. if [ -d /etc/skel/xfce4 ];then
  46. cp -rf /etc/skel/xfce4 /home/${_isim}/.config/
  47. else
  48. cp -rf /root/.config/xfce4 /home/${_isim}/.config/
  49. fi
  50. else
  51. echo "kullanıcı parametresi eksik"
  52. fi
  53. }
  54. if [ $# -eq 1 -o $# -gt 2 ]; then
  55. usage
  56. fi
  57. if [ $UID -ne 0 ]; then
  58. echo 1>&2 "Bu betik root yetkileriyle çalışmaktadır."
  59. exit 1;
  60. fi
  61. if [ $# -lt 2 ]; then
  62. echo -n "Kullanıcı: "
  63. read name
  64. echo -n "Kullanıcı tam ismi: "
  65. read description
  66. else
  67. description="$1"
  68. name="$2"
  69. fi
  70. check_args "$description" "$name"
  71. ret=$?
  72. while [ $ret -ne 0 ]; do
  73. if [ $ret -lt 3 ]; then
  74. echo -n "Kullanıcı: "
  75. read name
  76. fi
  77. if [ $ret -eq 3 ]; then
  78. echo -n "Kullanıcı tam ismi: "
  79. read description
  80. fi
  81. if [ "$name" == "!stop!" -o "$description" == "!stop!" ]; then
  82. exit 1
  83. fi
  84. check_args "$description" "$name"
  85. ret=$?
  86. done
  87. for entry in $default_groups; do
  88. if grep $entry /etc/group > /dev/null ; then
  89. if [ -z "$user_groups" ]; then
  90. user_groups=$entry
  91. else
  92. user_groups="$user_groups,$entry"
  93. fi
  94. fi
  95. done
  96. echo 1>&2 "
  97. $name kullanıcısının oluşturulması.
  98. "
  99. if [ -z "$user_groups" ]; then
  100. /usr/bin/useradd -c "${description}" -m "${name}" || exit 1
  101. else
  102. /usr/bin/useradd -c "${description}" -G "$user_groups" -m "${name}" || exit 1
  103. fi
  104. if [ -f /root/.xinitrc ]; then
  105. cp /root/.xinitrc /home/${name}
  106. fi
  107. passwd "$name"
  108. while true; do
  109. if [ `pgrep xfce4-session` ];then
  110. echo "${name} için Milis-Xfce4 öntanımlı masaüstü ayarları kopyalansın mı?";read -p "e veya h-> " eh
  111. case $eh in
  112. [Ee]* ) xfce4_ayarla ${name}; break;;
  113. [Hh]* ) break;;
  114. * ) echo "e veya h";;
  115. esac
  116. fi
  117. exit 0
  118. done
  119. # kullanıcı izinlerinin ayarlanması
  120. if [ -d /home/${name} ]; then
  121. #evdizini
  122. chown -R ${name}:${name} /home/${name}
  123. #ses aygıtları
  124. # todo!!! Milis2 için gerek var mı? kontro edilecek
  125. setfacl -m u:${name}:rw /dev/snd/*
  126. fi
  127. exit 0