Tarefa Cron com script shell para reparar o diretório SFTP e a propriedade do arquivo

1

Nosso compartilhamento de SFTP está definido em: / home / COMUNIDADE

Cada grupo de trabalho tem seu próprio diretório, por exemplo: / home / COMUNIDADE / Halloween

Este diretório tem vários diretórios sob ele. Existe um grupo que contém todos os usuários: COMMUNITY. Todos os diretórios possuem um sticky bit definido como owner do grupo COMMUNITY, isso funciona bem e todos os diretórios e arquivos criados nesta estrutura possuem automaticamente este grupo.

Direitos de diretórios individuais para usuários do SFTP são controlados pelo grupo de diretórios. Em caso de / Halloween é o grupo HALLOWEEN. O login de usuários com o SFTP é iniciado em / home / COMMUNITY. Isso funciona bem quando apenas um usuário por diretório estava trabalhando em um projeto da comunidade. No entanto, o nosso grupo de serviço comunitário está crescendo e tem mais usuários por grupo HALLOWEEN, por exemplo, e aqui as coisas dão errado. Um diretório de arquivo criado por um usuário obtém automaticamente sua propriedade como padrão. Mas para o nosso sistema funcionar bem, a propriedade dos diretórios e arquivos subjacentes deve ser raiz.

Talvez defeituoso, mas nosso pensamento atual é corrigir isso com um script de shell que primeiro testa se um diretório / arquivo tem raiz como proprietário e se não, ele será alterado para root. Precisamos fazer isso recursivamente no diretório COMMUNITY. Queremos manter isso muito rápido e não forçar a mudança de arquivos que já possuem root como dono. Pessoas que compartilham documentos podem criar problemas, mas quando executamos o script com frequência, esperamos que ele corrija nossos problemas atuais de que os usuários não podem salvar documentos criados por outros usuários.

Artigos: "Script Bash para Reparar Diretório e Propriedade de Arquivo", "Cadeia de SFTP e Manter a propriedade do arquivo igual a / Proprietário do arquivo por pasta" e "Dicas de Bit Sticky" estão perto do que queremos, mas não 100% mesmo e não podemos descobrir como fazê-lo funcionar.

Sua ajuda é muito apreciada por todos os nossos voluntários que usam este sistema e agora estão ficando frustrados por não funcionar mais direito.

    
por GJZ 15.11.2012 / 21:37

1 resposta

1

Isso realmente soa como você precisa olhar para o umask padrão, ao invés de se preocupar com chown () 'ing arquivos. O usuário root pode ler qualquer coisa, period (a menos que você coloque o SELinux na mistura, mas isso é outra dissertação). A maioria dos linuxes modernos tem umask padrão de 022, o que significa que você obtém 755 permissões em novos arquivos. Você quer 002, para obter 775 permissões, o que manterá a propriedade do grupo (através do bit sticky do diretório que você já definiu) e as permissões de gravação do grupo. O proprietário do usuário mudará regularmente, mas isso não deve ser uma preocupação.

    
por 15.11.2012 / 21:41