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файл, я можу побачити, що для самого користувача немає визначених оболонок за замовчуванням:

    cat /etc/passwd | grep sam    
    sam:x:1003:1003:Samwise the Brave:/home/sam:
    
  3. Домашня папка Сама не створена, тобто /home/samне існує.

Будь-які підказки про те, що може викликати всі ці проблеми?

Слід зазначити, що коли я створюю користувача за допомогою Центру управління Unity, ці проблеми не виникають. Але я хотів би мати можливість використовувати командний рядок, оскільки у мене є десятки користувачів для створення.

Відповіді:


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командою:


Чому я отримую "невідомий варіант m"? Я на екземплярі AWS Ubuntu, який працює 14.04.
Донато

2

Створити користувача

Створіть домашній каталог користувача

Визначте оболонку входу

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

Видалити користувача

Домашня сторінка користувача видалення

userdel -r username

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).


0

Вам не вистачає прапорів у команді useradd. '-m' для створення каталогу користувачів, '-s / bin / bash', щоб додати оболонку bash. За замовчуванням - не створювати каталог користувачів та призначати оболонку за замовчуванням. Моя система зробила те саме, що я тестував її, так що схоже, що ubuntu 14.04 використовує порожню як оболонку за замовчуванням. Ви не можете ввійти, оскільки у вас немає оболонки.

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

З Ubuntu Manpage для 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.

Як змінити оболонку за замовчуванням для ВСІХ КОРИСТУВАЧІВ на башти? Питання 335961

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.