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

  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 / местные / бен / Баш

    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.

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

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

Другие вопросы по тегам