123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120 |
- #!/bin/bash
- # Milis Linux Kullanıcı Ekleme Betiği
- # Milis Linux 2.0 2019
- # Nutyx Linux kullanıcı ekleme betiğinden çatallanmıştır.
- # https://github.com/NuTyX/packages-x86_64/blob/rolling/scripts/setup-nutyx.in#L203
- # Değişkenler
- user_groups=""
- default_groups="users,input,disk,network,netdev,floppy,fuse,video,lp,tty,audio,dialout,cdrom,scanner,adm,vboxusers,wheel,pulse-access"
- # İşlevler
- check_args()
- {
- description="$1"
- name="$2"
- name_test=`echo -n "$name" | sed 's@^[a-z][a-z0-9]*$@@g'`
- if [ "$name_test" != "" ]; then
- echo 1>&2 "HATA=kullanıcı sorunlu kareketerler içerrmektedir."
- return 1
- fi
- if grep "$name" /etc/passwd > /dev/null; then
- echo 1>&2 "$name kullanıcısı zaten var!"
- return 2
- fi
- desc_test=`echo "$description" | sed 's@^[[:alnum:]! -.,~_@;%<>?]*$@@ig'`
- if [ "$desc_test" != "" ]; then
- echo 1>&2 "HATA=Kullanıcı tam ismi ! -.,~_\\\@;%<>? karekerleri içeremez.Harf-sayı olmalıdır! "
- return 3
- fi
- return 0
- }
- usage()
- {
- echo 1>&2 'KULLANIM:
- ko kullanıcı kullanıcı_ismi'
- exit 1
- }
- if [ $# -eq 1 -o $# -gt 2 ]; then
- usage
- fi
- if [ $UID -ne 0 ]; then
- echo 1>&2 "Bu betik root yetkileriyle çalışmaktadır."
- exit 1;
- fi
- if [ $# -lt 2 ]; then
- echo -n "Kullanıcı: "
- read name
- echo -n "Kullanıcı tam ismi: "
- read description
- else
- description="$1"
- name="$2"
- fi
- check_args "$description" "$name"
- ret=$?
- while [ $ret -ne 0 ]; do
- if [ $ret -lt 3 ]; then
- echo -n "Kullanıcı: "
- read name
- fi
- if [ $ret -eq 3 ]; then
- echo -n "Kullanıcı tam ismi: "
- read description
- fi
- if [ "$name" == "!stop!" -o "$description" == "!stop!" ]; then
- exit 1
- fi
- check_args "$description" "$name"
- ret=$?
- done
- export IFS=","
- for entry in $default_groups; do
- if grep $entry /etc/group > /dev/null ; then
- if [ -z "$user_groups" ]; then
- user_groups=$entry
- else
- user_groups="$user_groups,$entry"
- fi
- fi
- done
- echo 1>&2 "
- $name kullanıcısının oluşturulması.
- "
- if [ -z "$user_groups" ]; then
- /usr/bin/useradd -c "${description}" -m "${name}" || exit 1
- else
- /usr/bin/useradd -c "${description}" -G "$user_groups" -m "${name}" || exit 1
- fi
- if [ -f /root/.xinitrc ]; then
- cp /root/.xinitrc /home/${name}
- fi
- passwd "$name"
- # kullanıcı izinlerinin ayarlanması
- if [ -d /home/${name} ]; then
- #evdizini
- chown -R ${name}:${name} /home/${name}
- #ses aygıtları
- # todo!!! Milis2 için gerek var mı? kontro edilecek
- setfacl -m u:${name}:rw /dev/snd/*
- fi
- exit 0
|