su ne change pas d'utilisateur mais ne répond pas avec une erreur

56

Bien connecté en tant que rootje voudrais suà un utilisateur régulier spécifique. Je cours su usernameet reçois immédiatement l'invite, toujours en tant que root. Il n'y a pas d'erreur donnée. Je suis conscient du problème de l'ancien problème "L'utilisateur pour lequel vous essayez de poursuivre n'est pas autorisé à accéder au dossier dans lequel vous vous trouvez", et ce n'est pas le cas dans ce scénario. De plus, aucune erreur n’est affichée, ce qui est toujours le cas (autant que je sache) lorsque ce problème particulier d’autorisations est rencontré.

J'ai essayé su - usernameavec le même effet. La commande est traitée, aucune erreur n’est détectée et je reçois immédiatement l’invite.

Quelle pourrait être la cause de ce comportement? Comment puis-je résoudre ce problème?

Wesley
la source
8
Quel shell a l'utilisateur? Est - il /bin/false?
camh
4
Vous devriez vraiment utiliser sudo -u username -s(ou -i) BTW.
mgorven
2
@camh facepalm C'était tout. Je jure que j'ai vérifié /etc/passwdla nuit dernière et ce n'était pas comme ça! =) Pouvez-vous mettre cela comme réponse? Je vais l'accepter.
Wesley

Réponses:

68

Vérifiez ce que l'utilisateur a shell dans /etc/passwd. Si le shell est /bin/false(un shell commun pour interdire les connexions), vous verrez le comportement que vous décrivez. Alternativement, il peut être un autre programme à terminaison immédiate qui donne le même résultat effectif.

camh
la source
2
C'était ça. Je jure que j'ai regardé en premier! =)
Wesley
25
Et si vous avez besoin de déboguer quelque chose sous l'utilisateur qui a /bin/falsepour shell, vous pouvez le faire avec su - user -s /bin/sh.
Marki555
6

Je suggérerais d'utiliser strace sur le processus su pour voir où le processus échoue.

strace su donaldduck

Devrait vous donner BEAUCOUP de sortie à trier, mais quelque chose devrait indiquer où le problème se produit.

Magellan
la source
1
Stupid markdown ....
Magellan
4

Vous devriez vérifier le shell /etc/passwd, et, sans vouloir être condescendant, vérifier le résultat de whoamiaprès l'exécution su.

Alex Chamberlain
la source
1
Je ne sais pas pourquoi cela serait considéré comme condescendant, car je ne l'aurais certainement pas pris de cette façon. Je veux dire que je peux si tu veux, mais ce ne serait pas ma première inclination. =) En tout cas, oui, j'ai oublié de dire que je l'avais fait juste pour m'assurer d'être ce que je pensais être, et j'étais toujours rootet pas l'utilisateur vers lequel je voulais basculer.
Wesley
0

Vérifiez les journaux de votre système: utiliser sudo devrait consigner toutes les actions. Donc, s'il y a un problème, il devrait être écrit.

Dom
la source