Posso compartilhar uma pasta dentro do meu diretório pessoal com outro usuário?

2

Posso compartilhar uma pasta dentro do meu diretório pessoal com outro usuário?

Eu tenho dois usuários em um sistema, agent e daemon . Um servidor externo se conecta como agent e arquivos rsyncs a ~agent/incoming

Eu quero que daemon tenha acesso aos arquivos em ~agent/incoming , mas não quero que agent tenha acesso a nenhum dos arquivos daemon .

Eu configurei um grupo chamado automaton e adicionei os dois usuários a ele. Eu então chmod'ed a pasta ~agent/incoming para drwxrws--- (observe o bit pegajoso) e chowned essa pasta para agent:automaton .

O processo é executado e novos arquivos são entregues na pasta incoming e são definidos como agent:automaton com permissões -rw-rw---- , mas daemon não pode exibir nem copiar esses arquivos:

stat: cannot stat (path here) : Permission denied

O que estou fazendo de errado?

    
por cwd 21.12.2011 / 22:23

2 respostas

1

Sua pergunta é difícil de responder precisamente porque você não disse qual caminho está passando para o daemon e não especificou as permissões de ~agent . Se você iniciar o daemon no diretório ~agent/incoming e passar caminhos relativos, então, como o daemon está no grupo automaton , ele poderá ler, gravar e excluir os arquivos no diretório ~agent/incoming .

Eu acho que o que está acontecendo é:

  1. O diretório ~agent não é executável para o daemon.
  2. O caminho passado para o daemon inclui ~agent como um componente (digamos, é um caminho absoluto).

Quando um processo acessa /home/agent/incoming/foo , ele deve ter permissões de execução em todos os diretórios que são atravessados: / , /home , /home/agent e /home/agent/incoming (mais, se alguns deles forem links simbólicos).

Se o daemon acessar foo enquanto seu diretório atual for ~agent/incoming , ele só precisará ter permissões de execução no próprio diretório ( ~agent/incoming ). Você precisa conseguir tornar esse diretório atualizado; chdir requer que o processo tenha acesso ao diretório de destino. Isso é possível se você mudar primeiro para o diretório desejado durante a execução como (digamos) o usuário agent , então execute algo como su daemon -c daemon-command .

    
por 22.12.2011 / 02:13
0

não há permissão para o daemon na pasta '~ agent /' mesmo que ele tenha permissão para '~ agent / incoming', então é uma hierarquia de permissões ver este Uma pergunta sobre permissões de diretórios hierárquicos

    
por 21.12.2011 / 22:36