Quais sistemas não respeitam permissões de leitura / gravação de soquete?

5

man 7 unix nos estados do Linux:

In the Linux implementation, sockets which are visible in the file system honor the permissions of the directory they are in. Their owner, group and their permissions can be changed. Creation of a new socket will fail if the process does not have write and search (execute) permission on the directory the socket is created in. Connecting to the socket object requires read/write permission. This behavior differs from many BSD-derived systems which ignore permissions for UNIX domain sockets. Portable programs should not rely on this feature for security.

Quais sistemas ignoram permissões para soquetes de domínio UNIX?

    
por Alicia 15.07.2013 / 06:45

2 respostas

4

O HP-UX, por exemplo, ignora as permissões no arquivo de soquete.

Observe que os documentos estão falando sobre permissões no arquivo de soquete . Todas as implementações respeitam as permissões nos diretórios pai - um programa portátil deve fazer soquetes em um diretório privado, em vez de confiar em fazer soquetes com permissões restritivas (via umask ) em um diretório público.

    
por 19.12.2013 / 18:13
1

Não tenho certeza do que eles significam, dado que

  • sockets originados em BSDs e em 4.3BSD, a documentação especifica claramente que permissão de gravação é necessária para um connect() .
  • No Linux também, a permissão read não é necessária, apenas escreva.

POSIX não parece exigir que o connect() falhe se o arquivo de soquete não é gravável, mas permite explicitamente ( connect pode [...] falhar se o soquete nomeado não for gravável ). Isso "may" sugere que pode haver sistemas que não honram as permissões, mas duvido que eles sejam derivados do BSD.

    
por 15.07.2013 / 07:53