Ubuntu 14.04: у нового пользователя, созданного из командной строки, отсутствуют функции

17

Я пытаюсь создать нового пользователя в Ubuntu 14.04 LTS из командной строки bash. Я использую следующие команды:

sudo useradd -c "Samwise the Brave" sam    
sudo passwd sam    
Enter new UNIX password: hello-1234    
Retype new UNIX password: hello-1234    
passwd: password updated successfully

После создания этого нового пользователя я столкнулся с 3 проблемами:

  1. Я не могу войти в Ubuntu, используя пользователя sam. Всякий раз, когда я вхожу в систему, меня отправляют обратно на экран входа.

  2. Когда я просматриваю /etc/passwdфайл, я вижу, что для пользователя sam не определены оболочки по умолчанию:

    cat /etc/passwd | grep sam    
    sam:x:1003:1003:Samwise the Brave:/home/sam:
    
  3. Домашняя папка Сэма не была создана, то /home/samесть не существует.

Любые подсказки о том, что может вызвать все эти проблемы?

Здесь я должен отметить, что при создании пользователя с помощью Unity Control Center эти проблемы не возникают. Но я хотел бы иметь возможность использовать командную строку, поскольку у меня есть десятки пользователей для создания.

phodor
источник

Ответы:

29

Сначала обратите внимание, что лучше использовать adduser, а не useradd.

Теперь вернемся к вашей команде:

Вы должны выполнить команду следующим образом:

sudo useradd -m -c "Samwise the Brave" sam  -s /bin/bash 

man useradd

  -s, --shell SHELL
           The name of the user's login shell. The default is to leave this
           field blank, which causes the system to select the default login
           shell specified by the SHELL variable in /etc/default/useradd, or
           an empty string by default.

 -m, --create-home
           Create the user's home directory if it does not exist. The files
           and directories contained in the skeleton directory (which can be
           defined with the -k option) will be copied to the home directory.

           By default, if this option is not specified and CREATE_HOME is not
           enabled, no home directories are created.

Таким образом, вы пропустите использовать, -sчтобы добавить свою оболочку входа в систему и -mсоздать свой дом.

Если вы хотите добавить несколько пользователей одновременно, лучше использовать команду newusers. Это упростит вашу задачу.

man newusers

DESCRIPTION

   The newusers command reads a file of user name and clear-text password
   pairs and uses this information to update a group of existing users or
   to create new users. Each line is in the same format as the standard
   password file (see passwd(5)) with the exceptions explained below:

   pw_name:pw_passwd:pw_uid:pw_gid:pw_gecos:pw_dir:pw_shell

Вот некоторый урок о newusersкоманде:

Maythux
источник
Почему я получаю «неизвестный вариант м»? Я нахожусь на AWS Ubuntu экземпляр работает 14.04.
Донато
2

Создать пользователя

Создать домашний каталог пользователя

Определить оболочку входа

useradd -m -d /home/username username -s /bin/bash

Удалить пользователя

Домашний каталог пользователя Deleter

userdel -r username
Sai
источник
1

Хотя вам не хватает флагов, а другие ответы не обязательно ошибочны, попробуйте запустить adduser, если вы хотите, чтобы он был более полным в будущем. Это более симпатичная версия useradd. А именно, он создаст домашний каталог по умолчанию, в отличие от useradd. Также обратите внимание, что когда он запрашивает кучу материала, он сохраняет этот встроенный файл / etc / passwd, и вам не нужно ничего заполнять.

Майкл Бейли
источник
1

Спасибо всем. Благодаря вашим ответам я смог решить проблему с помощью следующих командных строк.

sudo useradd -c "Samwise the Brave" -m -s /bin/bash sam
echo -e "hello-1234\nhello-1234" | passwd sam

Пароль устанавливается с passwd тем, что он уже зашифрован (в противном случае «hello-1234» будет выглядеть не зашифрованным в / etc / passwd).

phodor
источник
0

Вам не хватает флагов в команде useradd. «-m» для создания пользовательского каталога, «-s / bin / bash» для добавления оболочки bash. По умолчанию не создается каталог пользователя, а назначается оболочка по умолчанию. Моя система сделала то же самое, когда я тестировал ее, так что похоже, что Ubuntu 14.04 использует пустую оболочку в качестве оболочки по умолчанию. Вы не можете войти, потому что у вас нет оболочки.

Создать домашний каталог по умолчанию для существующего пользователя в терминале (вопрос 335961, третий ответ)

Из справочной страницы Ubuntu для useradd

   -s, --shell SHELL
       The name of the user´s login shell. The default is to leave this
       field blank, which causes the system to select the default login
       shell.

Как изменить оболочку по умолчанию для ВСЕХ ПОЛЬЗОВАТЕЛЕЙ на bash? Вопрос 335961

Codeguy007
источник