O link simbólico para ~ / algo depende do usuário logado?

1

se eu executar o comando:

ln -s ~/user/relative/path /absolute/path

e, em seguida, faça o login sob um usuário diferente, que não tenha user / relative / path em seu diretório home, o link estará quebrado ou inacessível de alguma forma?

Obrigado pela sua resposta:).

    
por Filip 21.03.2014 / 20:34

1 resposta

3

Verifique por si mesmo:

% ln -s ~/one two
% ls -l two
[...] two -> /home/rmano/one

O comando ln nem mesmo vê o ~ char --- ele é expandido pelo shell.

Agora, para usar o link, o novo usuário deve ter as permissões apropriadas no caminho real.

Você pode colocar um literal ~ no link, mas não funcionará, pelo menos não no linux --- variáveis de ambiente como $HOME não são expandidas quando o kernel resolve link simbólico.

Veja:

% cd 
% touch a1
% ln -s $HOME/a1 a2
% ln -s '$HOME'/a1 a3
% ls -l a?
-rw-rw-r-- 1 rmano rmano  0 Mar 21 13:49 a1
lrwxrwxrwx 1 rmano rmano 15 Mar 21 13:49 a2 -> /home/rmano/a1
lrwxrwxrwx 1 rmano rmano  4 Mar 21 13:50 a3 -> $HOME/a1
% cat a2
% cat a3
cat: a3: No such file or directory

Existe algum sistema operacional que possui essas características (acho que uma versão do FreeBSD fez isso, assim como alguns UNIX que usei em estações de trabalho Apollo --- não tenho certeza) que é chamado variante symlink .

Veja também link

    
por Rmano 21.03.2014 / 20:37