Sessão de tela sendo executada como root? (não deveria ser) node.js

5
cd /serv  
screen -R node  
{in the screen}  
node test.js  
C^a d  

inicialmente,

ls -l /dev/pts  
total 0  
crw--w---- 1 tick-tock tty 136, 0 2011-04-19 16:41 0  
crw--w---- 1 tick-tock tty 136, 1 2011-04-19 16:41 1 

mas depois de apenas alguns segundos

ls -l /dev/pts  
total 0  
crw--w---- 1 tick-tock tty 136, 0 2011-04-19 16:47 0  
crw--w---- 1 root      tty 136, 1 2011-02-21 20:00 1  

Como o terminal da tela está sendo comutado para root? Isso significa que o servidor do nó está realmente executando com permissões de root? Não deveria ser. O único outro fator que pode ser um problema é que o iptables encaminha a porta 80 para a porta 8000 onde o servidor do nó atende, portanto, não precisa ser executado como root. Peço desculpas se este é o lugar errado para perguntar isso, talvez eu deva perguntar em uma comunidade node.js?

Eu não tenho su root nem fiz nenhum comando sudo de antemão.

    
por Tick-Tock 19.04.2011 / 18:59

2 respostas

1

Seu sistema, uma vez screen desanexa, destrói o pts e, por algum motivo, o recria, se bem entendi como udev está manipulando as coisas em seu sistema.

udev é o subsistema que controla a criação e a destruição de dispositivos em / dev, que é um sistema de arquivos gerado dinamicamente. pts criação / destruição é manipulado por ptmx , que é usado para criar pares mestre / escravo pseudo-terminais. pts/* é o escravo do respectivo PTM ou pseudo-terminal mestre. Como tal, quaisquer modificações de permissões que você veja são um resultado direto da destruição e criação dos referidos nós de dispositivos, em vez de modificação . Quanto à data do arquivo, como os nós de dispositivos são clones, é provável que o original usado para criar esses nós tivesse uma data de criação do tempo que você vê na sua saída ls .

  • man ptmx - Descreve como a ptmx cria novos nós de dispositivos pseudo terminais pts.

O que não entendo é por que há uma diferença entre o comportamento do seu sistema e o comportamento do meu em relação a /dev/pts/ *. Eu não experimento alterações perms percebidas em dispositivos; Eles desaparecem completamente, como é, ou os perms não mudam, independentemente de minhas ações (por exemplo, desanexar a tela, o dispositivo permanece e não é destruído / recriado). Não apenas isso, mas as datas associadas aos meus dispositivos pts/* recém-criados são a data atual.

Uma possibilidade é que o VPS que você está usando tenha algo a ver com esse comportamento. Por exemplo, eu não posso executar um dist-upgrade no meu VPS, já que o sistema que eles utilizam apenas permite uma versão do kernel, aquela que eles hackearam e colocaram no lugar. O tipo de restrição que impede a atualização do seu próprio kernel também pode afetar a funcionalidade de outros subsistemas. Isso é apenas especulação, mas faria sentido.

Também pode ser apenas uma diferença em como o udev é configurado.

Revisão 3, com muita ajuda de Gilles. ;)

    
por 05.05.2011 / 00:27
0

A tela tem várias opções de tempo de compilação, uma delas é o modo multiusuário. Se instalado nesta tela de modo, geralmente é instalado com raiz suid. Veja documentos do modo multiusuário . O seu é instalado assim? Qual é a saída de ls -l /usr/bin/screen ?

    
por 05.06.2011 / 10:14