Форум русскоязычного сообщества Ubuntu


Хотите сделать посильный вклад в развитие Ubuntu и русскоязычного сообщества?
Помогите нам с документацией!

Автор Тема: Скрипт на добавление пользователей  (Прочитано 3494 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн PoM4uK

  • Автор темы
  • Новичок
  • *
  • Сообщений: 3
    • Просмотр профиля
Есть скрипт, параметр1 - путь к файлу, параметр2 - список групп для добавление пользователей в них. Запускается скрипт, вводим с клавы пользователя, которого хотим создать, жмем энтер, вводим дальше. хотим прекратить, вводим (то есть ничего не вводим) пустую строку и жмем энтер (все юзеры в файле, с файла уже построчно считываем и создаем учетки и присваиваем им группы, перечисленные в параметре2 через запятую):

#!/bin/bash
echo -n "Enter name:  "
read NAME
echo "${NAME}" > $1
f=true
while [ $f == true ]; do
echo -n "Enter name:  "
read S
echo "${S}" >> $1
if [ -z ${S} ]; then
f=false
sed -i '$d' $1
else continue
fi
done
#"IFS="\n"
password="passwd123"
for STR in `cat $1`; do
useradd -m -d /repository/Lab1/Dev $STR
echo -e "${password}\n${password}" | passwd $STR
usermod -a -G lab1,$2 $STR
done

Как сделать проверку, чтобы "если группы не существует", то вывести сообщение, что "вы опечатались" и не зафейливать юзермод, а всё ровно добавлять в те группы которые сущесвуют.

и есть похожий скрипт, только на добавление в группы уже существующих юзеров.
#!/bin/bash
echo -n "Enter name:  "
read NAME
echo "${NAME}" > $1
f=true
while [ $f == true ]; do
echo -n "Enter name:  "
read S
echo "${S}" >> $1
if [ -z ${S} ]; then
f=false
sed -i '$d' $1
else continue
fi
done
#IFS="\n"
for STR in `cat $1`; do
usermod -a -G lab1,$2 $STR
done
как сделать обе проверки "существует ли юзер" и "существует ли группа. чтобы если опечатлся в чем-то одном, скрипт всё ровно выполнился для существующих юзеров/групп?

Оффлайн ArcFi

  • Старожил
  • *
  • Сообщений: 15189
    • Просмотр профиля
    • aetera.net
Re: Скрипт на добавление пользователей
« Ответ #1 : 29 Октября 2012, 19:39:00 »
Существование юзера и группы можно проверить, грепая файлы /etc/passwd и /etc/group соответственно.

Оффлайн PoM4uK

  • Автор темы
  • Новичок
  • *
  • Сообщений: 3
    • Просмотр профиля
Re: Скрипт на добавление пользователей
« Ответ #2 : 29 Октября 2012, 19:59:18 »
а как с запятыми (там где группы). условие полбеды...а вот условие с продолжением цикла ?... :o

Оффлайн ArcFi

  • Старожил
  • *
  • Сообщений: 15189
    • Просмотр профиля
    • aetera.net
Re: Скрипт на добавление пользователей
« Ответ #3 : 29 Октября 2012, 20:15:30 »
а как с запятыми (там где группы). условие полбеды...а вот условие с продолжением цикла ?... :o
Можно разбить на строки и обработать каждую в отдельности:
echo a,b,c | tr ',' '\n' | while read ; do echo "$REPLY" ; done

Оффлайн victor00000

  • Старожил
  • *
  • Сообщений: 15568
  • Глухонемой (Deaf)
    • Просмотр профиля
Re: Скрипт на добавление пользователей
« Ответ #4 : 30 Октября 2012, 03:40:56 »
Цитировать
useradd -m -d /repository/Lab1/Dev $STR
echo -e "${password}\n${password}" | passwd $STR
useradd -m -d /repository/Lab1/Dev $STR -p $(mkpasswd -s -m sha-512 $password)
Wars ~.o

Оффлайн PoM4uK

  • Автор темы
  • Новичок
  • *
  • Сообщений: 3
    • Просмотр профиля
Re: Скрипт на добавление пользователей
« Ответ #5 : 30 Октября 2012, 14:00:49 »
Можно разбить на строки и обработать каждую в отдельности:
echo a,b,c | tr ',' '\n' | while read ; do echo "$REPLY" ; done
echo a,b,c это ты параметр2 имеешь ввиду ?

 

Страница сгенерирована за 0.018 секунд. Запросов: 22.