Добавление пользователей из текстового файла

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

'seradd: invalid user name 'srogers

Мой текущий сценарий:

for i in $(cat users.txt)
do
  echo $i
  sudo useradd -m -s /bin/bash -G interns $i
done

Что я делаю неправильно?

1 ответ

Решение

Вы не даете нам представление о вашей конкретной задаче и о содержании users.txt файл, но я мог бы дать несколько рекомендаций, которые устранят простые проблемы.

Первый

Всегда окружайте все переменные двойными кавычками " в скриптах bash. Этот простой трюк поможет избежать многих проблем со скриптом. В вашем конкретном случае заменить все $i с "$i",

второй

Всегда добавляйте двойную черту -- в конце командной строки, чтобы указать конец командных опций. Это помогает избежать проблем, когда позиционный параметр имеет - как часть его строки. Наконец, строка с useradd Команда будет выглядеть так:

$ sudo useradd -m -s /bin/bash -G interns -- "$i"

В третьих

Учтите, что имена пользователей должны удовлетворять ограничениям. Это зависит от конкретного дистрибутива Linux, здесь цитата из man useradd Ubuntu 14.04

   It is usually recommended to only use usernames that begin with a lower
   case letter or an underscore, followed by lower case letters, digits,
   underscores, or dashes. They can end with a dollar sign. In regular
   expression terms: [a-z_][a-z0-9_-]*[$]?

   On Debian, the only constraints are that usernames must neither start
   with a dash ('-') nor plus ('+') nor tilde ('~') nor contain a colon
   (':'), a comma (','), or a whitespace (space: ' ', end of line: '\n',
   tabulation: '\t', etc.). Note that using a slash ('/') may break the
   default algorithm for the definition of the user's home directory.

   Usernames may only be up to 32 characters long.

И, наконец, прочитайте это, чтобы быть в курсе других распространенных ошибок.

Также посмотрите на newusers утилита, это может быть проще, если у вас есть тонны пользователей для создания.

Другие вопросы по тегам