Nie można zalogować się do nowo utworzonego konta użytkownika

25

Próbując zmienić konto na moje nowo utworzone konto, pojawia się czarny ekran, a następnie po wprowadzeniu prawidłowego hasła wraca do głównego ekranu logowania.

Po zalogowaniu się na moje dotychczasowe konto otrzymuję:

"System Program Problem Detected"

Details:

Executable path /usr/bin/Xorg

Package: xserver-xorg-core 2:1.11.4-0ubuntu10.1

Details: Crash
... (tons more, but no way to copy paste or save)

Kiedy próbuję su

su -l penner

Dostaję:

No directory, logging in with HOME=/

Ręcznie utworzyłem katalog domowy i ten błąd znika, ale nadal nie mam szczęścia przy logowaniu. Wydaje się, że coś poszło nie tak podczas tworzenia użytkownika? Jak mogę to naprawić?

penner
źródło
Jak utworzyłeś konto użytkownika? Czy zrobiłeś to z GUI, czy z wiersza poleceń? Jeśli robisz to z wiersza poleceń, musisz pamiętać, że adduser i userdd robią rzeczy zupełnie inaczej. Wygląda na to, że pliki z / etc / skel nie zostały skopiowane. Czy mógłbyś zadowolić ls -al w katalogu domowym i katalogu nowego użytkownika, abyśmy mogli zobaczyć, co się dzieje?
SuperMatt

Odpowiedzi:

31

Jeśli utworzyłeś konto użytkownika useradd, musisz skonfigurować wszystko dla niego ręcznie. Dlatego podczas tworzenia kont użytkowników z wiersza polecenia zaleca się stosowanie adduserw Ubuntu (i Debianie oraz innych systemach opartych na Debianie). Możesz po prostu usunąć użytkownika za pomocą userdellub deluseri ponownie go utworzyć adduser. Inaczej...

Naprawianie lokalizacji katalogu domowego

Jeśli chcesz zachować konto użytkownika i rozwiązać problem, musisz spojrzeć na:

  • nazwa katalogu domowego, dla którego konto użytkownika jest faktycznie skonfigurowane
  • nazwa katalogu, który faktycznie utworzyłeś

Muszą być dokładnie takie same. Otrzymany komunikat o błędzie su -l pennermówi, że nie są one takie same.

Aby sprawdzić katalog domowy, dla którego konto użytkownika jest faktycznie skonfigurowane, uruchom to polecenie (zobacz man 5 passwdi man grepwięcej informacji):

grep penner /etc/passwd

Powinieneś zobaczyć taką linię:

penner:x:1000:1000:Eliah Kagan,,,:/home/penner:/bin/bash

Oznacza to, że szóste :oddzielne pole (po piątym :) zawiera katalog domowy. Jeśli nie /home/penner, to powinno być. Jeśli katalog, który utworzyłeś dla tego użytkownika, nie jest /home/penner, to też powinien być. Jeśli dwa katalogi są takie same, ale żaden z nich nie jest /home/penner, to teoretycznie może to działać, ale powinieneś zrobić je oba /home/penner, ponieważ wiele programów zakłada, że rootkatalogi domowe wszystkich użytkowników nie są ./home/username

Możesz zmienić pennerkatalog domowy na /home/penner, uruchamiając następujące polecenie:

sudo usermod -d /home/penner penner

Zapewnienie, że jest to katalog i że użytkownik ma dostęp

Jeśli (lub jeden raz) te nazwy to oba /home/penner, należy również upewnić się, że użytkownik ma dostęp do własnego katalogu domowego. Biegać:

ls -ld /home/penner

Powinieneś zobaczyć coś, co wygląda tak (chociaż data i godzina będą inne):

drwxr-xr-x 43 penner penner 4096 2012-07-03 06:41 /home/penner

Jeśli zamiast tego drwxr-xr-xmasz coś, co zaczyna się -od d, a następnie utworzyłeś plik, a nie katalog. Usuń plik i utwórz w nim katalog.

Jeśli zamiast pierwszego pennermasz coś innego, użytkownik nie jest właścicielem swojego katalogu domowego, więc spraw, aby był właścicielem:

sudo chown penner /home/penner

Jeśli zamiast drwxr-xr-xnastępnych trzech znaków po znaku są myślniki d, użytkownik nie ma tam pełnego dostępu. Napraw to w następujący sposób:

sudo chmod u+rwx /home/penner

( pennerjest w stanie uruchomić to polecenie, jeśli są właścicielami własnego katalogu domowego, więc jeśli wolisz, możesz uruchomić to jako sudo -u penner u+rwx /home/penner:)

Zapewnienie innym użytkownikom dostępu do ogólnego zapisu

Jeśli zamiast drwxr-xr-x, w ostatnich sześciu literach są litery ws zamiast -s, to oprócz tego użytkownicy pennermogą mieć dostęp do zapisu do pennerkatalogu domowego. Jest to niebezpieczne (chyba że naprawdę wiesz, co robisz i chcesz tego w ten sposób i skonfigurowałeś rzeczy, aby nie stanowiło to problemu). Naprawić to:

sudo chmod -R go-w /home/penner

Inne domyślne

Istnieje kilka innych zmian, które możesz chcieć wprowadzić. Domyślnie w Ubuntu (to znaczy, jeśli tworzysz konto użytkownika za pomocą adduserlub za pomocą narzędzia graficznego, czego nie zrobiłeś):

  1. Katalogi domowe mają uprawnienia do odczytu i zapisu dla wszystkich, nie tylko dla użytkownika, który jest ich właścicielem. Użytkownicy mogą to zmienić dla całego katalogu domowego lub dowolnych plików i podkatalogów w nim zawartych. Ale jeśli chcesz, to ustawienie domyślne, a nie masz drugi i trzeci ri xw drwxr-xr-xuruchom:

    sudo chmod 755 /home/penner
    

    ( pennerjest w stanie uruchomić to polecenie, jeśli są właścicielami własnego katalogu domowego, więc jeśli wolisz, możesz uruchomić to jako sudo -u penner chmod 755 /home/penner:)

  2. Każdy użytkownik ma swoją własną grupę o tej samej nazwie co użytkownik i jest to podstawowa grupa użytkownika. Ich katalog domowy jest własnością tej grupy. To jest znaczenie drugiego pennerw drwxr-xr-x 43 penner penner 4096 2012-07-03 06:41 /home/penner. Można zerwać z tym ustawieniem domyślnym, jeśli wiesz, co robisz . Ale jeśli nie masz zamiaru robić różnych rzeczy, powinieneś upewnić się, że pennerjest skonfigurowany w ten sposób, ponieważ niektóre możliwe tożsamości grupy podstawowej dla użytkownika lub właścicieli grup w katalogu osobistym użytkownika mogą prowadzić do problemów z bezpieczeństwem.

    Uruchom groups penner. (Zobacz man groupswięcej informacji.) Powinieneś zobaczyć coś takiego:

    penner : penner adm dialout cdrom plugdev lpadmin sambashare
    

    Nie martw się, jeśli tak nie jest. Niedługo do tego dojdę. Zamiast tego spójrz na pierwsze słowo po :. To jest nazwa grupy podstawowej użytkownika. Zakładając, że chcesz, żeby tak było penner, upewnij się, że tak jest. Jeśli nie, zmień:

    sudo usermod -g penner penner
    

    Jeśli pojawi się błąd informujący, że grupa pennernie istnieje, musisz ją utworzyć za pomocą tego polecenia (a następnie ponownie uruchomić powyższe polecenie):

    sudo addgroup penner
    
    • Zobacz man addgroupwięcej informacji. (Jeśli wolisz, możesz alternatywnie użyć groupaddpolecenia, aby utworzyć grupy).
  3. Gdy biegałeś groups penner, być może lista grup była znacznie krótsza niż moja penner : penner adm dialout cdrom plugdev lpadmin sambashare. Dla użytkowników komputerów stacjonarnych, The adm, dialout, cdrom, plugdev, lpadmin, i sambasharezapewnienie możliwości, że użytkownicy stacjonarnych powinny zasadniczo mieć. Dlatego, chyba że masz powód, aby postąpić inaczej, pennerpowinieneś należeć do tych grup. Nie są to jednak grupy podstawowe, więc są ustawione inaczej. Załóżmy, że pennernie ma w żadnej z tych grup i chcesz pennerbyć we wszystkich, uruchom to polecenie:

    sudo usermod -a -G adm,dialout,plugdev,lpadmin,sambashare penner
    

    Jeśli jesteś zainteresowany, oto, co oznaczają wszystkie te grupy:

    (Źródło: uprawnienia , na wiki dokumentacji Ubuntu.)

Uczynienie użytkownika administratorem

Jeśli nie chcesz pennerbyć administratorem, prawdopodobnie nie musisz robić nic więcej. Możesz sprawdzić, czy pennerjest administratorem groups penner. Jeśli ani adminnie sudoma na liście, pennerto nie jest administratorem.

Jeśli chcesz pennerbyć administratorem, dodaj pennerdo dowolnej z tych grup. (Równie dobrze możesz dodać pennerdo obu, jeśli oba istnieją.) Możesz to zrobić, uruchamiając osobno te dwie komendy - jeśli jedno z nich się powiedzie, utworzyłeś penneradministratora:

sudo usermod -a -G admin penner
sudo usermod -a -G sudo penner
  • Istnieją dwie grupy, ponieważ przed Ubuntu 12.04 LTS administratorzy byli w tej admingrupie. Począwszy od Ubuntu 12.04 LTS, administratorzy są w sudogrupie. Ale jeśli twój system LTS 12.04 zostanie zaktualizowany z poprzedniej wersji (i powinno to mieć zastosowanie do późniejszych wersji Ubuntu, takich jak 12.10, kiedy wyjdzie, które są uaktualnione z Ubuntu 11.10 lub wcześniejszej), to w celu zachowania kompatybilności wstecznej administratorzy są członkami obu sudoa admin. Zasadniczo, jeśli jedna z tych grup nie przyznaje zdolności administracyjnych, po prostu nie istnieje, więc uruchomienie obu powyższych poleceń (osobno, a nie jako sudo usermod -a -G admin,sudo penner) jest ogólnie bezpiecznym i skutecznym sposobem na utworzenie penneradministratora.
Eliah Kagan
źródło
Dzięki! Coś w rodzaju adduser jest fajne, ale lubię też wiedzieć, jak robić rzeczy ręcznie. Bardzo dokładna odpowiedź! Bardzo to doceniam.
penner
sudo chmod u+a /home/pennerdaje błąd na Ubuntu 16.04 (Xenial). Czy sudo chmod u+rw /home/pennerto właściwy zamiennik?
Nickolai Leschov
@NickolaiLeschov Przepraszamy za to - i dziękuję za zwrócenie uwagi na błąd! Naprawiłem polecenie.
Eliah Kagan,
to jest po prostu głupie, dlaczego więc nie usunąć useradd? trzymanie losowego zepsutego kodu
przerywany
1
@dashesy Dzięki - nie wiedziałem, że używanie useraddpowoduje problemy w Ubuntu, których nie powoduje w innych systemach. W moim systemie 16.04 /etc/default/useraddma (jako jedyną niepomocowaną linię) SHELL=/bin/sh, a useradd (8) wydaje się mówić, że SHELLwartość jest używana, jeśli nie podano flagi -s/ --shell, ale w moim systemie 16.04 to się nie zdarza. Myliłem się, mówiąc tak pochopnie, że Ubuntu useraddnie jest zepsute. Teraz nie jestem tego taki pewien. Może istnieje dobry powód tej różnicy między Fedorą a Debianem (i Ubuntu) ... ale usunąłem swój komentarz, aby nie wprowadzać w błąd ludzi.
Eliah Kagan
0

Dzieje się tak głównie wtedy, gdy użytkownik tworzy się bez tworzenia katalogu domowego dla użytkownika. Można to rozwiązać za pomocą tego polecenia podczas tworzenia użytkownika

useradd -m the_username

Flaga -m jest tym, co tworzy katalog domowy użytkownika. Po utworzeniu użytkownika sprawdź, czy dla tego użytkownika istnieje katalog domowy

ls /home

Jeśli widzisz tam nazwę użytkownika, ostatnią rzeczą do zrobienia jest przypisanie hasła do tego użytkownika

passwd the_username

Możesz teraz zalogować się przy użyciu tej nazwy użytkownika i hasła

macleash
źródło
-1

ctrl + alt + f1 i zaloguj się tam i uruchom

sudo chown -R $ USER: $ USER $ HOME

następnie naciśnij ctrl + alt + f7 i spróbuj się zalogować

To będzie działać

Shameer Theen H.
źródło