Não é possível correr Espere “no more ptys. ”Como usuário normal

4

Eu tenho um contêiner LXC com o CentOS 7.4 em execução.
Na execução esperar do usuário normal estou recebendo o erro abaixo.

user@server ~>  expect -c "spawn ls"
spawn ls
The system has no more ptys.  Ask your system administrator to create more.
    while executing
"spawn ls"


Mas se nós executarmos o mesmo do usuário root, ele funciona.

[root@server]#  expect -c "spawn ls"
spawn ls

A saída da montagem também tem estes no ponto de montagem. devpts em / dev / pts tipo devpts (rw, relatime, seclabel, mode = 620, ptmxmode = 000)

Eu executei as atualizações abaixo no servidor.

mknod -m 600 /dev/console c 5 1 2>/dev/null
mknod -m 666 /dev/null c 1 3 2>/dev/null
mount -n -t tmpfs none /dev 2>/dev/null
mknod -m 622 /dev/console c 5 1 2>/dev/null
mknod -m 666 /dev/null c 1 3 2>/dev/null
mknod -m 666 /dev/zero c 1 5 2>/dev/null
mknod -m 666 /dev/ptmx c 5 2 2>/dev/null
mknod -m 666 /dev/tty c 5 0 2>/dev/null
mknod -m 444 /dev/random c 1 8 2>/dev/null
mknod -m 444 /dev/urandom c 1 9 2>/dev/null
chown root:tty /dev/{console,ptmx,tty} 2>/dev/null
ln -s /proc/self/fd /dev/fd 2>/dev/null
ln -s /proc/self/fd/0 /dev/stdin 2>/dev/null
ln -s /proc/self/fd/1 /dev/stdout 2>/dev/null
ln -s /proc/self/fd/2 /dev/stderr 2>/dev/null
ln -s /proc/kcore /dev/core 2>/dev/null
mkdir /dev/pts 2>/dev/null
mkdir /dev/shm 2>/dev/null
mount -t devpts -o gid=4,mode=620 none /dev/pts 2>/dev/null
mount -t tmpfs none /dev/shm 2>/dev/null
chmod 666 /dev/null

Mas ainda não consigo executar o comando expect como um usuário normal.
Eu tenho alguns scripts que precisam ser executados como usuário normal com instruções de expectativa.

Eu fiz todas as maneiras possíveis que posso imaginar. Por favor ajude !!

    
por nirmalraj17 12.01.2018 / 15:08

1 resposta

2

Após bastante pesquisa, descobri que precisava criar as estruturas / dev / ptmx e / dev / pts dentro do chroot.

 #!/bin/sh
 mknod /dev/ptmx c 5 2
 chmod 666 /dev/ptmx
 mkdir /dev/pts
 chmod 755 /dev/pts
 mount -t devpts -o gid=5,mode=620 none /dev/pts

Graças ao link do site Eu citei o script e os detalhes do site acima.

Depois de executar o script, consegui executar o comando

[user@server]#  expect -c "spawn ls"
spawn ls
    
por 12.01.2018 / 19:37

Tags