Eu tenho um processo de servidor http daemon (yaws) que gostaria que o servidor escrevesse novos arquivos com uma umask de 002, para que outro usuário do mesmo grupo possa modificar, mover ou excluir arquivos criados pelo processo daemon. Isso está no Ubuntu 10.04.
Diferentemente do Apache, o yaws não possui uma opção de configuração para umask; portanto, quais métodos existem para definir o umask de qualquer processo daemon?
Encontrei esta resposta sobre como alterar o script init a ser adicionado umask 002
. Isso funcionou, mas não tenho certeza se a edição do script init é a melhor maneira de tornar isso fácil de documentar e configurar em várias máquinas.
Eu também encontrei referência ao módulo pam_umask aqui . Parece que isso permite que as configurações por usuário do umask sejam configuradas no campo GECOS de / etc / passwd.
Existem outras maneiras de definir os processos umask para daemon? E qual seria a maneira recomendada?
sudo
para ler/etc/passwd
. Ou,cat
nesse caso (grep
aceitará um nome de arquivo como argumento ou apenas usarágetent
como Janne apontou).sudo -u daemon bash -c umask
. Testei não-interativo alterando as configurações e reiniciando o daemon e examinando as permissões nos arquivos que ele cria.dash
, masumask
deveria trabalhar nisso.No Ubuntu 10.04, as configurações padrão globais de umask podem ser controladas com o módulo pam_umask.
Alguns detalhes foram encontrados neste blog relacionados ao Debian em geral: http://muzso.hu/2008/01/22/default-permissions-with-libpam-umask
O módulo pam_umask é instalado por padrão no Ubuntu 10.04, mas precisa ser configurado.
Edite /etc/pam.d/common-session, adicionando a linha:
As configurações por usuário podem ser alteradas executando o comando:
para adicionar uma configuração umask ao campo GECOS em / etc / passwd.
Isso funciona apenas para shells não interativos e sem logon, como quando um script de inicialização do daemon é executado na inicialização.
Para shells de login, as configurações do umask precisam ser removidas de outros arquivos de configuração do shell, como / etc / profile, /etc/login.defs ou diretório inicial do usuário .profile, .bashrc, etc. Caso contrário, as configurações do pam_umask serão substituídas. Veja a página de manual pam_umask para a ordem de configuração.
fonte
Se o serviço for iniciado através da ferramenta "start-stop-daemon", o umask poderá ser especificado no nível da linha de comandos com o parâmetro "--umask", por exemplo:
Ajustar o script de início para ler esses detalhes de um arquivo de configuração pode ser mais transparente do que adicionar configurações baseadas no usuário - isso obviamente depende do procedimento de inicialização usado para o daemon.
Mais informações podem ser recuperadas no man-Page: man start-stop-daemon
fonte