Gdy root
jestem zalogowany , chciałbym su
konkretnego użytkownika. Uruchomię su username
i natychmiast otrzymuję monit z powrotem, nadal jako root. Nie podano błędu. Wiem, że stary „użytkownik, do którego próbujesz się zalogować” nie ma uprawnień do folderu, w którym aktualnie się znajdujesz, i nie ma to miejsca w tym scenariuszu. Co więcej, nie jest wyświetlany błąd, co zawsze ma miejsce (o ile wiem), gdy napotkamy ten konkretny problem z uprawnieniami.
Próbowałem su - username
z tym samym efektem. Polecenie jest przetwarzane, nie są widoczne żadne błędy i od razu otrzymuję monit.
Co może być przyczyną takiego zachowania? Jak mogę rozwiązać ten problem?
/bin/false
jestsudo -u username -s
(lub-i
) BTW./etc/passwd
wczoraj wieczorem i tak nie było! =) Czy możesz podać to jako odpowiedź? Zaakceptuję to.Odpowiedzi:
Sprawdź, w jakiej powłoce znajduje się użytkownik
/etc/passwd
. Jeśli powłoka jest/bin/false
(zwykła powłoka uniemożliwiająca logowanie), zobaczysz opisywane zachowanie. Alternatywnie, może to być jakiś inny program natychmiast kończący działanie, który daje ten sam skuteczny wynik.źródło
/bin/false
jako powłokę, możesz to zrobićsu - user -s /bin/sh
.Sugerowałbym użycie strace w procesie su, aby zobaczyć, gdzie proces się nie udaje.
Powinno to dać WIELE MOCY do posortowania, ale coś w nim powinno wskazywać, gdzie występuje problem.
źródło
Powinieneś sprawdzić powłokę
/etc/passwd
i bez chęci patronowania sprawdzić wyniki działaniawhoami
po uruchomieniusu
.źródło
root
a nie użytkownikiem, do którego próbowałem się przełączyć.Sprawdź dzienniki systemowe: użycie sudo powinno zarejestrować wszystkie działania. Więc jeśli występuje problem, należy go napisać.
źródło