Retorna ao shell de login padrão depois de executar / bin / bash

1

Quando o login no log é diferente do que é depois de executar / bin / bash

-bash-4.2$ exec bash
bash-4.2$

Como obtenho o - de volta na frente do bash? Existem certos comandos como o tcp dump que só funcionam no orignal

-bash-4.2$ tcpdump -i port1 -w /home/user/$HOSTNAME-port1.pcap -c10000 -G300
tcpdump: WARNING: port1: no IPv4 address assigned
tcpdump: listening on port1, link-type EN10MB (Ethernet), capture size 65535 bytes
0 packets captured
0 packets received by filter
0 packets dropped by kernel
-bash-4.2$ exec bash
bash-4.2$ tcpdump -i port1 -w /home/user/$HOSTNAME-port1.pcap -c10000 -G300
tcpdump: port1: You don't have permission to capture on that device
(socket: Operation not permitted)

Atualização para @ ctrl-alt-delor

-bash-4.2$ groups
nuage
-bash-4.2$ exec bash
bash-4.2$ groups
nuage

atualização para @Mikel

bash-4.2$ exec bash -l
bash-4.2$

Atualização para o @Mark Plotnick

-bash-4.2$ type tcpdump
tcpdump is aliased to 'sudo /usr/sbin/tcpdump'
-bash-4.2$ exec bash
bash-4.2$ type tcpdump
tcpdump is /usr/sbin/tcpdump
[root@host nuage]# cat /etc/sudoers | grep nuage
[root@host nuage]# exit
bash-4.2$ group
bash-4.2$ groups
nuage
bash-4.2$ whoami
nuage
    
por Xander May 11.07.2018 / 17:29

1 resposta

1

Problema: Depois de executar exec bash os aliases presentes no prompt de login padrão são perdidos, fazendo com que alguns comandos não funcionem como esperado, como o tcpdump no exemplo a seguir

-bash-4.2$ tcpdump -i port1 -w /home/user/$HOSTNAME-port1.pcap -c10000 -G300
tcpdump: WARNING: port1: no IPv4 address assigned
tcpdump: listening on port1, link-type EN10MB (Ethernet), capture size 65535 bytes
0 packets captured
0 packets received by filter
0 packets dropped by kernel
-bash-4.2$ exec bash
bash-4.2$ tcpdump -i port1 -w /home/user/$HOSTNAME-port1.pcap -c10000 -G300
tcpdump: port1: You don't have permission to capture on that device
(socket: Operation not permitted)

A correção: Você pode fazer o que eu fiz e descobrir como os aliases mudam entre os diferentes prompts

-bash-4.2$ type tcpdump
tcpdump is aliased to 'sudo /usr/sbin/tcpdump'
-bash-4.2$ exec bash
bash-4.2$ type tcpdump
tcpdump is /usr/sbin/tcpdump

e, em seguida, altere o script para usar os sudo tcpdump em vez de tcpdump .

Ou, como alternativa, você pode restaurar todos os aliases presentes no prompt original, executando exec -a -bash bash (o que não é recomendado, consulte o comentário de @ ctrl-alt-delor)

    
por 11.07.2018 / 21:09