Como definir o busybox como shell de login de um usuário?

2

Eu personalizei meu BusyBox para incluir alguns applets específicos. Agora eu quero um login de usuário para BusyBox como seu shell. Quero dizer, quando o usuário digita seu nome de usuário e senhas, ele será redirecionado para um ambiente que somente os applets desejados poderão ser usados. Alterar o shell de login do usuário usando o seguinte comando não funciona:

usermod -s /bin/busybox MYUSER

usando su MYUSER mostra apenas BusyBox help, mas eu preciso de um shell interativo que inclua apenas meus applets desejados. Alguma solução?

    
por Reza Ghodsi 18.11.2016 / 11:48

2 respostas

2
O comando

busybox não é um shell interativo. Como Thomas disse, você deve executar busybox sh para seu shell interativo. Use estes comandos para configurar o shell interativo do busybox como shell de login do usuário MYUSER :

echo "/bin/busybox sh" > /bin/ibusybox
chmod +x /bin/ibusybox
usermod -s /bin/ibusybox MYUSER

Usar também ibusybox executará o shell interativo do busybox.

    
por SuB 18.11.2016 / 12:36
3

Você teria que iniciar busybox com sh como parâmetro. Melhor seria escrever um pequeno embrulho:

mkdir -p /usr/local/share/busybox
echo "/bin/busybox sh" > /usr/local/share/busybox/sh
chmod +x /usr/local/share/busybox/sh

Em seguida, teste o login:

su - -s /usr/local/share/busybox/sh wood

Se for bem-sucedido, você pode adicionar /usr/local/share/busybox/sh como o shell do usuário.

usermod -s /usr/local/share/busybox/sh MYUSER

Eu rapidamente tentei enviar um link simbólico de busybox para /usr/local/share/busybox/sh , mas isso não funcionou. Então, portanto, o script wrapper.

    
por Thomas 18.11.2016 / 12:12