The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"Заведение пользователя линукс через фаил"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Открытые системы на сервере (Авторизация и аутентификация, LDAP / Linux)
Изначальное сообщение [ Отслеживать ]

"Заведение пользователя линукс через фаил"  –1 +/
Сообщение от Docemail (ok), 28-Апр-18, 14:30 
Господа подскажите как можно заводить пользователей liux черз файл ответов ?
Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Заведение пользователя линукс через фаил"  +/
Сообщение от ыы (?), 28-Апр-18, 14:49 
> Господа подскажите как можно заводить пользователей liux черз файл ответов ?

Ответов на что?

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "Заведение пользователя линукс через фаил"  +/
Сообщение от Docemail (ok), 28-Апр-18, 15:03 
>> Господа подскажите как можно заводить пользователей liux через файл ответов ?
> Ответов на что?

ну скажи сторонней программой был сформировать файл с нужными параметрами (логином там паролем хомфолдером) и чтобы данными  из этого файла автоматом создать пользователя


Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

3. "Заведение пользователя линукс через фаил"  +/
Сообщение от ыы (?), 28-Апр-18, 15:10 
>>> Господа подскажите как можно заводить пользователей liux через файл ответов ?
>> Ответов на что?
> ну скажи сторонней программой был сформировать файл с нужными параметрами (логином там
> паролем хомфолдером) и чтобы данными  из этого файла автоматом создать
> пользователя

пользователи в linux заводятся с помощью консольной утилиты.
Да, в можете сформировать скрипт на shell, в котором последовательно делать вызовы утилиты создающей пользователя в системе, назначать ему права и так далее.

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

4. "Заведение пользователя линукс через фаил"  –2 +/
Сообщение от Docemail (ok), 28-Апр-18, 15:38 
>>>> Господа подскажите как можно заводить пользователей liux через файл ответов ?
>>> Ответов на что?
>> ну скажи сторонней программой был сформировать файл с нужными параметрами (логином там
>> паролем хомфолдером) и чтобы данными  из этого файла автоматом создать
>> пользователя
> пользователи в linux заводятся с помощью консольной утилиты.
> Да, в можете сформировать скрипт на shell, в котором последовательно делать вызовы
> утилиты создающей пользователя в системе, назначать ему права и так далее.

я понимаю что создают с помощью shell
и мне не нужно последовательно спрашивать данные, мне нужно их импортировать из файла


Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

5. "Заведение пользователя линукс через фаил"  +/
Сообщение от PereresusNeVlezaetBuggy (ok), 28-Апр-18, 19:30 
>[оверквотинг удален]
>>>> Ответов на что?
>>> ну скажи сторонней программой был сформировать файл с нужными параметрами (логином там
>>> паролем хомфолдером) и чтобы данными  из этого файла автоматом создать
>>> пользователя
>> пользователи в linux заводятся с помощью консольной утилиты.
>> Да, в можете сформировать скрипт на shell, в котором последовательно делать вызовы
>> утилиты создающей пользователя в системе, назначать ему права и так далее.
> я понимаю что создают с помощью shell
> и мне не нужно последовательно спрашивать данные, мне нужно их импортировать из
> файла

man useradd

И цикл «while read ...»

Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

6. "Заведение пользователя линукс через фаил"  –1 +/
Сообщение от Docemail (ok), 07-Май-18, 15:47 
>[оверквотинг удален]
>>>> паролем хомфолдером) и чтобы данными  из этого файла автоматом создать
>>>> пользователя
>>> пользователи в linux заводятся с помощью консольной утилиты.
>>> Да, в можете сформировать скрипт на shell, в котором последовательно делать вызовы
>>> утилиты создающей пользователя в системе, назначать ему права и так далее.
>> я понимаю что создают с помощью shell
>> и мне не нужно последовательно спрашивать данные, мне нужно их импортировать из
>> файла
> man useradd
> И цикл «while read ...»

подскажите    -p password    Encrypted password as returned by crypt(3)
как я понимаю необходимо указывать уже зашифрованный пароль , в какой системе его необходимо зашифровать и есть ли возможность указывать пароль обычным текстом (не зашифрованным)

Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

7. "Заведение пользователя линукс через фаил"  +/
Сообщение от lavremail (ok), 07-Май-18, 16:09 
>[оверквотинг удален]
>>> я понимаю что создают с помощью shell
>>> и мне не нужно последовательно спрашивать данные, мне нужно их импортировать из
>>> файла
>> man useradd
>> И цикл «while read ...»
> подскажите    -p password    Encrypted password as
> returned by crypt(3)
> как я понимаю необходимо указывать уже зашифрованный пароль , в какой системе
> его необходимо зашифровать и есть ли возможность указывать пароль обычным текстом
> (не зашифрованным)

чтение man'ов никто не отменял, остальное зависит от того механизма
авторизация пользователей: локальные (в системе) или в ldap/kerberos и тд и тп
если системные - см shadow и поддерживаемые hash методы: des, md5 based, sha256 based ...

ну например так:

useradd -m -p $(openssl passwd -1 ${PASSWORD}) -s /bin/bash ${USERNAME}

ps. поиск linux batch useradd должен помочь

Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

8. "Заведение пользователя линукс через фаил"  +/
Сообщение от Docemail (ok), 07-Май-18, 17:28 

> ну например так:
> useradd -m -p $(openssl passwd -1 ${PASSWORD}) -s /bin/bash ${USERNAME}
> ps. поиск linux batch useradd должен помочь

вот что получилось


i=$(cat user.txt)
set -- $i
useradd -d $2 -s /bin/false -g ftp -c $3 $1
mkdir $2
chown -R -f -v $1:ftp $2
echo "$1:$4" | chpasswd

вроде работает

Ответить | Правка | ^ к родителю #7 | Наверх | Cообщить модератору

9. "Заведение пользователя линукс через фаил"  +/
Сообщение от PereresusNeVlezaetBuggy (ok), 07-Май-18, 17:56 

>> ну например так:
>> useradd -m -p $(openssl passwd -1 ${PASSWORD}) -s /bin/bash ${USERNAME}
>> ps. поиск linux batch useradd должен помочь
> вот что получилось
> i=$(cat user.txt)
> set -- $i

Вот это — ужасно.

Во-первых, вы читаете весь файл целиком и держите в памяти.

Во-вторых, его содержимое, включая пароль пользователя, теперь светится в выводе ps.

Если надо читать из файла — сделайте простой цикл:

while read user dir gecos pw; do
...
done <user.txt

Если заведомо известно, что строчка одна, можно сделать просто read, без цикла.

Ответить | Правка | ^ к родителю #8 | Наверх | Cообщить модератору

10. "Заведение пользователя линукс через фаил"  +/
Сообщение от Docemail (ok), 07-Май-18, 21:17 
>>> ну например так:
>>> useradd -m -p $(openssl passwd -1 ${PASSWORD}) -s /bin/bash ${USERNAME}
>>> ps. поиск linux batch useradd должен помочь
>> вот что получилось
>> i=$(cat user.txt)
>> set -- $i
> Вот это — ужасно.
> Во-первых, вы читаете весь файл целиком и держите в памяти.

не вижу проблемы , там за раз одна строчка
> Во-вторых, его содержимое, включая пароль пользователя, теперь светится в выводе ps.

сколько смотрел , но так и не поймал чтобы useradd  там засветился
> Если надо читать из файла — сделайте простой цикл:

я изначально не селен в написание скрипта sell , это то целый день гуглил
> while read user dir gecos pw; do

а эту строку вообще не понимаю  :)


Ответить | Правка | ^ к родителю #9 | Наверх | Cообщить модератору

11. "Заведение пользователя линукс через фаил"  +/
Сообщение от PereresusNeVlezaetBuggy (ok), 08-Май-18, 09:56 
>>>> ну например так:
>>>> useradd -m -p $(openssl passwd -1 ${PASSWORD}) -s /bin/bash ${USERNAME}
>>>> ps. поиск linux batch useradd должен помочь
>>> вот что получилось
>>> i=$(cat user.txt)
>>> set -- $i
>> Вот это — ужасно.
>> Во-первых, вы читаете весь файл целиком и держите в памяти.
> не вижу проблемы , там за раз одна строчка

Вопрос формирования привычек. Чтобы потом не было мучительно больно. Можете считать это преподавательским занудством. :)

>> Во-вторых, его содержимое, включая пароль пользователя, теперь светится в выводе ps.
> сколько смотрел , но так и не поймал чтобы useradd  там
> засветился

Ручками не поймаете, а вот нехорошая прога (например, сломанный браузер, или какой-нибудь тухлый сервис) — поймает.

>> Если надо читать из файла — сделайте простой цикл:
> я изначально не селен в написание скрипта sell , это то целый
> день гуглил
>> while read user dir gecos pw; do
> а эту строку вообще не понимаю  :)

read VAR1 VAR2 VAR3 ...

Считывает строку со стандартного ввода и записывает каждое найденное слово в указанные переменные VAR1, VAR2 и так далее. В последнюю из перечисленных переменных (в данном случае VAR3) попадает весь оставшийся текст в строке. Команда read возвращает 0 при успешном чтении, не-0 при ошибке (например, достигнут конец файла). Поэтому она легко кладётся в цикл — получается «читать строку и разбивать на четыре части до конца файла».

В приведённом мной примере четыре переменные названы user, dir, gecos и pw, по аналогии с вашим скриптом выше.

Ответить | Правка | ^ к родителю #10 | Наверх | Cообщить модератору

12. "Заведение пользователя линукс через фаил"  +/
Сообщение от Docemail (ok), 08-Май-18, 10:46 
>[оверквотинг удален]
>> а эту строку вообще не понимаю  :)
> read VAR1 VAR2 VAR3 ...
> Считывает строку со стандартного ввода и записывает каждое найденное слово в указанные
> переменные VAR1, VAR2 и так далее. В последнюю из перечисленных переменных
> (в данном случае VAR3) попадает весь оставшийся текст в строке. Команда
> read возвращает 0 при успешном чтении, не-0 при ошибке (например, достигнут
> конец файла). Поэтому она легко кладётся в цикл — получается «читать
> строку и разбивать на четыре части до конца файла».
> В приведённом мной примере четыре переменные названы user, dir, gecos и pw,
> по аналогии с вашим скриптом выше.

спасибо за разъяснение, буду пробовать

Ответить | Правка | ^ к родителю #11 | Наверх | Cообщить модератору

13. "Заведение пользователя линукс через фаил"  +/
Сообщение от Docemail (ok), 08-Май-18, 15:04 
>[оверквотинг удален]
>> read VAR1 VAR2 VAR3 ...
>> Считывает строку со стандартного ввода и записывает каждое найденное слово в указанные
>> переменные VAR1, VAR2 и так далее. В последнюю из перечисленных переменных
>> (в данном случае VAR3) попадает весь оставшийся текст в строке. Команда
>> read возвращает 0 при успешном чтении, не-0 при ошибке (например, достигнут
>> конец файла). Поэтому она легко кладётся в цикл — получается «читать
>> строку и разбивать на четыре части до конца файла».
>> В приведённом мной примере четыре переменные названы user, dir, gecos и pw,
>> по аналогии с вашим скриптом выше.
> спасибо за разъяснение, буду пробовать

что-то не могу понять - read
вроде параметр -u должен считывать из файла , но что-то он возвращает пустые значения

read -u /home/user.txt user dir pw gecos
useradd -d $dir -s /bin/false -g ftp -c $gecos $user
mkdir $dir
chown -R -f -v $user:ftp $dir
echo "$user:$pw" | chpasswd

read: /home/user.txt: invalid file descriptor specification

Ответить | Правка | ^ к родителю #12 | Наверх | Cообщить модератору

14. "Заведение пользователя линукс через фаил"  +/
Сообщение от VladimirV (ok), 08-Май-18, 18:37 
> что-то не могу понять - read
> вроде параметр -u должен считывать из файла , но что-то он возвращает
> пустые значения
> read -u /home/user.txt user dir pw gecos
> useradd -d $dir -s /bin/false -g ftp -c $gecos $user
> mkdir $dir
> chown -R -f -v $user:ftp $dir
> echo "$user:$pw" | chpasswd
>  read: /home/user.txt: invalid file descriptor specification

во-первых
read [-ers] [-a aname] [-d delim] [-i text] [-n nchars] [-N nchars] [-p prompt] [-t timeout] [-u fd] [name ...]
-u fd  Read input from file descriptor fd.
что такое дескриптор файла?
http://rus-linux.net/MyLDP/BOOKS/abs-guide/flat/abs-book.htm...
почитать
http://rus-linux.net/MyLDP/BOOKS/abs-guide/flat/abs-book.htm...

Ответить | Правка | ^ к родителю #13 | Наверх | Cообщить модератору

15. "Заведение пользователя линукс через фаил"  +/
Сообщение от Docemail (ok), 20-Сен-18, 14:38 
>[оверквотинг удален]
>> echo "$user:$pw" | chpasswd
>>  read: /home/user.txt: invalid file descriptor specification
> во-первых
> read [-ers] [-a aname] [-d delim] [-i text] [-n nchars] [-N nchars]
> [-p prompt] [-t timeout] [-u fd] [name ...]
> -u fd  Read input from file descriptor fd.
> что такое дескриптор файла?
> http://rus-linux.net/MyLDP/BOOKS/abs-guide/flat/abs-book.htm...
> почитать
> http://rus-linux.net/MyLDP/BOOKS/abs-guide/flat/abs-book.htm...

как говорится для потомков , вот что получилось рабочие

#!/bin/sh
exec 10< /ftp/user.txt
read -u 10 user pw dir da gecos
data=`date -d "+$da day+" "+%F"`
echo $user $pw $dir $data $gecos
useradd -d $dir -m -s /bin/false -g ftp -c "$gecos" -e $data $user
echo "$user:$pw" | chpasswd
rm /srv/ftp/add_users/user.txt


формат файла который обрабатывается

user pass home_dir время жизни описание


Ответить | Правка | ^ к родителю #14 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру