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

7

[ Disclaimer : não há intenção maliciosa para esta questão, estou tentando entender o comando ln -s para um projeto de 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 sucesso 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 em foo.txt , apenas não acessasse /home/bob ?

E sobre o caso inverso, em que eu poderia acessar /home/bob , mas não ler foo.txt ?

    
por MyStackRunnethOver 13.04.2017 / 03:40

1 resposta

8

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

Can I successfully run ln -s /home/bob/foo.txt in my home folder? Is it correct to assume that if I can, it will produce a link I can't access (with the same permissions as foo.txt)?

Correto. 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 é 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

What if I DID have read privileges on foo.txt, just not access to /home/bob?

Se você não tem permissões no diretório pai, não é possível acessar o arquivo contido . Então, com um link simbólico, você ainda não conseguiria acessá-lo. Criar um link simbólico não afeta as permissões.

What about the reverse case, where I could access /home/bob but not read foo.txt?

Novamente, você pode criar um symlink para ele, mas não acessar o arquivo.

    
por 13.04.2017 / 03:52