[ Isenção de responsabilidade : não há intenção maliciosa nesta pergunta. Estou tentando entender o comando ln -s para um projeto da escola]
Digamos que eu tenha um sistema de arquivos com minha pasta pessoal /home/anna
,. /home/bob
é uma pasta que não consigo acessar, com um arquivo que não consigo acessar,foo.txt
Posso executar com êxito ln -s /home/bob/foo.txt
na minha pasta pessoal? É correto supor que, se eu puder, ele produzirá um link que não posso acessar (com as mesmas permissões que foo.txt
)?
E se eu tivesse privilégios de leitura foo.txt
, apenas não tivesse acesso /home/bob
?
E o caso inverso, onde eu poderia acessar, /home/bob
mas não ler foo.txt
?
permissions
symlink
MyStackRunnethOver
fonte
fonte
ls
mostra isso como sendolrwxrwxrwx
, portanto, é um pouco errado falar sobre as permissões de um link.Respostas:
Sim, você pode criar um link simbólico para qualquer local.
Corrigir. As restrições de acesso do arquivo de destino se aplicam. Se você criar um link simbólico para um recurso restrito, simplesmente não poderá acessá-lo. Nem sequer é necessário que o arquivo de destino realmente exista.
Uma demonstração:
Se você não tiver permissões no diretório pai, não poderá acessar o arquivo contido . Portanto, com um link simbólico, você ainda não poderá acessá-lo. Criar um link simbólico não afeta as permissões.
Novamente, você pode criar um link simbólico para ele, mas não acessar o arquivo.
fonte
/home
e é colocado em um grupo com o mesmo nome que seu nome de usuário, ou seja, o usuário bob está no grupo bob, até que ele seja adicionado a outras pessoas para impedir que os usuários leiam os arquivos uns dos outros. Antigamente, todos os usuários pertenciam a usuários do grupo, o que permitia a intenção maliciosa a que você aludia. Para que Anna veja os arquivos de bob, bob deve adicioná-la ao grupo bob.