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.
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.
Respostas:
Para definir o grupo, dê /var/www
o bit setgid :
chgrp www-data /var/www
chmod g+s /var/www
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":
setfacl -m "default:group::rwx" /var/www
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 ter acl
no campo de opções
no nível do sistema de arquivos: tune2fs -o acl /dev/diskname
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 tem rw-rw-r
permissões, mas quando faço algo no console, ele cria um arquivo rw-r--r
. Como forçar novos arquivos criados a sempre ter rw-rw-r
permissões?
umask
. As permissões padrão por diretório são alteráveis usando-se setfacl
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.
$ ls -ld dir
drwxrwxr-x 2 luke testgroup 4096 Mar 9 10:44 dir
$ chmod g+s dir #no errors
$ ls -ld dir
drwxrwxr-x 2 luke testgroup 4096 Mar 9 10:44 dir #but nothing changed
$ touch dir/nosudo && ls -l dir/
-rw-rw-r-- 1 luke luke 0 Mar 9 10:51 nosudo #and the group is still wrong
$ sudo chmod g+s dir
$ ls -ld dir
drwxrwsr-x 2 luke testgroup 4096 Mar 9 10:44 dir #the setgid bit is now on
$ touch dir/withsudo && ls -l dir/
-rw-rw-r-- 1 luke luke 0 Mar 9 10:51 nosudo
-rw-rw-r-- 1 luke testgroup 0 Mar 9 10:51 withsudo #and group is set
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
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.