su nie zmienia użytkownika, ale też nie odpowiada błędem


56

Gdy rootjestem zalogowany , chciałbym sukonkretnego użytkownika. Uruchomię su usernamei 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 - usernamez 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?


8
Jaką powłokę ma użytkownik? Czy to /bin/falsejest
camh

4
Naprawdę powinieneś używać sudo -u username -s(lub -i) BTW.
mgorven

2
@camh facepalm To było to. Przysięgam, że sprawdziłem /etc/passwdwczoraj wieczorem i tak nie było! =) Czy możesz podać to jako odpowiedź? Zaakceptuję to.
Wesley,

Odpowiedzi:


68

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.


2
To było to. Przysięgam, wyglądałem pierwszy =)
Wesley

25
A jeśli chcesz debugować coś w ramach użytkownika, który ma /bin/falsejako powłokę, możesz to zrobić su - user -s /bin/sh.
Marki555

6

Sugerowałbym użycie strace w procesie su, aby zobaczyć, gdzie proces się nie udaje.

strace su donaldduck

Powinno to dać WIELE MOCY do posortowania, ale coś w nim powinno wskazywać, gdzie występuje problem.


1
Głupie obniżki ...
Magellan

4

Powinieneś sprawdzić powłokę /etc/passwdi bez chęci patronowania sprawdzić wyniki działania whoamipo uruchomieniu su.


1
Nie jestem pewien, dlaczego byłoby to uważane za protekcjonalne, ponieważ z pewnością nie przyjąłbym tego w ten sposób. Mam na myśli, że mogę, jeśli chcesz, ale to nie byłaby moja pierwsza skłonność. =) W każdym razie tak, zapomniałem powiedzieć, że zrobiłem to tylko po to, aby upewnić się, że jestem tym, za kogo się wydawało, i że nadal jestem, roota nie użytkownikiem, do którego próbowałem się przełączyć.
Wesley,

0

Sprawdź dzienniki systemowe: użycie sudo powinno zarejestrować wszystkie działania. Więc jeśli występuje problem, należy go napisać.

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.