su ändert den Benutzer nicht, antwortet aber auch nicht mit einem Fehler

56

Während rootich eingeloggt bin, möchte ich suan einen bestimmten regulären Benutzer. Ich laufe su usernameund erhalte sofort die Rückmeldung, immer noch als root. Es ist kein Fehler angegeben. Mir ist das alte Problem bekannt, dass der Benutzer, nach dem Sie suchen, keine Berechtigung für den Ordner hat, in dem Sie sich gerade befinden. In diesem Szenario ist dies nicht der Fall. Darüber hinaus wird kein Fehler angezeigt, was meines Wissens immer der Fall ist, wenn ein bestimmtes Berechtigungsproblem auftritt.

Ich habe es su - usernamemit dem gleichen Effekt versucht . Der Befehl wird verarbeitet, es werden keine Fehler angezeigt, und ich erhalte die Aufforderung sofort zurück.

Was könnte dieses Verhalten verursachen? Wie kann ich das beheben?

Wesley
quelle
8
Welche Shell hat der Benutzer? Ist es /bin/false?
camh
4
Sie sollten wirklich sudo -u username -s(oder -i) BTW verwenden.
mgorven
2
@camh facepalm Das war es. Ich schwöre, ich habe /etc/passwdletzte Nacht nachgesehen und es war nicht so! =) Kannst du das als Antwort geben? Ich werde es akzeptieren.
Wesley

Antworten:

68

Überprüfen Sie, in welcher Shell der Benutzer sich befindet /etc/passwd. Wenn es sich bei der Shell um /bin/falseeine häufig verwendete Shell handelt, die Anmeldungen nicht zulässt, wird das von Ihnen beschriebene Verhalten angezeigt. Alternativ kann es sich um ein anderes Programm handeln, das sofort beendet wird und dasselbe effektive Ergebnis liefert.

camh
quelle
2
Das war's. Ich schwöre, ich habe zuerst geschaut! =)
Wesley
25
Und wenn Sie etwas unter user debuggen müssen, das /bin/falseals Shell dient, können Sie dies mit tun su - user -s /bin/sh.
Marki555
6

Ich würde vorschlagen, Strace für den su-Prozess zu verwenden, um festzustellen, wo der Prozess fehlschlägt.

strace su donaldduck

Sollte Ihnen VIELE Ausgaben zum Durchsuchen geben, aber irgendetwas sollte darauf hinweisen, wo das Problem auftritt.

Magellan
quelle
1
Dummer Preisnachlass ....
Magellan
4

Sie sollten die Shell einchecken /etc/passwdund, ohne bevormunden zu wollen, die Ausgabe von whoaminach der Ausführung überprüfen su.

Alex Chamberlain
quelle
1
Ich bin mir nicht sicher, warum das als bevormundend angesehen wird, denn ich hätte es mit Sicherheit nicht so gesehen. Ich meine, ich kann, wenn du willst, aber das wäre nicht meine erste Neigung. =) Wie auch immer, ja, ich habe vergessen anzugeben, dass ich das getan habe, um sicherzugehen, dass ich der war, für den ich mich hielt, und ich war immer noch rootund nicht der Benutzer, zu dem ich wechseln wollte.
Wesley
0

Überprüfen Sie Ihre Systemprotokolle: Mit sudo sollten alle Aktionen protokolliert werden. Wenn es also ein Problem gibt, sollte es geschrieben werden.

Dom
quelle