
Dois usuários:
A1:x:1001:1002::/home/A1:/bin/sh
A2:x:1002:1002::/home/A1:/bin/sh
Um grupo:
A1:x:1002:
Servidor FTP: nova instalação ProFTPd OS: nova instalação Ubuntu Server 12.04
Uma pasta (/home/A1) que desejo compartilhar entre A1 e A2:
/home/A1: A1:A1 rwxrwxr-x
/home/A1/B1.txt: A1:A1 rw-rw-r--
/home/A2/B2.txt: A1:A1 rw-r--r--
O que eu quero:
- B1.txt pode ser modificado por A1 e A2
- B1.txt pode ser modificado por A1, mas não por A2, portanto A2 só pode lê-lo.
Quando me conecto ao FTP agora, o A2 pode modificar qualquer coisa e eu realmente não entendo isso. Se eu remover a permissão de gravação do grupo de /home/A1 (então rwxr-xr-x) A2 não poderá modificar nada.
O que eu faço de errado?
Responder1
O upload de um arquivo funciona criando um novo arquivo temporário e movendo-o para o lugar, e não substituindo o arquivo existente. Isso ocorre porque se a conexão fosse perdida no meio da substituição do arquivo, você ficaria com um arquivo incompleto.
O upload de um novo arquivo, a remoção de um arquivo existente e o upload de uma nova versão de um arquivo existente exigem acesso de gravação apenas ao diretório. As permissões no arquivo existente, se houver, não importam. Assim, A2 pode igualmente modificar B1.txt
e B2.txt
.
Se você precisar de permissões diferentes para atualizar esses dois arquivos, coloque-os em diretórios diferentes com permissões diferentes.
Caso precise que os dois arquivos estejam disponíveis no mesmo diretório, faça B1.txt
um link simbólico para writable-by-A2/B1.txt
onde writable-by-A2
está um diretório onde A2 tem permissão de gravação.
Responder2
Qual mensagem de erro você está recebendo?
Se o erro for "Permissão de substituição negada", você precisará ativar a substituição no seu proftpd.conf
- por padrão, ela está desativada.
Para fazer isso, adicione:
AllowOverwrite yes
para a <Global>
seção (isso permitirá a substituição em qualquer lugar onde as permissões de arquivo permitirem) ou para uma <Directory /home/A1>
seção (isso permitirá a substituição apenas nesse diretório e somente se as permissões de arquivo permitirem).
Se essas não forem as mensagens de erro, adicione mais detalhes à sua pergunta - pelo menos a mensagem de erro e, de preferência, uma extração de log.