Criando subdomínios - permissões

1

No meu trabalho, às vezes escrevo pequenos aplicativos para informações visuais em uma plataforma baseada na web (LAOP-jQuery). Alguns dos meus colegas também começaram a fazer isso para ter um melhor acesso à informação. Eles, no entanto, não estão tão familiarizados com o Linux como eu (e eu sou apenas um novato) e então toda vez que alguém quer criar um novo aplicativo, eles me contatam e eu faço um subdomínio falso (um novo pasta no servidor) com um nome solicitado e deixe-os assumir. O que eu faço é apenas copiar uma pasta que contenha um template html-php padrão com algumas funções e conexões de banco de dados que usamos.

Atualmente, estou tentando limitar meu trabalho criando um pequeno aplicativo que faz isso funcionar para mim. É bem simples e idiota mesmo. Eles vão para um link que eu forneci, digite uma senha e um nome de domínio de sua escolha e clique em "criar".  Nos bastidores, é chamada uma função php-system () que copia um diretório chamado "dummy" para / var / www / oursite / apps /.

Exemplo: Jane vai para a página "criar novo domínio". Ela digita a senha correta e escolhe um nome para seu domínio "foobar".

Uma função do sistema é chamada:

system('cp -r ../../dummy ../../apps/'.filter_input(INPUT_POST,'domain_name'));

// which translates to: system('cp -r ../../dummy ../../apps/foobar');

e agora eu tenho um diretório / apps / foobar

Aqui vem o problema. As permissões em "foobar" são as seguintes:

drwxr-xr-x 6 www-data www-data 4096 Mar 1 11:48 foobar

Ou seja, de propriedade do usuário e do grupo www-data: www-data

Quando eu me conecto a essa pasta (através do NetBeans) usando um usuário desenvolvedor "dev" que faz parte do grupo www-data , posso fazer o download dos arquivos, mas não posso editá-los como O grupo www-data não tem permissões de gravação para o diretório "foobar" recém-criado.

Como posso fazer isso funcionar do jeito que eu quero?

Obrigado antecipadamente Benedikt

    
por Benedikt Omarsson 01.03.2016 / 12:08

2 respostas

0

Eu recebi ajuda de um amigo meu. Ele basicamente me falou sobre a função unmask em php, e embora provavelmente não seja o método mais seguro nem a "melhor prática" é o que eu fiz:

$old = umask(0); // clear permissions for new files/dirs

system('cp -r ../../dummy ../../apps/'.filter_input(INPUT_POST,'domain_name')); // copy the dummy

chmod('../../apps/'.filter_input(INPUT_POST,'domain_name'),0775); // grant the group www-data permissions to edit the file/dir

umask($old); // restore original mask

Se alguém tiver uma maneira melhor, ainda gostaria de ouvir.

Obrigado a todos

Benedikt

    
por 01.03.2016 / 13:52
0

O truque inteligente que você pode fazer é executar isto: sudo adduser yourusername www-data .

O que faz: esses comandos adicionam você ao grupo de www-data, que abre o acesso para você sujar as mãos no arquivo.

    
por 01.03.2016 / 13:53