Como posso configurar um diretório do sistema de arquivos para * sempre * ser gravável em grupo?

2

Eu tenho um servidor de arquivos Linux com alguns diretórios compartilhados. Esses diretórios às vezes são acessados por SFTP e, às vezes, por usuários com shells. Independentemente de como esses diretórios são acessados, gostaria de garantir que:

  1. todos os arquivos no diretório compartilhado são sempre legíveis e graváveis por todos os usuários no grupo "fileserver" (o equivalente moral de g+rw )
  2. todos os diretórios no diretório compartilhado são sempre percorridos por todos os usuários no grupo "fileserver" (o equivalente moral de g+x )
  3. todos os arquivos no diretório compartilhado são nunca executáveis por qualquer pessoa (o equivalente moral de g-x )

Eu tenho uma vaga lembrança de que eu fiz isso antes com setfacl , mas não tenho certeza de como.

    
por Glyph 04.02.2016 / 00:17

1 resposta

1

O mais próximo que eu vim aqui é:

$ chown fileserver:fileserver . -R
$ find . -type f -print -exec chmod a-x '{}' ';'
$ find . -type d -print -exec chmod u+x '{}' ';'
$ find . -type d -print -exec chmod g+xs '{}' ';'
$ cat facls
user::rwx
group::rwx
other::r-x
default:user::rwx
default:user:fileserver:rwx
default:group::rwx
default:group:fileserver:rwx
default:mask::rwx
default:other::r-x
$ setfacl -M facls -R .

e parece fazer a coisa certa com respeito a mensagens extras excessivamente rígidas em processos gravados nesse diretório, mas ainda dá aos usuários a capacidade de chmod de arquivos que eles criaram e, portanto, restringem suas permissões. / p>

O principal problema com essa solução é que os arquivos ainda são de propriedade de quem os criou, e o proprietário do arquivo tem permissão irrevogável para modificar as permissões. Em sistemas derivados do BSD, parece que você pode consertar isso com um diretório setuid (que faz com que todos os arquivos criados naquele diretório pertençam ao proprietário do diretório); no entanto, o Linux só tem esse comportamento para setgid .

    
por 04.02.2016 / 00:41