Могу ли я автоматически создать пользователя с паролем с помощью 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, который должен делать это автоматически без ввода данных пользователем ...
Любые идеи?
Вот пример использования файлового дескриптора:
echo password | pw useradd -h 0 user1
Каждый процесс Unix обычно имеет три стандартных файловых дескриптора:
stdin
(0)stdout
(1)stderr
(2)В этом случае мы говорим pw
для чтения ввода из fd 0, иначе stdin
. Вы можете просмотреть bash
man-страницу, на которой есть всевозможные примеры необычных вещей, которые вы можете делать с файловыми дескрипторами и перенаправлением.
Обратите внимание, что в этом примере есть некоторые проблемы с безопасностью - любой, кто запускает ps
команда в нужное время сможет увидеть аргумент echo
команда. Это может или не может быть проблемой в вашей среде. Вместо этого вы можете сделать это:
pw useradd -h 0 user1 <<EOP
password
EOP
Вам нужно будет убедиться, что в вашей системе FreeBSD установлены следующие
bash (pkg_add -r bash) ожидать (pkg_add -r ожидать)
Ниже приведен сценарий, который автоматически генерирует случайные пароли и автоматически применяет их к учетной записи root. Вы можете сделать это сценарием запуска. Я бы сначала сделал следующие каталоги.
chmod 777 passgen.sh
ПАРОЛЬ =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.
Надеюсь, это поможет кому-то там, похоже, этот редактор фильтрует некоторые хэши и половинные кавычки.
Спасибо, Шон Халберт