Zmieniam ostatni wiersz w / etc / passwd i nie mogę używać sudo

15

Oto co zrobiłem:

  1. Zmień nazwę użytkownika w ostatnim wierszu: tinynaabc

    • tiny@tty7:~$ sudo vim /etc/passwd
    • Zmień to:
      tiny:x:1000:1000:tiny,,,:/home/tiny:/bin/bash
      na to:
      abc:x:1000:1000:tiny,,,:/home/tiny:/bin/bash
  2. tiny@tty7:~$ sudo vim /etc/shadow

    • to pokazuje: [sudo] passwork for abc:

    • Nie zmieniłem hasła, ale nie mogę zalogować się do roota!

    • Wpisuję Ctrl+ Alt+ F1do, tty1ale ani malutki, ani abc nie mogą zalogować się za pomocą mojego hasła

i staram się na to patrzeć ls ~ -la, tutaj pokazuje to tak:

drwxr-xr-x 28 abc tiny 4096 Apr 6 03:04 .

Jak mogę zalogować się na root? i dlaczego nazwa użytkownika w pytaniu tiny@tty7nadal jest mała, podczas gdy w sudo pokazuje hasło abc?

malutki
źródło

Odpowiedzi:

18

Powodem, dla którego utknąłeś po edycji, jest to, że /etc/shadowplik zawierał wpis hasła, tinyale nie zawiera wpisu abc, podczas gdy /etc/passwdplik zawierał wpis dla, abca nie dla tiny. Kiedy sudospojrzał, zidentyfikował cię poprawnie (zgodnie z plikiem haseł) jako abcoparty na UID procesu, który uruchomiłeś, ale kiedy spojrzał na porównanie tego, co podałeś jako swoje hasło z zaszyfrowanym (zaszyfrowanym) hasłem przechowywanym /etc/shadow, nie mógł nie znalazł wpisu abc, więc musiał zgłosić awarię.

Jak powiedział shaddy w swojej odpowiedzi , nie edytuj ręcznie hasła ani plików cieni. Jeśli musisz złamać regułę, edytuj oba w jednym wywołaniu vimi nie wychodź z, vimdopóki nie udowodnisz, że zmiany są na tyle rozsądne, aby działać przy użyciu innego okna terminala, i zapisz kopie zapasowe plików przed zaczniesz je hakować i ponownie zastanów się, dlaczego łamiesz zasady, ponieważ prawdopodobnie nie jest to dobry pomysł.

Jonathan Leffler
źródło
22

NIGDY nie musisz ręcznie edytować pliku passwd, ponieważ zepsujesz wszystko.

Właściwy sposób zmiany nazwy użytkownika to:

usermod -l newUsername oldUsername

Następnie zmień folder domowy:

usermod -d /home/newHomeDir -m newUsername

Aby zmienić hasło należy użyć:

sudo passwd yourusername

Sugeruję, aby przywrócić plik passwd z powrotem lub jeśli nie możesz go edytować, ponieważ nie możesz się zalogować za pomocą roota - uruchom komputer z live cd i przywróć plik z powrotem. Następnie użyj właściwego sposobu.

cienisty
źródło
1
dziękuję ~ Myślałem, że najtrudniejsze jest zalogowanie się przy użyciu roota, a następnie ponowne uruchomienie, wybranie trybu odnawiania, rootowanie, a następnie odzyskanie mojego pliku passwd ~ to działa ~
tinyork
0

Użyj: vipw

Zawsze używałem tego na FreeBSD i właśnie potwierdziłem, że możesz używać go również na Ubuntu. Proszę przeczytać tę stronę: Ubuntu Man Page for vipw

Lady Geek
źródło
-3

procedura ręcznej zmiany nazwy użytkownika (ale nie identyfikatora użytkownika):

  1. zbadaj swoją głowę, gdy to się nie powiedzie, przejdź do kroku drugiego.
  2. edytuj plik cienia powielając linię użytkownika z nową nazwą użytkownika.
  3. edytuj grupy, sudoers, pozwalając na nowe uprawnienia dla nazwy użytkownika, zachowaj stare
  4. symbolicznie połącz katalog domowy z nową nazwą
  5. edytuj plik passwd zmieniając nazwę użytkownika i katalog domowy
  6. edytuj cień, sudoery, grupy, aby usunąć stare wpisy, które trzymaliśmy w kroku trzecim
  7. edytuj aliasy i inne odniesienia do starej nazwy użytkownika.
  8. wyloguj się, przełącz się na konsolę tekstową (następny krok nie zadziała, jeśli w katalogu osobistym użytkowników, w tym menedżerowie okien, działają programy)
  9. cd do katalogu powyżej katalogu domowego.
  10. usuń dowiązanie symboliczne i zmień nazwę katalogu domowego.
  11. wyloguj się i zaloguj jak zwykle.

Zmiana nazwy użytkownika jest znacznie prostsza, choć nadal nie jest to proste.

Hildred
źródło