Não é possível excluir pasta própria via FTP

2

Eu sei que isso foi perguntado muitas vezes, mas não consigo encontrar uma solução.

então eu uso vsftpd e FileZilla como cliente

em /var/www/

drwxrwsr-x+  8 myuser ftpusers 4.0K Sep  2 10:37 html

em /var/www/html/

drwxrwxrwx   3 myuser ftpusers 4.0K Sep  2 10:38 directory

Não consigo excluir o diretório, embora eu seja o proprietário

O log do FileZilla diz

rmdir /www/html/directory: failure

Eu já tentei o 777 na pasta HTML, mas em vão. Embora funcione simplesmente na linha de comando.

Depois de alterar o script python de os.mkdir para os.system("mkdir") , o problema parece ter desaparecido, mas ainda assim estou interessado se alguém puder me dar uma pista.

/var/www$ getfacl html
# file: html
# owner: myuser
# group: ftpusers
user::rwx
group::rwx
group:admin:rwx
group:synchronizer:rwx
mask::rwx
other::--x
    
por guest1324 02.09.2016 / 10:45

1 resposta

1

Na sua lista de diretórios

drwxrwsr-x+  8 myuser ftpusers 4.0K Sep  2 10:37 html

o "+" indica que existem permissões estendidas no diretório html . Quando você usa uma chamada de tempo de execução, como os.mkdir , em vez de um comando shell com os.system , os dois podem primeiro verificar usando access se você tiver permissão para remover este diretório - ou eles não podem (contando com o sistema operacional para decidir).

O wiki do Debian Permissões menciona essa possibilidade:

The last column is the + sign. You are unlikely to see it while listing a directory now (it will appear empty), but it means that extended access rules are in effect, so the file's real permissions are not only what the file access mode says - you can read about ACL below in this howto.

Seu problema pode ser (por exemplo) que uma ACL proíba a exclusão de algo em execução com um determinado ID de grupo (onde o processo de ftp está sendo executado com seu próprio grupo) ou a verificação de acesso pode perceber se o daemon de ftp está em execução com um diferente usuário real .

Leitura adicional:

por 02.09.2016 / 12:32