Para arquivos criados a partir da conta testuser no diretório / var / www, preciso que eles tenham g + rwx como permissões e www-data como grupo.
Como posso conseguir isso?
Estou criando os arquivos via SSH.
linux
file-permissions
Mr.Gando
fonte
fonte
stor
/appe
? Via HTTPPUT
? Através de uma conta shell? Esses detalhes são importantes, pois afetam bastante as respostas possíveis e precisam estar na sua pergunta.Respostas:
Para definir o grupo, dê
/var/www
o bit setgid :Para também ajustar subdiretórios:
find /var/www -type d -exec chmod g+s {} +
Isso fará com que todos os arquivos recém-criados herdem o grupo do diretório pai, em vez do usuário.
Para definir as permissões de grupo padrão, você precisará usar ACLs . Defina uma ACL "padrão":
Para também ajustar subdiretórios:
find /var/www -type d -exec setfacl -m d:g::rwx {} +
Nota: O sistema de arquivos deve ter o suporte à ACL ativado. Às vezes, é ativado por padrão; em ext3 ou ext4, você pode obter "Operação não suportada"; nesse caso, ela deve ser ativada manualmente:
Para um sistema de arquivos montado atualmente:
mount -o remount,acl /
Permanentemente - um dos métodos abaixo:
no nível fstab: edite
/etc/fstab
para teracl
no campo de opçõesno nível do sistema de arquivos:
tune2fs -o acl /dev/diskname
fonte
chmod
também receberia todos os arquivos.install
, conseguem de alguma forma ignorar as ACLs padrão do diretório./var/www/html/projects
pasta e quando www-data cria um arquivo, ele temrw-rw-r
permissões, mas quando faço algo no console, ele cria um arquivorw-r--r
. Como forçar novos arquivos criados a sempre terrw-rw-r
permissões?umask
. As permissões padrão por diretório são alteráveis usando-sesetfacl
como na postagem principal.Isso pode ter deixado algumas pessoas presas à resposta 'grawity' no setgid, se o grupo da pasta for diferente do seu, talvez seja necessário executar o chmod como root, mas você não receberá nenhum erro indicando que precisa fazer isso.
fonte
O grupo dos arquivos que estão sendo criados por um usuário é o grupo desse usuário (em / etc / group). As permissões são controladas pelo parâmetro UMASK, consulte este
fonte