Могу ли я автоматически создать пользователя с паролем с помощью pw adduser на freebsd?
Могу ли я автоматически создать пользователя с паролем с помощью pw adduser на freebsd?
pw useradd [name] [switches]
-V etcdir alternate /etc location
-C config configuration file
-q quiet operation
Adding users:
-n name login name
-u uid user id
-c comment user name/comment
-d directory home directory
-e date account expiry date
-p date password expiry date
-g grp initial group
-G grp1,grp2 additional groups
-m [ -k dir ] create and set up home
-M mode home directory permissions
-s shell name of login shell
-o duplicate uid ok
-L class user class
-h fd read password on fd
-H fd read encrypted password on fd
-Y update NIS maps
-N no update
Setting defaults:
-V etcdir alternate /etc location
-D set user defaults
-b dir default home root dir
-e period default expiry period
-p period default password change period
-g group default group
-G grp1,grp2 additional groups
-L class default user class
-k dir default home skeleton
-M mode home directory permissions
-u min,max set min,max uids
-i min,max set min,max gids
-w method set default password method
-s shell default shell
-y path set NIS passwd file path
По этому я могу. Но я не уверен, как... Кажется, мне нужно использовать дескриптор файла, но я не смог увидеть ни одного примера, как это сделать. У меня есть скрипт bash, который должен автоматически делать это без ввода данных пользователем...
Есть идеи?
2 ответа
Вот пример использования файлового дескриптора:
echo password | pw useradd -h 0 user1
Каждый процесс Unix обычно имеет три стандартных файловых дескриптора:
stdin
(0)stdout
(1)stderr
(2)
В этом случае мы говорим pw
читать ввод с фд 0, ака stdin
, Вы можете рассмотреть bash
man-страница, на которой есть множество примеров причудливых вещей, которые вы можете сделать с помощью файловых дескрипторов и перенаправления.
Обратите внимание, что в этом примере есть некоторые проблемы с безопасностью. ps
Команда в нужное время сможет увидеть аргумент echo
команда. Это может или не может быть проблемой в вашей среде. Вы могли бы сделать это вместо этого:
pw useradd -h 0 user1 <<EOP
password
EOP
Вам необходимо убедиться, что в вашей системе FreeBSD установлено следующее
bash (pkg_add -r bash) ожидают (pkg_add -r ожидают)
Ниже приведен скрипт, который автоматически генерирует случайные пароли и автоматически применяет их к учетной записи root. Вы можете сделать это сценарий запуска. Я бы сначала сделал следующие каталоги.
- Из корневого каталога, а не из корневого каталога mkdir.script
- Иметь нормальную учетную запись пользователя
- mkdir /var/log/.rec
- chown normaluser: normaluser /var/log/.rec
- поместите сценарий passgen.sh в.script, который находится в структуре корневого файла
chmod 777 passgen.sh
! / USR / местные / бен / Баш
PassGen =
head -c 10 /dev/random | uuencode -m - | tr -d '\n' | cut -c 19-32
echo $ PASSGEN> /var/log/.rec/encrypted
chown someuser: someuser /var/log/.rec/encrypted
chmod 666 /var/log/.rec/encrypted
Шифрование - это запутывание
LOG= корень
PASS=$PassGen
ожидать << EOF
spawn passwd $ LOG
ожидать "Новый пароль:"
отправить "${PASS}\r"
ожидайте "Повторите новый пароль:"
отправить "${PASS}\r"
ожидать eof;
EOF
Теперь добавьте это в ваш запуск rc.local / rc.d / rc.conf в зависимости от вашей версии BSD.
Надеюсь, что это кому-то поможет, похоже, этот редактор фильтрует некоторые хеш-коды и половинные кавычки.
Спасибо Шон Халберт