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