LINUX.ORG.RU

Непонятен вопрос: каков формат текстового файла?
Если такм ТОЛЬКО имена пользователей, которых надо добавить, то достаточно простейшей командной строки:
cat file | xargs -n1 adduser
то же с циклом:
for i in `cat file`; do adduser $1; done
(первый вариант лучше)
если имя пользователя это первое поле в файле с пробелами в качестве разделителя:
cat file | cut -f1 -d' '|xargs -n1 adduser
и так далее...

anonymous
()
Ответ на: комментарий от anonymous

cat file | xargs -n1 adduser да это подходит но нужно еще и пустой пароль

anonymous
()
Ответ на: комментарий от anonymous

Понимаешь что без пароля недает почту забрать только отослать

anonymous
()

елки-палки! когда же люди научатся правильно формулировать вопросы??? Мне что, надо клещами информацию тянуть: "подскажите, пожалуйста, чем ещё я могу помочь"?? "Если я Вас не совсем задолбал"???

Простейший вариант, всем пользователям устанавливается единый пароль "ххх".

for i in `cat file`; do echo xxx | passwd --stdin $i; done

anonymous
()

2) file состоит из пар "user password". каждая на отдельной строчке.

for i in `cat file|сut -f1 -d' '`; do echo `grep ^$i$ file | cut -f2 -d' '`| passwd --stdin $i; done

anonymous
()

поправка, в предудущем варианте ошибочка for i in `cat file|сut -f1 -d' '`; do echo `grep "^$i " file | cut -f2 -d' '`| passwd --stdin $i; done

anonymous
()
Ответ на: комментарий от anonymous

for i in `cat file`; do echo xxx | passwd --stdin $i; done Этот скрипт не работает

anonymous
()

Всё. я сдаюсь. я не понимаю, чего человеку нужно и "не работает" для меня слишком неопределенное понятие. Я сильно подозреваю, что человек просто прикалывается и помогать в этом ему больше не намерен.

anonymous
()

Можно вот так Желательно бы еще группу, но если не надо, то выкинуть GROUP #!/bin/bash NEW_USERS="users.txt" HOME_BASE="/home/" cat ${NEW_USERS} | \ while read USER PASSWORD GROUP do useradd -g ${GROUP} -p ${PASSWORD} -m -d ${HOME_BASE}${USER} ${USER} done

hbb
()

#!/bin/bash NEW_USERS="users.txt" HOME_BASE="/home/" cat ${NEW_USERS} | \ while read USER PASSWORD GROUP do useradd -g ${GROUP} -p ${PASSWORD} -m -d ${HOME_BASE}${USER} ${USER} done Этот скрипт не работает

anonymous
()

А это не твой тред пятью выше (про пользователей без пароля)? Предлагаю такой вариант на perl:

#!/usr/bin/perl -w

while(<>){`adduser -p "" $_`;}

Имя текстового файла со списком пользователей указать в командной строке при вызове скрипта.

josephson ★★
()
Ответ на: комментарий от anonymous

И ни кто не прикалывается for i in `cat user.txt`; do echo xxx | passwd --stdin $i; done Этот скрипт не работает Выдает passwd: Only one user name may be specified Пример файла в текстовом режиме user.txt user1^M user2^M ..... vasya ....

anonymous
()

дебил дурака включает....

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.