Estou concorrendo vsftpd
e tenho uma dúvida específica:
As opções file_open_mode
e local_umask
permitem-me configurar quais permissões um arquivo/pasta recém-criado deve ter.
O problema:
Quero 0660 para novos arquivos, mas 0770 para novas pastas (todos os arquivos e pastas devem ser legíveis e graváveis pelo proprietário e pelo grupo - as pastas precisam de um executable
pouco para que seja possível abri-las)
Como posso configurar isso?
(Pesquisei neste fórum, google, página vsftpd.man, tutoriais, manuais..)
Responder1
DR:
O padrão file_open_mode
de 0666
e local_umask
de 0007
lhe dará permissões de arquivo 0660
e de diretório de 0770
.
Permissões de arquivo
Como você já apontou, os arquivos são criados com as permissões definidas file_open_mode
(modificadas pelo local_umask
). Portanto, para obter os arquivos criados com 0660
você pode manter o padrão file_open_mode
e modificá-lo com um local_umask
de 0007
para obter 0660
o resultado.
Permissões de diretório
Os diretórios são criados com o modo 0777
modificado pelo local_umask
. A única documentação de suporte que encontrei sobre isso está no próprio código-fonte. Como não há código-fonte oficial legível pelo navegador disponível, só posso vincular a um espelho de código-fonte não oficial emhttps://github.com/dagwieers/vsftpd/blob/3.0.2/postlogin.c#L1179onde o "umask ajustável" no comentário se refere à local_umask
configuração.
/* NOTE! Actual permissions will be governed by the tunable umask */
retval = str_mkdir(&p_sess->ftp_arg_str, 0777);