Usando o sudo em contêineres LXC para contas sem shell válido

0

Para contas, em contêineres, que não têm shell (por exemplo, www-data do usuário), eu gostaria de usar o sudo, sem terminar em / root / folder.

Por que isso só funciona depois de usá-lo pela segunda vez? Como posso evitar terminar em / root / dir com sudo?

$ sudo lxc-attach -n hugo
root@hugo:~# sudo -H -u golanger /bin/bash && cd /home/golanger
golanger@hugo:/root$
golanger@hugo:/root$ exit
root@hugo:/home/golanger# sudo -H -u golanger /bin/bash && cd /home/golanger
golanger@hugo:~$ 
    
por albert j 07.02.2017 / 05:02

1 resposta

1

Em sudo -H -u golanger /bin/bash && cd /home/golanger , seu shell atual executa sudo -H -u golanger /bin/bash e quando isso termina com êxito, executa cd /home/golanger . Portanto, o cd não afeta o comando sudo .

sudo em si não redefine o diretório de trabalho ( -H somente redefine o diretório inicial, não o diretório de trabalho atual). Se você deseja tornar sudo cd no diretório inicial do usuário de destino, não há opções de linha de comando que possam fazer diretamente o trabalho. Você terá que resolver isso:

sudo -H -u golanger /bin/sh -c 'cd; /bin/bash'

Observe que, com a opção -i , sudo tentará cd no diretório inicial do usuário de destino, mas também usará o shell de login do usuário, o que fará com que ele falhe nesse caso. / p>     

por muru 07.02.2017 / 05:16