Percebi que para o valor SSH_AUTH_SOCK, sua pasta é inacessível para qualquer outra pessoa, mas o arquivo em si pode ser lido por qualquer pessoa. Qual é a razão por trás desse design?
Se eu colocar um link simbólico legível /tmp
apontando para meu arquivo SSH_AUTH_SOCK privado, que tipo de risco de segurança isso imporia?
Os links simbólicos não substituem as permissões do caminho do arquivo subjacente .
por exemplo, se eu fizer
ln -s /tmp/ssh-foobarbaz/agent.12345 /tmp/mysock
isso, para poder acessar,/tmp/mysock
devo ser capaz de acessar/tmp/ssh-foobarbaz/agent.12345
, o que significa ser capaz de acessar/tmp/foobarbaz
. Como esse diretório é o modo 0700, apenas o proprietário desse diretório (ou root!) pode acessaragent.12345
e, portanto, apenas essa pessoa (ou root!) pode acessar/tmp/foobarbaz
.Os links físicos, por outro lado, ignoram as permissões no diretório porque é um caminho alternativo para o arquivo. Mas você precisa poder acessar o arquivo em primeiro lugar para criar o link físico, para que outro usuário não possa fazer isso; você precisaria ser "bobo" e fazer algo ruim deliberadamente.
Em ambos os casos, ter o soquete em um diretório no modo 0700 significa que ele é seguro contra outros usuários (exceto root).