Em um link simbólico apontando para '127.0.1.1:+xxxxx', qual é o caractere mais?


52

No meu sistema de arquivos Linux, um link simbólico aponta para 127.0.1.1:+xxxxx.

Por que o sinal de mais? Também poderia haver um sinal de menos? Por que não apenas 127.0.1.1:xxxxx?


Esse link simbólico está em / proc?
— 1937 Joshua

4
@ Josué: Provavelmente em ~ / .mozilla / ou similar. O Firefox / Thunderbird e o iirc Steam usam esses links simbólicos para bloquear.
— grawity

2
Xxxxx é um número ou os caracteres xxxxx?
— Mawg

2
Provavelmente não relacionado, mas apenas para informação. Em alguns clientes de IRC, o sinal de adição antes da porta estar lá para indicar que o servidor remoto usa SSL / TLS.
— EKKiM

Respostas:


93

Links simbólicos que não apontam para um arquivo não têm significado genérico. Nesse caso, pode ser o ID do processo ou uma porta com algum protocolo especial falado sobre ele ou outro identificador. Tudo depende de qual programa foi criado.

O software que cria esses links simplesmente tira proveito dos fatos de que 1) o alvo de um link simbólico pode ser inexistente ou até um total absurdo; 2) criar um link simbólico é uma operação completamente atômica de syscall única (como está lendo seu destino), ao contrário de criar um arquivo regular que requer pelo menos três chamadas de sistema separadas.

Assim, a criação de links simbólicos pode ser abusada como uma maneira de bloquear (garantindo uma instância única de um programa), mesmo quando outros mecanismos possam não ser confiáveis. O programa não precisa do link simbólico para realmente resolver um arquivo real: ele se preocupa apenas com a criação do link ou se ele falha porque já existe.


5
"* ao contrário de criar um arquivo comum que recebe pelo menos 3 chamadas de sistema separadas. *" - Você poderia esclarecer? Você quer dizer fopen, fwritee fclose?
— Nic Hartley

11
@ NicHartley: As chamadas do sistema são open(ou talvez createm software antigo) write, e closenão as versões f * fornecidas pelo stdio. Mas, sim, você precisa fazer pelo menos opene writecriar o arquivo e colocar algo significativo nele. Agora, se você quiser que algum código "tente criá-lo, se for bem-sucedido, coloque algumas informações nele, senão leia algumas informações dele", o segundo processo pode apenas tentar readantes que o primeiro processo possa write. symlinkevita isso; tenha sucesso e crie o link ou falhe e verifique se readlinkpossui as informações para você.
— Guntram Blohm apoia Monica

"... pode ser abusado como um meio ..." Esse abuso é como "usado de um modo que não se destina a ser usado" ou "usado de um modo que não deve ser usado"?
— O cara com o chapéu

22

Tanto quanto sei, o "+" significa que o número após o IP (o "xxxxx") se refere a um "ID do processo" (não uma porta que geralmente usa a notação [endereço IP]: [número da porta]).

É possível que essa "notação" (não tenho certeza se a chamaria de "notação", pois não conheço nenhuma documentação "oficial") se refere a outra coisa se usada por um aplicativo específico - mas, novamente, essa é sempre a possibilidade não apenas com links simbólicos. Os únicos casos que conheço (e pude encontrar com uma pesquisa que não era muito extensa) o "+ XXXX" sempre se referiam ao ID do processo.


11
Acabei de verificar. No meu caso, isso realmente acontece.
— myMethod

11
Existe documentação desse formato em algum lugar que você pode vincular?
— David Z

11
Não tenho certeza, eu só lembro disso por experiência prática.
— Albin

2
Parece que você está falando de um link simbólico em um diretório especial, como /procou /dev. Você pode explicar para que serve esse link simbólico?
— Barmar

4
Esta é a primeira vez que vejo essa notação, por isso estou surpreso ao ouvir você dizer que é uma notação geral. Onde você viu isso significa um ID de processo?
— Barmar
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.