ko 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  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,input,disk,network,netdev,floppy,fuse,video,lp,tty,audio,dialout,cdrom,scanner,adm,vboxusers,wheel,pulse-access"
  9. # İşlevler
  10. check_args()
  11. {
  12. description="$1"
  13. name="$2"
  14. name_test=`echo -n "$name" | sed 's@^[a-z][a-z0-9]*$@@g'`
  15. if [ "$name_test" != "" ]; then
  16. echo 1>&2 "HATA=kullanıcı sorunlu kareketerler içerrmektedir."
  17. return 1
  18. fi
  19. if grep "$name" /etc/passwd > /dev/null; then
  20. echo 1>&2 "$name kullanıcısı zaten var!"
  21. return 2
  22. fi
  23. desc_test=`echo "$description" | sed 's@^[[:alnum:]! -.,~_@;%<>?]*$@@ig'`
  24. if [ "$desc_test" != "" ]; then
  25. echo 1>&2 "HATA=Kullanıcı tam ismi ! -.,~_\\\@;%<>? karekerleri içeremez.Harf-sayı olmalıdır! "
  26. return 3
  27. fi
  28. return 0
  29. }
  30. usage()
  31. {
  32. echo 1>&2 'KULLANIM:
  33. ko kullanıcı kullanıcı_ismi'
  34. exit 1
  35. }
  36. if [ $# -eq 1 -o $# -gt 2 ]; then
  37. usage
  38. fi
  39. if [ $UID -ne 0 ]; then
  40. echo 1>&2 "Bu betik root yetkileriyle çalışmaktadır."
  41. exit 1;
  42. fi
  43. if [ $# -lt 2 ]; then
  44. echo -n "Kullanıcı: "
  45. read name
  46. echo -n "Kullanıcı tam ismi: "
  47. read description
  48. else
  49. description="$1"
  50. name="$2"
  51. fi
  52. check_args "$description" "$name"
  53. ret=$?
  54. while [ $ret -ne 0 ]; do
  55. if [ $ret -lt 3 ]; then
  56. echo -n "Kullanıcı: "
  57. read name
  58. fi
  59. if [ $ret -eq 3 ]; then
  60. echo -n "Kullanıcı tam ismi: "
  61. read description
  62. fi
  63. if [ "$name" == "!stop!" -o "$description" == "!stop!" ]; then
  64. exit 1
  65. fi
  66. check_args "$description" "$name"
  67. ret=$?
  68. done
  69. export IFS=","
  70. for entry in $default_groups; do
  71. if grep $entry /etc/group > /dev/null ; then
  72. if [ -z "$user_groups" ]; then
  73. user_groups=$entry
  74. else
  75. user_groups="$user_groups,$entry"
  76. fi
  77. fi
  78. done
  79. echo 1>&2 "
  80. $name kullanıcısının oluşturulması.
  81. "
  82. if [ -z "$user_groups" ]; then
  83. /usr/bin/useradd -c "${description}" -m "${name}" || exit 1
  84. else
  85. /usr/bin/useradd -c "${description}" -G "$user_groups" -m "${name}" || exit 1
  86. fi
  87. if [ -f /root/.xinitrc ]; then
  88. cp /root/.xinitrc /home/${name}
  89. fi
  90. passwd "$name"
  91. # kullanıcı izinlerinin ayarlanması
  92. if [ -d /home/${name} ]; then
  93. #evdizini
  94. chown -R ${name}:${name} /home/${name}
  95. #ses aygıtları
  96. # todo!!! Milis2 için gerek var mı? kontro edilecek
  97. setfacl -m u:${name}:rw /dev/snd/*
  98. fi
  99. exit 0