Como fazer o mboxitcpio busybox ash para a fonte / etc / profile?

1

Arch Linux /usr/lib/initcpio/busybox é de propriedade do pacote mkinitcpio-busybox 1.27.2-1 e é configurado baixo em recursos , por exemplo CONFIG_FEATURE_USE_INITTAB não está definido.

Em um initramfs personalizado, contendo esse busybox, eu consegui obter logins de rede ssh que fazem a fonte /etc/profile working. Também há um prompt de shell ash visível no monitor VGA.

No entanto, esse shell "vga" não fornece /etc/profile . P: Diferença entre o Login Shell e o Non-Login Shell? me faz pensar que este shell não é um shell de login. Esse shell é iniciado por /init :

exec setsid sh -c 'exec sh </dev/tty1 >/dev/tty1 2>&1'

Regressão:

  • exec setsid sh -c 'exec sh -i </dev/tty1 >/dev/tty1 2>&1'
  • exec setsid sh -c 'exec sh - </dev/tty1 >/dev/tty1 2>&1'
  • exec setsid sh -c 'exec -sh </dev/tty1 >/dev/tty1 2>&1'

Como tornar esse busybox ash shell em /etc/profile e / ou torná-lo um shell de login (automático)?

    
por Pro Backup 24.12.2017 / 16:36

1 resposta

2

Convencionalmente, um shell age como um shell de login se ele é chamado com um nome de comando que começa com - . exec -sh funcionaria se você tivesse um executável chamado -sh no caminho. BusyBox ash também suporta a opção -l , então você pode executar sh -l .

Quando você efetua login, o programa login (ou sshd , ou o que estiver manipulando o login) cuida da execução do shell do usuário com um - no nome do comando (o nome do comando não tem que ser o mesmo que o nome do executável, é apenas uma convenção muito comum que login viola de propósito). Aqui, "o que quer que esteja lidando com o login" é o seu mini-script, então você precisa cuidar disso.

    
por 24.12.2017 / 19:02