Permissão negada ao gravar / excluir apesar das permissões apropriadas

1

Primeiro, sim, o diretório pai tem permissões corretas. Agora que isso está fora do caminho, aqui está o acordo.

Meus usuários não podem escrever ou rm em /mnt/file-server/reports/vendor/client/2018/02-04-02-10/

Todos os usuários são membros do grupo sftpusers. Todos os diretórios que levam a 02-04-02-10 têm as mesmas permissões. Cada usuário pode escrever / rm um arquivo / diretório em TODOS os diretórios, exceto se o arquivo / diretório estiver no diretório 02-04-02-10 .

$tree -Rpg /mnt/file-server
/mnt/file-server/
├── [drwsrws--- sftpuser]  reports
│   ├── [drwsrws--- sftpuser]  vendor
│   │   ├── [drwsrws--- sftpuser] client
│   │   │   └── [drwsrws--- sftpuser]  2018
│   │   │       ├── [drwsrws--- sftpuser]  02-04-02-10
│   │   │       │   ├── [-rw-rw---- sftpuser]  Fast_Track_Instock.csv
│   │   │       │   ├── [-rw-rw---- sftpuser]  Forecast_and_Inventory_Planning.csv
│   │   │       │   ├── [-rw-rw---- sftpuser]  parent_asi.csv
│   │   │       │   ├── [-rw-rw---- sftpuser]  Sales_and_Inventory_Product_Details_Manufacturer.csv
│   │   │       │   ├── [-rw-rw---- sftpuser]  Sales_and_Inventory_Product_Details_Sourcing.csv
│   │   │       │   ├── [-rw-rw---- sftpuser]  Sales_Diagnostic_Ordered_Revenue.csv
│   │   │       │   ├── [-rw-rw---- sftpuser]  Sales_Diagnostic_Shipped_Cogs.csv
│   │   │       │   └── [-rw-rw---- sftpuser]  Sales_Diagnostic_Shipped_Revenue.csv

$lsattr /mnt/file-server/reports/vendor/client/2018/ | grep 02-04
-------------e-- ./02-04-02-10

$stat /mnt/file-server/reports/vendor/client/2018/02-04-02-10/
  File: ‘02-04-02-10/‘
  Size: 4096        Blocks: 8          IO Block: 4096   directory
Device: 97eh/2430d  Inode: 15335547    Links: 2
Access: (2770/drwsrws---)  Uid: ( 2001/  fps)   Gid: ( 1006/sftpusers)
Access: 2018-03-19 10:03:34.657116835 -0600
Modify: 2018-03-19 10:03:43.743147764 -0600
Change: 2018-03-19 17:40:03.574287737 -0600
 Birth: -

A raiz pode gravar arquivos / rm, sem prob.

Aqui está um exemplo de um usuário e a tentativa de tocar em um arquivo:

id -a uid=3009(seanhadmin) gid=3009(seanhadmin) groups=3009(seanhadmin),1006(sftpusers)

touch /mnt/file-server/reports/vendor/client/2018/02-04-02-10/foo touch: cannot touch ‘/mnt/file-server/reports/vendor/client/2018/02-04-02-10/foo’: Permission denied

$df -h | grep file-server
/dev/md126      4.0T  1.3T  2.6T  33% /mnt/file-server

O que no mundo estou sentindo falta? Eu mesmo reiniciei o servidor por puro desespero (claro que não resolveu isso).

UPDATE

Então eu encontrei algo estranho com minhas ACLs.

Veja como é uma boa ACL:

$getfacl 01-07-01-13/
 file: 01-07-01-13/
 owner: fps
 group: sftpusers
 flags: ss-
user::rwx
group::rwx
other::---
default:user::rwx
default:group::rwx
default:group:sftpusers:rwx
default:mask::rwx
default:other::---

Aqui está o 02-04-02-10

getfacl 02-04-02-10/
 file: 02-04-02-10/
 owner: fps
 group: sftpusers
 flags: -s-
user::rwx
group::r-x
group:2000:rwx
mask::rwx
other::---
default:user::rwx
default:group::r-x
default:group:sftpusers:rwx
default:mask::rwx
default:other::---

Não importa o que eu tentei, não consegui atualizá-lo corretamente. Como solução alternativa, movi o diretório para um sistema de arquivos diferente, depois o movi de volta e, em seguida, corrigi a permissão / propriedade novamente.

Se alguém tiver uma solução para o motivo pelo qual a ACL não seria atualizada, adoraria ouvi-la.

    
por brenden 20.03.2018 / 00:51

1 resposta

0

A solução alternativa era copiar o diretório pai para o diretório do problema em outro sistema de arquivos, copiá-lo de volta no lugar e corrigir as permissões / propriedade.

Não consegui solucionar o problema do setfacl, pois os diretórios com problemas foram corrigidos.

Se alguém estiver curioso, os comandos que eu executei foram:

$setfacl -Rd --set u:fps:rwx 02-04-02-10 $setfacl -Rd --set g:sftpusers:rwx 02-04-02-10 $setfacl -Rdm o::0 02-04-02-10

    
por 20.03.2018 / 01:32