<div dir="ltr"><span style="font-family: courier new,monospace;">Ola pessoal, estou com um problema para tentar 'automatizar' um openvpn que está muito chato e estou implorando pela ajuda dos universitário.<br><br>
Eu preciso fazer um cliente do openvpn 'subir' sem a intervenção humana, tentei utilizar o '--auth-user-pass' sem sucesso (se alguém souber como fazer esta opção funcionar ficarei feliz do mesmo jeito, e prometo que eu tentei um monte de coisa), então pensei: 'simples, vou fazer um script com o IPC::Open2 ou IPC::Open3 e vou fazer a manutenção da barriga de chop'. <br>
<br>Pois bem, fiz os script e descobri que o cliente do openvpn cria uma outra 'thread' e mandam a mensagem requisitando o usuário e senha neste 'filho'. Então o open2/3 abre e fica aguardando o output do cara criado, e este recebe depois que eu digito o usuário e a senha. capturando este cara via o strace eu peguei o log abaixo.<br>
<br>Então a minha dúvida é se tem como interagir com esta coisa que eu acredito ser um stdin e stdout de uma outra thread, ou eu estou comendo bola :( !!!!<br><br>Obrigadooooo !!<br><br><br><log_do_strace><br>5092 send(3, "<29>Jul 17 10:44:49 ovpn-client["..., 111, MSG_NOSIGNAL) = 111<br>
5092 open("/dev/tty", O_WRONLY|O_CREAT|O_TRUNC, 0666) = 4<br>5092 fstat64(4, {st_mode=S_IFCHR|0666, st_rdev=makedev(5, 0), ...}) = 0<br>5092 ioctl(4, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 opost isig icanon echo ...}) = 0<br>
5092 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7f3a000<br>5092 write(4, "Enter Auth Username:", 20) = 20<br>5092 close(4) = 0<br>5092 munmap(0xb7f3a000, 4096) = 0<br>
5092 open("/dev/tty", O_RDONLY) = 4<br>5092 fstat64(4, {st_mode=S_IFCHR|0666, st_rdev=makedev(5, 0), ...}) = 0<br>5092 ioctl(4, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 opost isig icanon echo ...}) = 0<br>
5092 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7f3a000<br>5092 read(4, "alguma_coisa\n", 4096) = 6<br>5092 close(4) = 0<br>5092 munmap(0xb7f3a000, 4096) = 0<br>
5092 open("/dev/tty", O_RDWR|O_CREAT|O_TRUNC, 0666) = 4<br>5092 fstat64(4, {st_mode=S_IFCHR|0666, st_rdev=makedev(5, 0), ...}) = 0<br>5092 ioctl(4, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 opost -isig icanon -echo ...}) = 0<br>
5092 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7f3a000<br>5092 write(4, "Enter Auth Password:", 20) = 20<br>5092 read(4, "outra_coisa\n", 4096) = 7<br>5092 write(4, "\n", 1) = 1<br>
<br></span><span style="font-family: courier new,monospace;"></log_do_strace></span><br clear="all"><br><span style="font-family: courier new,monospace;">Solli M. Honório</span><br>-- <br>"o animal satisfeito dorme". - Guimarães Rosa</div>