w jakim kontekście to zrobiłeś. W bieżącym terminalu dla domyślnej powłoki użytkownika?
jgr208
nie masz użytkowników w grupie sudo?
Rui F Ribeiro
3
nie sudo vipwdziała?
Rui F Ribeiro
1
@RuiFRibeiro tak, dzięki, nie wiedziałem, że mogę zmienić domyślną powłokę root w tym pliku
ChiseledAbs
1
W tym przypadku nie jest to konieczne, ale jeśli nieumyślnie stworzysz katastrofę z udziałem roota, zwykle możesz przełączyć komputer w tryb pojedynczego użytkownika, naprawić problem, a następnie powrócić do trybu wielu użytkowników.
boardrider
Odpowiedzi:
29
Chociaż root nie ma dostępu, użytkownik w grupie sudo może nadal uruchamiać uprzywilejowane polecenia - wygląda na to, że błąd nie występuje w sudo, ale w innym miejscu sudo chshpolecenia (np. Błąd chsh).
Komendy vipw i vigr edytują odpowiednio pliki / etc / passwd i / etc / group. Za pomocą flagi -s będą edytować wersje cień tych plików, odpowiednio / etc / shadow i / etc / gshadow. Programy ustawią odpowiednie blokady, aby zapobiec uszkodzeniu plików.
Ze względów bezpieczeństwa loginy tekstowe lub graficzne oraz narzędzia podobne sui sudoumożliwiające uruchamianie poleceń jako inny użytkownik - wszystkie te polecenia uruchamiane są przez powłokę użytkownika docelowego. Jeśli powłoka docelowego użytkownika nie działa, cóż, zobaczyłeś wyniki :-(
Jeśli nie zdarzy Ci się, aby gdzieś nadal działała powłoka root lub coś takiego jak plik binarny z setuid-root lub coś, co pozwala ci to obejść, ponowne uruchomienie i usunięcie problemu za pomocą systemu ratunkowego lub obrazu na żywo jest prawdopodobnie najlepszym rozwiązaniem.
Uruchom system ratunkowy, zamontuj gdzieś na przykład główny system plików prawdziwego systemu /mnt/fooi edytuj, /mnt/foo/etc/passwdaby naprawić powłokę. Zapisz, odmontuj i gotowe.
ciekawe, co się stanie, jeśli to zrobisz, a plik / etc / passwd znajduje się w haszu zamiast w zwykłym tekście?
jgr208
1
/etc/passwdto nie jest zwykły tekst? Nie widziałem tego przynajmniej od dekady. Czy to wciąż coś na niektórych systemach? W każdym razie myślę, że chroot /mnt/foo chsh -s /bin/bashmoże załatwić sprawę?
Celada
Nigdy nie miałem opisanego problemu, jednak pracuję z zamkniętymi systemami, które muszą mieć / etc / passwd nie w postaci zwykłego tekstu, aby uniknąć hakerów i takie narażenie systemu jeszcze bardziej, jeśli uzyskają dostęp. Hmm, to może zadziałać, powiedzmy, że mam nadzieję, że nigdy nie będę musiał próbować sprawdzić, czy to rzeczywiście działa.
jgr208
Byłem w stanie edytować / etc / passwd za pomocą sudo z konta użytkownika, nie wiedziałem, że powłoka została zdefiniowana w tym pliku, dzięki
ChiseledAbs
@ChiseledAbs oh, byłeś? Dobrze dla ciebie, cieszę się, że rozwiązałeś swój problem. Nie sądziłem, że ci to pozwoli.
Celada
6
Dodaj init=/bin/bashdo wiersza poleceń jądra (jeśli uruchamiasz się z grub, naciśnij, eaby edytować pozycję rozruchową), a będziesz miał powłokę bash działającą jako root bez konieczności podawania hasła. Twój główny system plików prawdopodobnie nadal będzie montowany tylko do odczytu, więc najpierw musisz go ponownie zamontować, a następnie możesz z powrotem zmienić powłokę chsh.
sudo vipw
działa?Odpowiedzi:
Chociaż root nie ma dostępu, użytkownik w grupie sudo może nadal uruchamiać uprzywilejowane polecenia - wygląda na to, że błąd nie występuje w sudo, ale w innym miejscu
sudo chsh
polecenia (np. Błąd chsh).Jako takie twoje sudo najwyraźniej działa.
Plik passwd można edytować za pomocą:
I powłoka root zmieniła się ręcznie.
(
/etc/passwd
zwykle pierwsza linia )Fom Man Vipw
źródło
vipw
ivigr
dziękuję! Zawsze używałemsudo vim /etc/passwd
visudo
sudo.ws/man/1.8.15/visudo.man.html , @tacsudo -e
wykonuje tę funkcję blokowania-edycji dla dowolnej edycji.Inną opcją, zakładając, że masz dostęp do innego konta, jest ręczne zastąpienie domyślnej powłoki za pomocą
su --shell=/bin/bash
:Podstawową zaletą tego jest to, że wymaga tylko dostępu do innego konta, a nie innego uprzywilejowanego .
źródło
Ze względów bezpieczeństwa loginy tekstowe lub graficzne oraz narzędzia podobne
su
isudo
umożliwiające uruchamianie poleceń jako inny użytkownik - wszystkie te polecenia uruchamiane są przez powłokę użytkownika docelowego. Jeśli powłoka docelowego użytkownika nie działa, cóż, zobaczyłeś wyniki :-(Jeśli nie zdarzy Ci się, aby gdzieś nadal działała powłoka root lub coś takiego jak plik binarny z setuid-root lub coś, co pozwala ci to obejść, ponowne uruchomienie i usunięcie problemu za pomocą systemu ratunkowego lub obrazu na żywo jest prawdopodobnie najlepszym rozwiązaniem.
Uruchom system ratunkowy, zamontuj gdzieś na przykład główny system plików prawdziwego systemu
/mnt/foo
i edytuj,/mnt/foo/etc/passwd
aby naprawić powłokę. Zapisz, odmontuj i gotowe.źródło
/etc/passwd
to nie jest zwykły tekst? Nie widziałem tego przynajmniej od dekady. Czy to wciąż coś na niektórych systemach? W każdym razie myślę, żechroot /mnt/foo chsh -s /bin/bash
może załatwić sprawę?Dodaj
init=/bin/bash
do wiersza poleceń jądra (jeśli uruchamiasz się z grub, naciśnij,e
aby edytować pozycję rozruchową), a będziesz miał powłokę bash działającą jako root bez konieczności podawania hasła. Twój główny system plików prawdopodobnie nadal będzie montowany tylko do odczytu, więc najpierw musisz go ponownie zamontować, a następnie możesz z powrotem zmienić powłokęchsh
.źródło
sudo usermod -s /bin/bash jdoe
zmieni powłokę jdoe na
bash
. Następnie możesz tosudo egrep jdoe /etc/passwd
zweryfikować.źródło