Se verificarmos a propriedade do site1, encontraremos algo assim,
ls -ld /var/www/site1/
drwxr-xr-x 2 root root 4096 Oct 24 21:06 site1/
Isso significa que o diretório pertence à raiz do usuário, raiz do grupo. Enquanto a raiz do usuário tem permissão de gravação (além de permissões de leitura e execução) no diretório, a raiz do grupo possui apenas permissões de leitura e execução.
Queremos alterar a propriedade do grupo para outro (novo) grupo e adicionar usuário1 a esse grupo específico. Também daremos permissão de gravação para esse grupo específico.
Crie um novo grupo,
sudo addgroup site1
Adicione user1 ao grupo recém-criado,
sudo adduser user1 site1
Verifique se o usuário1 está realmente nesse grupo,
groups user1
A saída deve ser uma lista algo como,
user1 : <other-groups> site1
Agora podemos alterar a propriedade do grupo do diretório pretendido.
sudo chown -vR :site1 /var/www/site1/
changed ownership of `/var/www/site1/' from root:root to :site1
Conceda permissão de gravação para este novo proprietário do grupo,
sudo chmod -vR g+w /var/www/site1/
mode of `/var/www/site1/' changed from 0755 (rwxr-xr-x) to 0775 (rwxrwxr-x)
Verifique se todas as mudanças estão realmente lá,
ls -ld /var/www/site1/
drwxrwxr-x 2 root site1 4096 Oct 24 21:06 /var/www/site1/
Portanto, o diretório agora pertence ao usuário root, grupo site1. O site raiz e o grupo1 do usuário têm permissão de gravação (além das permissões de leitura e execução) no diretório. Qualquer usuário pertencente ao site do grupo1 desfrutará de todos os privilégios concedidos a esse grupo.
Agora faça login como usuário1, vá para o diretório site1 e tente criar um arquivo nesse diretório,
echo "My User1 Site" > index.html
bash: index.html: Permission denied
Isso falhou, pois provavelmente o grupo principal de usuário1 não é o site1. Então, mude para esse grupo.
newgrp - site1
Tente recriar o arquivo (lembre-se de que você foi movido para o diretório inicial do usuário1 após alterar o grupo), isso deve funcionar agora. Como os arquivos criados terão permissão de leitura mundial, o apache (ou seu servidor da Web) não deverá enfrentar nenhum problema ao acessá-los.
EDITAR
Além disso, conforme indicado por dan08 no comentário, você precisa adicionar www-data ao grupo site1.
sudo adduser www-data site1
Em muitas distribuições (não todas), www-data é o usuário sob o qual o servidor da web Apache é executado. Isso também significa que tudo o que é feito pelo Apache (especialmente incluindo scripts PHP) será feito com as permissões do usuário www-data (e também agrupe www-data) por padrão. O WordPress usa o usuário www-data para gravar arquivos.
Se você quiser ver como o servidor web apache está em execução, emita o comando,
ps aux | grep apache2 | less
Permission denied
mensagem não é devida ao "grupo principal", mas sim ao usuário ainda não estar nesse grupo (no que diz respeito ao sistema operacional). Se você efetuar logoff e logon novamente, funcionará conforme o esperado (sem execuçãonewgrp - site1
).www-data
permissões de grupo de escrita se você acabar tendo que adicionarwww-data
asite1
de qualquer maneira?www-data' write permissions? If that is the question,
www-data 'não é um grupo, é um usuário. Informe-me se eu entendi mal sua pergunta.Crie dois grupos:
site1grp
esite2grp
Adicione
www-data
aos dois grupos.Adicione usuário1 e usuário2 aos grupos apropriados
Altere a permissão das pastas do site para que o proprietário do usuário seja www-data e o proprietário do grupo seja o grupo apropriado
Agora
www-data
tem permissões de usuário e grupo nos dois sites e cada usuário tem permissões de grupo para o respectivo site.fonte
Para aqueles que têm a pasta raiz do wordpress na pasta inicial:
Ubuntu / apache
Adicione seu usuário ao grupo www-data:
CRÉDITO Concedendo permissões de gravação ao grupo de dados www
Você deseja chamar
usermod
seu usuário. Então isso seria:Supondo que o
www-data
grupo existaVerifique se seu usuário está em
www-data
grupo:Você deve obter algo como:
yourUserGroupName geralmente é semelhante ao seu nome de usuário
Alterar recursivamente a propriedade do grupo da pasta, mantendo a propriedade do usuário
Mude o diretório para yourWebSiteFolder
Altere recursivamente as premissas de grupo das pastas e subpastas para ativar as permissões de gravação:
modo de
/home/yourUserName/yourWebSiteFolder/'
alterado de0755 (rwxr-xr-x)
para0775 (rwxrwxr-x)
Altere recursivamente as premissas de grupo dos arquivos e subarquivos para ativar as permissões de gravação:
O resultado deve ser algo como:
Equivalente a:
As permissões serão como 664 ou 775.
fonte
Você precisa criar um novo grupo para o chamado "novo usuário" e adicionar os dados de www e o "novo usuário" a esse grupo:
Em seguida, você pode alterar o proprietário
new_user
e o grupo paranew_group
:Em seguida, você precisará conceder acesso em nível de grupo ao site1. www-data ainda poderá acessar o site, porque pertence ao new_group, enquanto new_user não poderá acessar site2, porque ele não pertencerá ao grupo www-data, proprietário do site2.
fonte
chmod
)? Sua resposta não menciona o modo em nenhum lugar que possa fazer a diferença de estar seguro (ou quebrar coisas).chmod
) revogando todas as permissões para OUTROS.Assumindo que todos os arquivos já pertencem ao
www-data
usuário (você pode verificá-lo com ols -slah
comando) quem pertence aowww-data
grupo (próxima coluna após o nome de usuário na lista de arquivos), basta adicionar seu usuário ao mesmowww-data
grupo para permitir a edição desses arquivospara usuário existente ou
para um recém-criado
fonte