Freebsd Secondary Group não permitindo a exclusão de pastas

6

TLDR: Eu tenho um usuário que é membro de um grupo como grupo secundário. Este usuário pode excluir arquivos com 664 perms como usuário secundário, mas não diretórios com permanentes de 775.

Detalhes: tenho um usuário. Vamos chamá-lo ftpuser. Eu o uso para fazer upload e download de arquivos para o meu devbox. O grupo primário do usuário é "ftp" e também está no grupo "www" como um grupo secundário. Meu servidor web é executado como usuário www e group www, e tenho proftpd (rodando como www e www) configurado para colocar todos os arquivos nos diretórios necessários como www e www (para propriedade de arquivo) e perms 664 nos arquivos e 775 nos diretórios.

Meu problema é (tentei com clientes de 2 ftp) o cliente ftp pode excluir os arquivos, mas não as pastas. O Filezilla retorna 550 permissões negadas. O dono só pode apagar o sinalizador não está definido, e eu tripliquei as permissões e eles são de fato 775.

Isso está me deixando louco por ter que entrar no meu servidor para apagar manualmente as pastas de cada vez. Algumas das pastas e arquivos são criados por um dos meus scripts php, mas as permissões estão sendo definidas corretamente quando eu verifico as propriedades dos arquivos.

A criação de diretórios e arquivos funciona de maneira fenomenal. Pode excluir arquivos, mas não diretórios.

Freebsd 9.0 em execução no VirtualBox (32bit a toda a volta) Proftpd (rodando como www e www) como servidor ftp (tentei usar tanto o dreamweaver quanto o filezilla como clientes) Configuração básica de amplificadores (apache, mysql e php).

Editar:

A pasta pai era 755. Eu sabia que seria algo estúpido simples e facilmente esquecido. Eu pensei em definir perms em massa para 775 dois diretórios para cima (apache22 / data), mas eu devo ter feito esse diretório depois de definir os perms. Você aprende algo novo a cada dia. Obrigado!

    
por Jarrod Juleff 06.11.2012 / 03:34

2 respostas

3

Para remover um diretório, você deve ter permissões de gravação em seu pai. Por exemplo, dado este diretório:

drwxr-xr-x    3 owner  staff   102 Nov  5 22:00 .
drwxr-xr-x  160 owner  admin  5440 Nov  5 22:00 ..
drwxr-xr-x    2 owner  staff    68 Nov  5 22:00 foo

somente owner pode excluir o diretório foo (porque somente owner tem permissão de gravação no diretório pai).

Se você conceder ao staff group permissões de gravação no diretório pai:

drwxrwxr-x    3 owner  staff   102 Nov  5 22:00 .
drwxr-xr-x  160 owner  admin  5440 Nov  5 22:00 ..
drwxr-xr-x    2 owner  staff    68 Nov  5 22:00 foo

então qualquer membro do grupo staff pode remover o diretório foo .
No entanto, para remover o diretório, é necessário excluir todos os seus conteúdos, pois não é possível remover um diretório não vazio.

    
por 06.11.2012 / 04:09
3

A permissão para excluir uma pasta seria as permissões para "gravar" na pasta pai. O que você está realmente fazendo é remover a entrada "subpasta" na pasta pai. Eu estou supondo que a pasta pai não tem permissões de gravação para o grupo 'www'.

    
por 06.11.2012 / 04:08