Faça login na sessão do usuário com chroot

3

Eu tenho um thumb stick USB com o seguinte esquema de partições:

sdb
  sdb1  -> root partition '/'
  sdb2  -> /home partition 

Se eu iniciar a partir de um CD ao vivo, ou apenas do meu sistema operacional Ubuntu localizado no hardware do meu computador, posso chroot desta maneira:

mount /dev/sdb1 /mnt
mount /dev/sdb2 /mnt/home
chroot /mnt /bin/bash

Nesse caso, meu prompt é algo como [root@archiso] . A coisa é que eu gostaria de fazer login na minha conta de usuário que está em /mnt/home/me , mas eu não sei como fazer isso? Um outro objetivo seria lançar o X (e qualquer gerenciador de dektop) dessa sessão do usuário.

Portanto, as perguntas que preciso abordar são as seguintes:

1) Como eu faço login na minha sessão de usuário quando estou chrooted?

2) Uma vez logado, seria possível iniciar X startx , mesmo que eu esteja inicialmente logado no meu computador Ubunu OS, com uma sessão gnome já rodando?

    
por kaligne 02.05.2015 / 02:45

1 resposta

5
  1. Faça o chroot , conforme descrito na pergunta, e então su - fred (ou qualquer que seja seu nome) ou exec su - fred .
  2. Do chroot /mnt /bin/su - fred , para que o su seja a primeira coisa que é executada no ambiente chroot.

Observe que os dois acima assumem que o seu usuário fred está definido em /mnt/etc/passwd .

OU

  1. Do chroot --userspec=fred:bedrock --groups=group1,group2 /mnt /bin/bash , para definir sua identidade de usuário desde o início do chroot. O manual de invocação chroot diz,

    The user and group name look-up performed by the --userspec and --groups options, is done both outside and inside the chroot, with successful look-ups inside the chroot taking precedence.

    Considere adicionar -l (ou --login ) para informar bash para agir como se tivesse sido invocado como uma shell de login; ou seja, para dizer-lhe para ler /etc/profile e ~/.bash_profile , etc.

  2. A pergunta pergunta: "Como faço para entrar na minha sessão de usuário, uma vez que estou chrooted?" Muito possivelmente a resposta literal, chroot /mnt /bin/login , funcionaria. Se isso funcionar, seria mais como um login comum, em que pediria um nome de usuário e uma senha. É (provavelmente) a única resposta (desses quatro, pelo menos) isso causaria o comando who no ambiente chroot para relatar seu nome de usuário (e horário de login, etc.) e pode ser a melhor aposta para usar alguns dos recursos mais esotéricos do ambiente. (Estou pensando em [especular] sobre cron / crontab / at , o comando passwd , as cotas do sistema de arquivos, o sistema de contabilidade etc. Não sei se ou por que esses ou qualquer outro software pode não ficar satisfeito apenas olhando para o seu UID real.) Claro que isso, como as duas primeiras respostas, operaria em usuários e senhas definidos no ambiente chroot ed.

    Isso pode não funcionar. Eu vagamente pareço lembrar algo sobre algumas versões do login detectando que está sendo executado de maneira não padronizada (assim) e recusando-se a brincar. Mas não consigo me lembrar de detalhes e não consigo encontrar nada em dois minutos de pesquisa.

por 02.05.2015 / 06:44