Tenho uma montagem nfs criada em um servidor Linux, e um processo que está criando diretórios e arquivos dinamicamente conforme é executado. Como esperado, os diretórios têm um owner:group
of nobody:nogroup
.
O problema é que a umask padrão está gerando permissões como esta:
drwxr-x--- 2 nobody nogroup 4096 Sep 6 20:17 /shares/dra/rman/ORCL/mtd_inputs_2024-08-27/scott/datafile
Esse diretório é criado por um cliente em outro servidor Linux, por um job Oracle RMAN. Mais tarde, ele invoca um comando Oracle DDL para criar um objeto Oracle Directory, que permite que o Oracle acesse esse diretório Linux.
Estou recebendo erros quando o RMAN tenta acessar diretórios nessa hierarquia. Quando pesquisado no Google, esses erros têm alguns resultados no suporte Oracle, incluindo esta nota. Essa nota me leva a pensar que talvez o objeto Oracle Directory não consiga acessar os diretórios, pois não há acesso "world".
Os diretórios são criados dinamicamente durante o trabalho do RMAN, então não posso alterar as permissões com antecedência.
A tarefa é demorada e, bem no final, ela cria um novo diretório e, aparentemente, um processo filho tenta acessá-lo, e tenho certeza de que é devido às permissões do diretório.
Existe uma maneira de alterar o umask padrão para renderizar permissões de diretório para 777
o nobody
ID do usuário? Não consigo alterá-lo no ID do usuário do cliente.
A entrada para nobody em /etc/password mostra um diretório home inexistente e um shell /usr/sbin/nologin:
Prompt> grep nobody /etc/passwd
nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin
Versões:
Prompt> uname -a
Linux project01 4.19.0-26-amd64 #1 SMP Debian 4.19.304-1 (2024-01-09) x86_64 GNU/Linux
Prompt> cat /etc/debian_version
10.13
O cliente está executando o Oracle Linux Server versão 7.9.
Atualização: Minha entrada para o servidor em questão em /etc/exports se parece com isto:
Prompt> grep /shares/dra /etc/exports
/shares/dra exampledev01(rw,sync,no_subtree_check,all_squash,anonuid=65534,anongid=65534)
Como você precisa
all_squash
ternobody:nogroup
efeito sobre NFS e não pode alterar a umask no cliente, acho que a única opção restante seria definir uma ACL padrão no diretório no qual os diretórios dinâmicos são criados.O comando necessário seria assim:
Você precisaria executar este comando no servidor NFS. Se bem-sucedido, quaisquer novos arquivos regulares no diretório obterão permissões
-rw-rw-rw-+
e diretóriosdrwxrwxrwx+
. O+
sinal denota a ACL em vigor; ele estará visível no servidor NFS, mas pode não ser visto nos clientes NFS.