Назад | Перейти на главную страницу

Могу ли я автоматически создать пользователя с паролем с помощью 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, который должен делать это автоматически без ввода данных пользователем ...

Любые идеи?

Вот пример использования файлового дескриптора:

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. Вы можете сделать это сценарием запуска. Я бы сначала сделал следующие каталоги.

  1. Из корневого каталога, а не из домашнего каталога mkdir .script
  2. Иметь обычную учетную запись пользователя
  3. mkdir /var/log/.rec
  4. chown normaluser: normaluser /var/log/.rec
  5. поместите сценарий passgen.sh в .script, который находится в корневой файловой структуре
  6. chmod 777 passgen.sh

    ! / USR / местные / бен / баш

    ПАРОЛЬ =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.

Надеюсь, это поможет кому-то там, похоже, этот редактор фильтрует некоторые хэши и половинные кавычки.

Спасибо, Шон Халберт