Запустить adduser не интерактивно

143

Я хочу использовать команду adduser , чтобы добавить пользователя (с отключенным паролем) через скрипт оболочки.

По умолчанию adduser запрашивает различные значения (например, полное имя). Есть ли способ отправить эти значения через командную строку? Или мне нужно вместо useradd ?

    
задан Lorin Hochstein 09.01.2012 в 13:54
источник

2 ответа

192

Используйте параметр --gecos , чтобы пропустить интерактивную часть chfn .

adduser --disabled-password --gecos "" username

Это все на странице руководства. Не самая очевидная формулировка.

--gecos GECOS
          Set  the  gecos field for the new entry generated.  adduser will
          not ask for finger information if this option is given.

Поле GECOS представляет собой список, разделенный запятыми: Full name,Room number,Work phone,Home phone

Надеюсь, это поможет вам.

    
ответ дан Zoke 09.01.2012 в 14:18
источник
22

useradd также может добавлять пользователей и не имеет встроенных подсказок.

useradd -m -p <encryptedPassword> -s /bin/bash <user>
  • -m , --create-home : создать домашний каталог пользователя
  • -p , --password : указать пароль пользователя
  • -s , --shell : оболочка по умолчанию для пользователя входа в систему

    Бланк будет использовать стандартную логическую оболочку, указанную переменной SHELL в /etc/default/useradd

  • Заменить <user> с именем входа
  • Замените <encryptedPassword> на зашифрованный пароль

Генерация хешированного пароля:

Есть множество реализаций crypt3, которые могут генерировать хэшированные пароль. Все это ваш хешированный пароль.

Основанный на Sha-512

Результирующий формат вывода: хэш-механизм ( для sha-512), случайная соль (восемь байтов после второго знака доллара $ASDF1234 ), остальная часть - полезная нагрузка.

  • mkpasswd mkpasswd -m sha-512

    ( mkpasswd предоставляется пакетом whois )

Основанный на DES:

Результирующий формат вывода: первые 2 байта - ваша соль, остальная часть - полезная нагрузка. Все это ваш хешированный пароль.

  • mkpasswd: mkpasswd (предоставляется пакетом whois )
  • openssl: openssl passwd -crypt
  • perl: perl -e "print crypt('password', 'sa');"

    /!\ Выберите свою собственную случайную двухбайтную соль вместо 'sa'

  • python: python -c 'import crypt; print crypt.crypt("password", "Fx")'

    /!\ Выберите свою собственную случайную двухбайтную соль вместо "Fx"

ответ дан ThorSummoner 31.08.2015 в 18:48

Ознакомьтесь с другими вопросами по меткам