Jak mogę uzyskać interaktywną powłokę jako inny użytkownik inny niż root?


14

Korzystam z serwera Ubuntu 10.04 LTS z domyślnym modelem bezpieczeństwa (root zablokowany, używając sudodo podniesienia uprawnień). Czasami lubię używać, sudo -igdy muszę uruchomić serię poleceń z podwyższonymi uprawnieniami lub gdy muszę przeszukiwać katalogi z uprawnieniami tylko do rootowania.

Czasami podczas konfigurowania oprogramowania, które będzie działać jako własne nieuprzywilejowane konto systemowe ( adduser --system --group --no-create-home --disabled-login some-daemon-user), stwierdzam, że muszę uruchomić sekwencję poleceń jako ten użytkownik , a nie ja lub root. Próbowałem użyć sudo -i -u some-daemon-user, ale po prostu zwraca 1status bez żadnego komunikatu o błędzie.

Mam zaznaczone syslog, messages, auth, i debugpliki dziennika w /var/logi żaden z nich nie zawiera żadnych wiadomości referencyjnych sudolub danego konta.

Czy można zostać innym użytkownikiem innym niż root, w stylu sudo, bez ustawiania hasła i logowania (jako oni)? Czy mój system jest w jakiś sposób „zepsuty”, czy po prostu robię to źle?

Odpowiedzi:


14

Achmm .. problem polega na tym, że standardowa powłoka tych użytkowników jest zwykle ustawiona /bin/falsei ze względów bezpieczeństwa nie powinieneś tego zmieniać. Ale nadal możesz uruchomić na przykład:sudo -u www-data /bin/sh


1
Czy możesz podać więcej szczegółów na temat „powodów bezpieczeństwa”? Czy jest inaczej, jeśli używam sudodo uruchamiania powłoki jako użytkownik, jak sugeruje Florian powyżej?
Calrion

1
Powodem jest to, że każdy atakujący, który zaloguje się jako użytkownik systemu, tj. Wykorzystując błąd w programie do logowania, rzadziej uzyska poprawną powłokę. Powinieneś więc opuścić to ustawienie, tak jak jest w pliku / etc / passwd, nawet jeśli jest to tylko dla dobrej karmy. Wywołanie powłoki bezpośrednio przez sudo nie jest z tym związane.
Paul Hänsch,

Problemem jest ustawienie powłoki w passwdpliku, a nie uruchamianie powłoki jako użytkownik. Gotcha!
Calrion

9

sudo -iuruchamia powłokę określoną przez wpis bazy danych haseł użytkownika docelowego, który jest /bin/falsedla użytkownika systemu.

Posługiwać się

 sudo -u some-daemon-user bash

lub

sudo -u some-daemon-user -H bash

jeśli chcesz ustawić zmienną środowiskową $ HOME dla użytkownika docelowego.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.