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


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

Автор Тема: bash скриптик  (Прочитано 2498 раз)

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

Оффлайн zondm

  • Автор темы
  • Новичок
  • *
  • Сообщений: 27
    • Просмотр профиля
bash скриптик
« : 26 Августа 2010, 17:13:59 »
ЛЮДИ! Я в BASH ни бум-бум, но срочно нужен скриптик, который делает следующее:
1. заводит учетные записи из файла в котором список юзеров (причем реальное имя - полностью а логин 4 первых буквы)
2. присваивает каждому юзеру пароль вида: хххWWW. где ххх - первые 4 буквы учетной записи пользователя а WWW цифровой код
3. создает папки с именами из этого же файла (причем владельцем определенной папки должен быть соответствующий юзер из этого списка)

У кого какие мысли?
« Последнее редактирование: 26 Августа 2010, 18:46:58 от zondm »

Оффлайн dieselist

  • Активист
  • *
  • Сообщений: 525
    • Просмотр профиля
    • diesel.pp.ua
Re: bash скриптик
« Ответ #1 : 26 Августа 2010, 17:19:56 »
WWW - какой именно цифровой код? три любые цифры? несекьюрный какой-то пароль выходит ;)
где именно тебе надо "создавать папки"?
покажи пару строк из твоего файлика, отуда надо брать данные.
Ubuntu, Gentoo, RHEL, AIX

Оффлайн zondm

  • Автор темы
  • Новичок
  • *
  • Сообщений: 27
    • Просмотр профиля
Re: bash скриптик
« Ответ #2 : 26 Августа 2010, 17:35:19 »
Файлик содержит список учеников на транслите:
,,,,,,,
Komarov
Kornjuhova
Kocjuba
KuznecovaLar
,,,,,,,

а число у всех одинаковое на пример 777, хотя если Вы сможете сделать скрипт где подставляется год рождения (из другого файлика) то будет СУПЕР!

Оффлайн VestniK

  • Активист
  • *
  • Сообщений: 594
    • Просмотр профиля
Re: bash скриптик
« Ответ #3 : 26 Августа 2010, 17:52:00 »
По пунктам 1 и 3 прочитай man useradd он и пользователей создаёт и домашние папки для них. Так же можно использовать шаблон содержания домашней папки, а так же при создании пользователя можно сделать так, чтобы его попросили сменить пароль при следующем входе в систему.

Если файл содержит имена пользователей без пробелов одно имя на строку, то
for user in $(cat file); do useradd <правильные ключи> ${user}; done;
сделает то, что тебе нужно.

P.S. не спеши экспериментировать с массовым созданием пользователей через цикл for пока не разберёшься как создать одного пользователя удовлетворяющего твоим потребностям.

Пользователь решил продолжить мысль 26 Августа 2010, 17:54:57:
И в догонку, пример как снеренить пароль по тому принципу который ты описал:
vidyuk@peti-laptop:~/workspace/edupro$ passwd="$(echo komarov | head -c 3)777"
vidyuk@peti-laptop:~/workspace/edupro$ echo ${passwd}
kom777
vidyuk@peti-laptop:~/workspace/edupro$
« Последнее редактирование: 26 Августа 2010, 17:54:57 от VestniK »

Оффлайн dieselist

  • Активист
  • *
  • Сообщений: 525
    • Просмотр профиля
    • diesel.pp.ua
Re: bash скриптик
« Ответ #4 : 26 Августа 2010, 17:56:56 »
for i in `cat /home/user/user_list.txt`
do
useradd $i -m -s /bin/bash
echo "$i:`echo $i | cut -c1-3`777" | chpasswd
mkdir /path/$i && chown $i /path/$i
done

как-то так. если дашь кусок файла с датами рождения - попробуем и оттуда выдрать чегой-то.
хотя, ИМХО, было бы удобнее если бы имя и дата рождения были в одном файле.
Ubuntu, Gentoo, RHEL, AIX

Оффлайн zondm

  • Автор темы
  • Новичок
  • *
  • Сообщений: 27
    • Просмотр профиля
Re: bash скриптик
« Ответ #5 : 26 Августа 2010, 18:36:07 »
А в куске кода 777 это полный доступ?
Я пробовал вот так:
 #!/bin/sh
    for i in `more userlist `
    do
    echo $i
    adduser $i
done
for i in `more userlist `
    do
    echo $i
    mkdir $i
done
//////////////////////
Но тут выставлялись права рута! и не прикрепляется год.
А файл с годами аналогичен пользователям:

,,,,,,
1999
2000
2001
,,,,,,,
« Последнее редактирование: 26 Августа 2010, 18:39:41 от zondm »

Оффлайн VestniK

  • Активист
  • *
  • Сообщений: 594
    • Просмотр профиля
Re: bash скриптик
« Ответ #6 : 26 Августа 2010, 18:46:31 »
Цитировать
А в куске кода 777 это полный доступ?
Нет, это просто три цифры в конце пароля они могут быть любыми какими ты захочешь

mkdir /path/$i && chown $i /path/$i
А это зачем? По смыслу пункт 3 у ТС это домашний каталог. Если есть потребность его разместить не в /home, то это тоже можно ключами useradd разрулить.

Оффлайн dieselist

  • Активист
  • *
  • Сообщений: 525
    • Просмотр профиля
    • diesel.pp.ua
Re: bash скриптик
« Ответ #7 : 26 Августа 2010, 18:48:43 »
Взрыв мозга! парва рута потому что ты свой скрипт под рутом выполняешь.
и с какой радости тут должен прикрепляться год?

777 - в моем скрипте это просто 3 цифры в конце пароля, как ты и просил.
какое соответствие между файлом с именами и файлом с годами? они соотносятся построчно?

Пользователь решил продолжить мысль 26 Августа 2010, 18:49:57:
А это зачем? По смыслу пункт 3 у ТС это домашний каталог. Если есть потребность его разместить не в /home, то это тоже можно ключами useradd разрулить.

Затем что попросил ТС. Он не указал, что это будет хомяк, может ему в /var/www для каждого пользователя каталог создать надо, почем я знаю :)
а для useradd я и так указал ключ -m, который создает хомяк.
Ubuntu, Gentoo, RHEL, AIX

Оффлайн zondm

  • Автор темы
  • Новичок
  • *
  • Сообщений: 27
    • Просмотр профиля
Re: bash скриптик
« Ответ #8 : 26 Августа 2010, 19:31:01 »
Взрыв мозга! парва рута потому что ты свой скрипт под рутом выполняешь.
и с какой радости тут должен прикрепляться год?

777 - в моем скрипте это просто 3 цифры в конце пароля, как ты и просил.
какое соответствие между файлом с именами и файлом с годами? они соотносятся построчно?

Пользователь решил продолжить мысль 26 Августа 2010, 18:49:57:
А это зачем? По смыслу пункт 3 у ТС это домашний каталог. Если есть потребность его разместить не в /home, то это тоже можно ключами useradd разрулить.

Затем что попросил ТС. Он не указал, что это будет хомяк, может ему в /var/www для каждого пользователя каталог создать надо, почем я знаю :)
а для useradd я и так указал ключ -m, который создает хомяк.

Совершенно верно. Буду прикручивать на отдельном диске. а хомяк не нужен.
« Последнее редактирование: 26 Августа 2010, 19:44:11 от zondm »

Оффлайн VestniK

  • Активист
  • *
  • Сообщений: 594
    • Просмотр профиля
Re: bash скриптик
« Ответ #9 : 26 Августа 2010, 20:15:54 »
Хомяк нужен, так как куда ещё все настройки сыпастья будут
for user in $(cat file); do useradd -b /path/to/custom/disk/mount/point -m <other keys> ${user}; done
mkdir/chown/chmod сделает useradd и заведомо правильным образом.

Оффлайн zondm

  • Автор темы
  • Новичок
  • *
  • Сообщений: 27
    • Просмотр профиля
Re: bash скриптик
« Ответ #10 : 26 Августа 2010, 20:56:00 »
Хомяк нужен, так как куда ещё все настройки сыпастья будут
for user in $(cat file); do useradd -b /path/to/custom/disk/mount/point -m <other keys> ${user}; done
mkdir/chown/chmod сделает useradd и заведомо правильным образом.

Я так понял из этой строки:
для пользователя в файле; добавить юзера с базовым каталогом (путь к каталогу) создав хомяк $ юзер
А вот строчка /mkdir/chown/chmod сделает useradd и заведомо правильным образом./ для меня не ясна.
Уж такой я начинающий.

Оффлайн dieselist

  • Активист
  • *
  • Сообщений: 525
    • Просмотр профиля
    • diesel.pp.ua
Re: bash скриптик
« Ответ #11 : 26 Августа 2010, 22:11:19 »
Хомяк нужен, так как куда ещё все настройки сыпастья будут
for user in $(cat file); do useradd -b /path/to/custom/disk/mount/point -m <other keys> ${user}; done
mkdir/chown/chmod сделает useradd и заведомо правильным образом.
Я так понял из этой строки:
для пользователя в файле; добавить юзера с базовым каталогом (путь к каталогу) создав хомяк $ юзер

почти угадал :D

А вот строчка /mkdir/chown/chmod сделает useradd и заведомо правильным образом./ для меня не ясна.
Уж такой я начинающий.

То что ты начинающий - плохая отмазка. VestniK видимо имел в виду, что затем ты сможешь указать правильного овнера и права на каталог.

P.S. а чем тебя мой вариант скрипта не устраивает? ;)
Ubuntu, Gentoo, RHEL, AIX

Оффлайн VestniK

  • Активист
  • *
  • Сообщений: 594
    • Просмотр профиля
Re: bash скриптик
« Ответ #12 : 27 Августа 2010, 03:12:22 »
VestniK видимо имел в виду, что затем ты сможешь указать правильного овнера и права на каталог.
Нет я имел в виду, что useradd с ключами -b /path/to/custom/disk/mount/point -m создаст каталог /path/to/custom/disk/mount/point/created_user_name с правильным влдельцем и правильными правами.

Оффлайн dieselist

  • Активист
  • *
  • Сообщений: 525
    • Просмотр профиля
    • diesel.pp.ua
Re: bash скриптик
« Ответ #13 : 27 Августа 2010, 09:19:23 »
тьху ты, без поллитры так и не поймешь :D
Ubuntu, Gentoo, RHEL, AIX

Оффлайн zondm

  • Автор темы
  • Новичок
  • *
  • Сообщений: 27
    • Просмотр профиля
Re: bash скриптик
« Ответ #14 : 27 Августа 2010, 12:17:16 »
Хомяк нужен, так как куда ещё все настройки сыпастья будут
for user in $(cat file); do useradd -b /path/to/custom/disk/mount/point -m <other keys> ${user}; done
mkdir/chown/chmod сделает useradd и заведомо правильным образом.
Я так понял из этой строки:
для пользователя в файле; добавить юзера с базовым каталогом (путь к каталогу) создав хомяк $ юзер

почти угадал :D

А вот строчка /mkdir/chown/chmod сделает useradd и заведомо правильным образом./ для меня не ясна.
Уж такой я начинающий.

То что ты начинающий - плохая отмазка. VestniK видимо имел в виду, что затем ты сможешь указать правильного овнера и права на каталог.

P.S. а чем тебя мой вариант скрипта не устраивает? ;)

Спасибо народ! Все устраивает, только надо поэксперементировать. Может совмещу все варианты. Получится - скину рабочий скрипт!

 

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