Господа подскажите как можно заводить пользователей liux черз файл ответов ?
> Господа подскажите как можно заводить пользователей liux черз файл ответов ?Ответов на что?
>> Господа подскажите как можно заводить пользователей liux через файл ответов ?
> Ответов на что?ну скажи сторонней программой был сформировать файл с нужными параметрами (логином там паролем хомфолдером) и чтобы данными из этого файла автоматом создать пользователя
>>> Господа подскажите как можно заводить пользователей liux через файл ответов ?
>> Ответов на что?
> ну скажи сторонней программой был сформировать файл с нужными параметрами (логином там
> паролем хомфолдером) и чтобы данными из этого файла автоматом создать
> пользователяпользователи в linux заводятся с помощью консольной утилиты.
Да, в можете сформировать скрипт на shell, в котором последовательно делать вызовы утилиты создающей пользователя в системе, назначать ему права и так далее.
>>>> Господа подскажите как можно заводить пользователей liux через файл ответов ?
>>> Ответов на что?
>> ну скажи сторонней программой был сформировать файл с нужными параметрами (логином там
>> паролем хомфолдером) и чтобы данными из этого файла автоматом создать
>> пользователя
> пользователи в linux заводятся с помощью консольной утилиты.
> Да, в можете сформировать скрипт на shell, в котором последовательно делать вызовы
> утилиты создающей пользователя в системе, назначать ему права и так далее.я понимаю что создают с помощью shell
и мне не нужно последовательно спрашивать данные, мне нужно их импортировать из файла
>[оверквотинг удален]
>>>> Ответов на что?
>>> ну скажи сторонней программой был сформировать файл с нужными параметрами (логином там
>>> паролем хомфолдером) и чтобы данными из этого файла автоматом создать
>>> пользователя
>> пользователи в linux заводятся с помощью консольной утилиты.
>> Да, в можете сформировать скрипт на shell, в котором последовательно делать вызовы
>> утилиты создающей пользователя в системе, назначать ему права и так далее.
> я понимаю что создают с помощью shell
> и мне не нужно последовательно спрашивать данные, мне нужно их импортировать из
> файлаman useradd
И цикл «while read ...»
>[оверквотинг удален]
>>>> паролем хомфолдером) и чтобы данными из этого файла автоматом создать
>>>> пользователя
>>> пользователи в linux заводятся с помощью консольной утилиты.
>>> Да, в можете сформировать скрипт на shell, в котором последовательно делать вызовы
>>> утилиты создающей пользователя в системе, назначать ему права и так далее.
>> я понимаю что создают с помощью shell
>> и мне не нужно последовательно спрашивать данные, мне нужно их импортировать из
>> файла
> man useradd
> И цикл «while read ...»подскажите -p password Encrypted password as returned by crypt(3)
как я понимаю необходимо указывать уже зашифрованный пароль , в какой системе его необходимо зашифровать и есть ли возможность указывать пароль обычным текстом (не зашифрованным)
>[оверквотинг удален]
>>> я понимаю что создают с помощью 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 должен помочь
> ну например так:
> 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вроде работает
>> ну например так:
>> 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, без цикла.
>>> ну например так:
>>> 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а эту строку вообще не понимаю :)
>>>> ну например так:
>>>> 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, по аналогии с вашим скриптом выше.
>[оверквотинг удален]
>> а эту строку вообще не понимаю :)
> read VAR1 VAR2 VAR3 ...
> Считывает строку со стандартного ввода и записывает каждое найденное слово в указанные
> переменные VAR1, VAR2 и так далее. В последнюю из перечисленных переменных
> (в данном случае VAR3) попадает весь оставшийся текст в строке. Команда
> read возвращает 0 при успешном чтении, не-0 при ошибке (например, достигнут
> конец файла). Поэтому она легко кладётся в цикл — получается «читать
> строку и разбивать на четыре части до конца файла».
> В приведённом мной примере четыре переменные названы user, dir, gecos и pw,
> по аналогии с вашим скриптом выше.спасибо за разъяснение, буду пробовать
>[оверквотинг удален]
>> 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" | chpasswdread: /home/user.txt: invalid file descriptor specification
> что-то не могу понять - 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...
>[оверквотинг удален]
>> 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 время жизни описание