Posso criar um link simbólico para um arquivo que não consigo acessar?

8

[ 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.txtna 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/bobmas não ler foo.txt?

MyStackRunnethOver
fonte
4
Você pode criar um link simbólico para praticamente qualquer coisa, incluindo coisas que não existem.
Muru
1
Tecnicamente, o link simbólico não possui permissões próprias e normalmente lsmostra isso como sendo lrwxrwxrwx, portanto, é um pouco errado falar sobre as permissões de um link.
Henrik apoia a comunidade

Respostas:

9

Sim, você pode criar um link simbólico para qualquer local.

Posso executar com êxito ln -s /home/bob/foo.txtna 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)?

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:

$ ln -s /etc/shadow foo
$ file foo
foo: symbolic link to /etc/shadow
$ cat foo
cat: foo: Permission denied

$ ln -s /etc/nonexistent bar
$ file bar
bar: broken symbolic link to /etc/nonexistent

E se eu tivesse privilégios de leitura foo.txt, apenas não tivesse acesso /home/bob?

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.

E o caso inverso, onde eu poderia acessar, /home/bobmas não ler foo.txt?

Novamente, você pode criar um link simbólico para ele, mas não acessar o arquivo.

Arminius
fonte
2
@ 4o2 Como isso está correto, estou comentando aqui para elaborar. Sua pergunta tem mais a ver com permissões, que você marcou corretamente e bem-vindo ao Exchange. Quando um usuário é criado, ele recebe um diretório /homee é 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.
eyoung100