Ubuntu 14.04: Nowy użytkownik utworzony z wiersza polecenia ma brakujące funkcje

17

Próbuję utworzyć nowego użytkownika w Ubuntu 14.04 LTS z wiersza poleceń bash. Używam następujących poleceń:

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

Po utworzeniu tego nowego użytkownika napotkałem 3 problemy:

  1. Nie mogę zalogować się do Ubuntu przy użyciu użytkownika sam. Za każdym razem, gdy się loguję, wracam do ekranu logowania.

  2. Gdy zaglądam do /etc/passwdpliku, widzę, że dla użytkownika sam nie zdefiniowano żadnych domyślnych powłok:

    cat /etc/passwd | grep sam    
    sam:x:1003:1003:Samwise the Brave:/home/sam:
    
  3. Folder domowy Sama nie został utworzony, tzn. /home/samNie istnieje.

Wszelkie wskazówki na temat tego, co może powodować wszystkie te problemy?

Powinienem tutaj zauważyć, że kiedy tworzę użytkownika za pomocą Unity Control Center, problemy te nie występują. Ale chciałbym móc korzystać z wiersza poleceń, ponieważ mam dziesiątki użytkowników do stworzenia.

phodor
źródło

Odpowiedzi:

29

Najpierw zauważ, że lepiej jest używać adduser, a nie useradd.

Teraz wróć do komendy:

Powinieneś uruchomić polecenie w następujący sposób:

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.

Więc nie możesz użyć, -saby dodać swoją powłokę logowania i -mstworzyć swój dom.

Jeśli chcesz dodać wielu użytkowników jednocześnie, lepiej użyć polecenia newusers. Uprości to twoje zadanie.

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

Oto kilka poradników na temat newuserspolecenia:

Maythux
źródło
Dlaczego dostaję „nieznaną opcję m”? Jestem na instancji AWS Ubuntu z systemem 14.04.
Donato,
2

Stwórz użytkownika

Utwórz katalog domowy użytkownika

Zdefiniuj powłokę logowania

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

Usuń użytkownika

Katalog domowy użytkownika Deleter

userdel -r username
Sai
źródło
1

Chociaż brakuje flag, a inne odpowiedzi niekoniecznie są złe, rozważ uruchomienie programu adduser, jeśli chcesz, aby był bardziej wyczerpujący w przyszłości. To ładniejsza wersja useradd. Mianowicie domyślnie utworzy katalog domowy, w przeciwieństwie do useradd. Zauważ też, że kiedy prosi o mnóstwo rzeczy, zapisuje to w pliku / etc / passwd i nie musisz go wypełniać.

Michael Bailey
źródło
1

Dziękuję wszystkim. Dzięki twoim odpowiedziom udało mi się rozwiązać problem za pomocą następujących wierszy poleceń.

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

Hasło jest ustawione za pomocą, passwdwięc jest już zaszyfrowane (w przeciwnym razie „hello-1234” nie pojawia się w / etc / passwd).

phodor
źródło
0

Brakuje flag w poleceniu useradd. „-m”, aby utworzyć katalog użytkownika, „-s / bin / bash”, aby dodać powłokę bash. Domyślnie nie tworzy się katalogu użytkownika i przypisuje domyślną powłokę. Mój system zrobił to samo, kiedy go przetestowałem, więc wygląda na to, że ubuntu 14.04 używa pustej jako domyślnej powłoki. Nie możesz się zalogować, ponieważ nie masz powłoki.

Utwórz domyślny katalog domowy dla istniejącego użytkownika w terminalu (Pytanie 335961, 3. odpowiedź)

Z Ubuntu Manpage dla 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.

Jak zmienić domyślną powłokę dla WSZYSTKICH UŻYTKOWNIKÓW do bashowania? Pytanie 335961

Codeguy007
źródło