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


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

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


156
2018-01-09 13:54


Источник


посмотрите man-страницу для adduser. Это поможет вам. - Zoke
@Zoke Я не мог найти информацию, которую я искал на странице руководства. - Lorin Hochstein


Ответы:


Использовать --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, несмотря на то, что упоминания в man-странице finger information  Подробности - Википедия

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


211
2018-01-09 14:18



Да, я вижу, как я это пропустил. «gecos» - не очевидное описание - Lorin Hochstein
+1 --gecos очень запутанно. - Trevor Sullivan


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

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

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

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

Создание хешированного пароля:

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

На основе Sha-512

Результирующий формат вывода: хеш-механизм ($6 для 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 -c 'import crypt; print crypt.crypt("password", "Fx")'

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


28
2017-08-31 18:48



Варианты, о которых вы говорите, не существуют для adduser на моей (недавней) версии Ubuntu. - ᴠɪɴᴄᴇɴᴛ
@ ᴠɪɴᴄᴇɴᴛ adduser отличается от useradd, я смущаюсь. - ThorSummoner
Ой, действительно, пропустили, что вы используете его почти тезка ... разве нет BDFL, защищающего пространство имен командной строки? ;п - ᴠɪɴᴄᴇɴᴛ
@ mum007 Это общий совет, попробуйте добавить -v или -vv или -vvv вашим командам ssh, чтобы узнать, что не так, и выполните поиск сообщений об ошибках здесь, на SO или Google. - ThorSummoner
@KovacsAkos попробуйте это: sudo sed -i"" -e "s/PasswordAuthentication no/PasswordAuthentication yes/" /etc/ssh/sshd_config а также sudo service ssh restart - JSBach