existe um sistema de arquivos que um mesmo caminho de caminho é desviado para um arquivo diferente quando usuários diferentes o acessam?

1

Eu quero acessar um arquivo diferente quando usuários diferentes acessam o mesmo caminho de arquivo.

Por exemplo, existe um caminho de arquivo /path/a.txt no linux, se user1 acessa /path/a.txt acessa /user1/a.txt ; se user2 acessa /path/a.txt na verdade acessa /user2/a.txt

Qualquer ajuda é muito apreciada. Obrigado!

    
por cepheid 04.08.2016 / 18:23

2 respostas

2

Em cima da minha cabeça eu posso pensar em 4 maneiras de fazer isso, mas eu não recomendaria nenhuma delas!

  1. Use namespaces do Linux; dentro de cada namespace por usuário bind-mount o arquivo por usuário na parte superior do arquivo base.

  2. Crie um ambiente chroot por usuário com o symlink'd do arquivo base no arquivo de destino

  3. Execute um sistema de arquivos baseado no FUSE e monte-o sobre a parte superior do arquivo base

  4. O arquivo de base deve ser um canal nomeado com um processo de daemon que lida / grave no arquivo por usuário.

Mas todos destes são complicados de configurar e frágil e eu não os recomendaria. Eu não estou indo mais fundo em como implementar isso, porque se você não pode construí-lo, então você não será capaz de consertá-lo QUANDO ele quebra!

Em geral, você deve contornar o problema de outra maneira em seu código (por exemplo, usar variáveis de ambiente).

    
por 04.08.2016 / 18:49
-1

Use uma variável para atingir o objetivo. Suponha que você use bash e, em seguida, para user1, defina uma variável, digamos, cpath em ~ / .bashprofile

cpath=custom/path1

acesse o arquivo como

"/some/path/$cpath/filename" # Quotes important to prevent word splitting

para user2, defina uma variável como

cpath=custom/path2

acesse o arquivo como

"/some/path/$cpath/filename" #note the same path
    
por 04.08.2016 / 18:34