Я только что познакомился с основами использования adduser. Я бы хотел исключить взаимодействие / подсказки. Поскольку я буду часто перестраивать эту машину, я хотел бы написать сценарий процесса или наихудший просто скопируйте и вставьте полный оператор, который добавляет пользователя в нужную группу и устанавливает пароль в одной команде.
Что-то вроде:
sudo adduser имя пользователя1 пароль первичная группа вторичная группа, тернарная группа "полное имя1"
sudo adduser имя пользователя2 пароль первичная группа вторичная группа, тернарная группа "полное имя2"
sudo adduser имя пользователя3 пароль первичная группа вторичная группа, тернарная группа "полное имя3"
sudo adduser имя пользователя4 пароль первичная группа вторичная группа, тернарная группа "полное имя4"
...
sudo adduser имя пользователя999 пароль первичная группа вторичная группа, тернарная группа "полное имя999"
Вы можете создать файл, содержащий список имен пользователей и т. Д., И использовать newusers
команда. Он хочет, чтобы файл имел формат /etc/passwd
за некоторыми исключениями, одно из них состоит в том, что пароль представляет собой обычный текст (newusers
шифрует его).
newusers userfile.txt
Однако он не обрабатывает несколько групп.
Тип "man adduser
"в приглашении оболочки. Он предоставит вам документацию о том, как использовать adduser
. В основном, man
предоставит вам документацию по любой команде CLI.
Но вы действительно хотите использовать useradd
и нет adduser
.
Коротко:
useradd -c "Real Name" -m -g primarygroup -G secondarygroup1,secondarygroup2 username
Да, и если вы хотите установить пароль одновременно, вы должны его предварительно зашифровать. Я постоянно переписываю эту небольшую программу, чтобы выполнить стандартное для Unix шифрование соли:
#include <stdio.h>
#include <unistd.h>
int main(int argc, char *argv[]) {
char *salt;
if (argc < 2 || argc > 3) {
fprintf(stderr, "Usage: %s string [salt]\n", argv[0]);
exit(1);
} else {
if ( argc == 2 ) {
salt = argv[1];
} else {
salt = argv[2];
}
printf("%s\n", crypt(argv[1], salt));
exit(0);
}
}
При этом составлен как crypt
, вы можете добавить опцию:
-p `crypt password`
В идеале вы никогда не захотите помещать пароли в командную строку, поскольку есть несколько мест, где он может отображаться (вывод ps, история оболочки и т. Д.), Ни одно из которых не является особенно безопасным.
Если вам нужно добавить такое количество пользователей и вы постоянно перестраиваете машины, тогда может потребоваться использование Кукольный. Это довольно простой рецепт, и вы можете расширить его, чтобы охватить другие задачи.
Поскольку это Ubuntu, синтаксис немного отличается. Вероятно, это соответствует debian:
adduser --gecos "Real Name" --gid PRIMARYGROUP USERNAME
usermod -G SECONDARYGROUP1,SECONDARYGROUP2 -p $(openssl passwd -1 -salt shaker "USERPASSWORD") USERNAME
Вы можете записать интерактивный сеанс adduser с помощью autoexpect, а затем создать шаблон, в котором вы будете подставлять имена пользователей и т. Д.
вы можете отвлечь своих пользователей от / etc / passwd и использовать LDAP. в качестве дополнительного бонуса вы получите постоянных пользователей на нескольких машинах. объедините это с Puppet, и вы сможете легко синхронизировать свои конфигурации NSS / PAM на каждой машине.