Как я могу быстро добавить много пользователей к серверу Ubuntu от командной строки?

Два ответа об этом отмечаемый неудавшийся и восстановление корректны, и надо надеяться это - то, что произойдет. Это - лучший вариант развития событий.

Другая возможность состоит в том, что программное обеспечение не замечает, и затем оно будет все еще думать, что диски находятся в синхронизации. (Например, это могло произойти, если бы Вы сделали этот трюк с отключенным питанием), конечным результатом, скорее всего, будет повреждение, и единственная фиксация должна будет отформатировать и восстановить от резервного копирования.

Помните, работы RAID над уровнем диска, он ничего не знает о файловой системе на вершине. Просто набор секторов. Когда блок запросов к файловой системе 10, уровень RAID знает, что блок 10 хранится на блоке 10 из disk1 и disk2. Так или иначе это выбирает один диск или другой и читает блок 10. Кроме из-за Вашего изменения дисков за его спиной, блок 10 на disk1 и disk2 отличается. Ой. Можно ожидать соединение disk1, и disk2 на основе на блок, включая блоки раньше хранил метаданные файловой системы.

Фиксация путаницы

Я предлагаю Ваш лучший выбор восстановиться с этого, учитывая, что формат и восстановление от резервного копирования не являются опцией:

(a) Сразу отобразите оба диска. Резервные копии важны. Дополнительно, можно хотеть только работать над копиями.

(b) Если массив не был в режиме чтения-записи после этой ошибки, просто вытяните измененный диск. Восстановите с новым, пустым диском.

(c) Если массив был в режиме чтения-записи, выберите диск и отбросьте его массив. Восстановите на новый диск.

(d) Если Вы полностью не заботитесь который диск, просто (заменяющий X с Вашим номером массива, конечно): Это вызывает пересинхронизацию.

echo repair > /sys/block/mdX/md/sync_action 

(e) Вызовите fsck на теперь восстановленном массиве.

(f) Сделайте то, что Вы можете для проверки данных. Например, выполненный debsums для проверки целостности ОС, предоставляя все необходимые файлы пакета для вещей, которые не имеют сумм MD5.

Обратите внимание, что диск должен быть пробелом, или по крайней мере вся информация о RAID вытерла с него, иначе восстанавливание не будет работать правильно.

2
задан 1 October 2009 в 18:09
6 ответов

Введите"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 произвел, окружает историю, и т.д.), ни один из которых не особенно безопасен.

4
ответ дан 3 December 2019 в 08:35
  • 1
    Для установки пароля из сценария, можно сделать: эхо " $word" mypa$; | passwd myuser - stdin –  djhowell 1 October 2009 в 17:56
  • 2
    При использовании useradd, как wfaulk записал, он работал бы :) useradd является scriptable версией. –  MikeyB 1 October 2009 в 18:37
  • 3
    Остерегайтесь паролей, являющихся видимым в списках процессов и сохраненным в Вашей истории оболочки. –  Dan Carley 1 October 2009 в 19:18
  • 4
    - 1 для того, кто бы ни назвал useradd и adduser - я никогда не могу помнить который окольный путь они aer.. –  pjc50 2 October 2009 в 18:06

Можно создать файл, содержащий список имен пользователей, и т.д., и использовать newusers команда. Это хочет, чтобы файл был похож на формат /etc/passwd за немногим исключением каждый - то, что пароль является простым текстом (newusers шифрует его).

newusers userfile.txt

Это не обрабатывает несколько групп, все же.

6
ответ дан 3 December 2019 в 08:35

Если необходимо добавить, что многие пользователи и постоянно восстанавливают машины затем, это могло бы гарантировать Марионетку использования. Это - довольно простой рецепт сам по себе, и можно расшириться оттуда для покрытия других задач.

2
ответ дан 3 December 2019 в 08:35
  • 1
    Это похоже на что-то, что я мог использовать в будущем, спасибо за ссылку. –  Michael Prescott 1 October 2009 в 19:38

Так как это - человечность, синтаксис немного отличается. Это, вероятно, соответствует debian:

adduser --gecos "Real Name" --gid PRIMARYGROUP USERNAME
usermod -G SECONDARYGROUP1,SECONDARYGROUP2 -p $(openssl passwd -1 -salt shaker "USERPASSWORD") USERNAME
1
ответ дан 3 December 2019 в 08:35

Можно записать интерактивную сессию adduser с, автоожидают, затем создают шаблон, где Вы замените именами пользователей и т.д.

0
ответ дан 3 December 2019 в 08:35

можно хотеть абстрагировать пользователей далеко от/etc/passwd и использовать LDAP. в качестве добавленной премии, Вы получите последовательных пользователей через несколько машин. объедините это с Марионеткой, и можно синхронизировать конфигурации NSS/PAM через каждую машину легко.

0
ответ дан 3 December 2019 в 08:35

Теги

Похожие вопросы