su não altera o usuário, mas também não responde com um erro

56

Enquanto estiver logado como rootgostaria sude um usuário regular específico. Eu corro su usernamee imediatamente recebo o prompt de volta, ainda como root. Não há nenhum erro. Estou ciente do antigo problema "o usuário que você está tentando processar não tem permissão para a pasta em que está atualmente" e esse não é o caso neste cenário. Além disso, não há erro exibido, o que sempre acontece (tanto quanto eu sei) quando esse problema de permissões específico é encontrado.

Eu tentei su - usernamecom o mesmo efeito. O comando é processado, nenhum erro é visto e eu recebo o prompt imediatamente.

O que poderia estar causando esse comportamento? Como posso solucionar isso?

Wesley
fonte
8
Qual shell o usuário possui? É isso /bin/false?
Camh
4
Você realmente deveria estar usando sudo -u username -s(ou -i) BTW.
mgorven 25/05
2
@camh facepalm Foi isso. Juro que chequei /etc/passwdontem à noite e não foi assim! =) Você pode colocar isso como resposta? Eu aceito.
Wesley

Respostas:

68

Verifique em qual shell o usuário está /etc/passwd. Se o shell for /bin/false(um shell comum para proibir logins), você verá o comportamento que descreve. Como alternativa, pode ser outro programa de encerramento imediato que fornece o mesmo resultado efetivo.

camh
fonte
2
Foi isso. Juro que olhei primeiro! =)
Wesley
25
E se você precisar depurar algo no usuário que tenha /bin/falsecomo shell, poderá fazê-lo su - user -s /bin/sh.
Marki555
6

Eu sugiro usar strace no processo su para ver onde o processo está falhando.

strace su donaldduck

Deve fornecer MUITOS resultados de saída, mas algo deve indicar onde o problema está ocorrendo.

Magalhães
fonte
11
Remarcação estúpida ....
Magalhães
4

Você deve fazer o check-in do shell /etc/passwde, sem desejar ser condescendente, verifique a saída whoamiapós a execução su.

Alex Chamberlain
fonte
11
Não sei por que isso seria considerado condescendente, pois certamente não teria tomado dessa maneira. Quero dizer, posso, se você quiser, mas essa não seria minha primeira inclinação. =) De qualquer forma, sim, eu esqueci de afirmar que fiz isso apenas para garantir que eu era quem eu pensava que era, e eu ainda era roote não o usuário para o qual estava tentando mudar.
Wesley
0

Verifique os logs do sistema: o uso do sudo deve registrar todas as ações. Portanto, se houver um problema, ele deve ser escrito.

Dom
fonte