Eu tenho o seguinte script para definir permissões para o diretório Joomla CMS:
#!/bin/bash
if [ ! -d "" ]; then
echo "Error: Folder does not exist or no folder given."
echo ""
exit 1
fi
# XAMPP uses daemon as default www-group for Apache.
WWWGROUP="daemon"
THEUSER='who | awk '{print }''
JOOMLADIR=""
chown -R $THEUSER:$WWWGROUP "$JOOMLADIR"
chmod g+s "$JOOMLADIR"
find "$JOOMLADIR" -type d -exec chmod 0755 {} \;
find "$JOOMLADIR" -type f -exec chmod 0644 {} \;
setfacl -b -k "$JOOMLADIR"
setfacl -Rm u:$THEUSER:rwX "$JOOMLADIR"
setfacl -Rm g:$WWWGROUP:rX "$JOOMLADIR"
setfacl -Rm d:u:$THEUSER:rwX "$JOOMLADIR"
setfacl -Rm d:g:$WWWGROUP:rX "$JOOMLADIR"
setfacl -m m::rwx "$JOOMLADIR"
# Some folders need to be writable by the web server.
setfacl -Rm g:$WWWGROUP:rwX "$JOOMLADIR/administrator/components"
setfacl -Rm g:$WWWGROUP:rwX "$JOOMLADIR/administrator/language"
setfacl -Rm g:$WWWGROUP:rwX "$JOOMLADIR/administrator/manifests"
setfacl -Rm g:$WWWGROUP:rwX "$JOOMLADIR/administrator/modules"
setfacl -Rm g:$WWWGROUP:rwX "$JOOMLADIR/administrator/templates"
setfacl -Rm g:$WWWGROUP:rwX "$JOOMLADIR/components"
setfacl -Rm g:$WWWGROUP:rwX "$JOOMLADIR/images"
setfacl -Rm g:$WWWGROUP:rwX "$JOOMLADIR/language"
setfacl -Rm g:$WWWGROUP:rwX "$JOOMLADIR/libraries"
setfacl -Rm g:$WWWGROUP:rwX "$JOOMLADIR/media"
setfacl -Rm g:$WWWGROUP:rwX "$JOOMLADIR/modules"
setfacl -Rm g:$WWWGROUP:rwX "$JOOMLADIR/plugins"
setfacl -Rm g:$WWWGROUP:rwX "$JOOMLADIR/templates"
setfacl -Rm g:$WWWGROUP:rwX "$JOOMLADIR/cache"
setfacl -Rm g:$WWWGROUP:rwX "$JOOMLADIR/administrator/cache"
setfacl -Rm g:$WWWGROUP:rwX "$JOOMLADIR/administrator/logs"
setfacl -Rm g:$WWWGROUP:rwX "$JOOMLADIR/tmp"
# Some extra security for configuration.php:
setfacl -m g:$WWWGROUP:r "$JOOMLADIR/configuration.php"
setfacl -m o:0000 "$JOOMLADIR/configuration.php"
Se eu usar esse script para definir permissões para a pasta da qual tenho uma listagem abaixo, por que a pasta every obtém permissão de gravação para o grupo daemon
? Pelo menos, ele é listado como tal, embora o comando getfacl
liste as permissões corretamente.
totaal 172
drwxrwxr-x+ 11 myuser daemon 4096 okt 4 07:52 administrator
drwxrwxr-x+ 2 myuser daemon 4096 okt 4 07:52 bin
drwxrwxr-x+ 2 myuser daemon 4096 okt 4 07:52 cache
drwxrwxr-x+ 2 myuser daemon 4096 okt 4 07:52 cli
drwxrwxr-x+ 19 myuser daemon 4096 okt 4 07:52 components
-rw-rw-r--+ 1 myuser daemon 3005 okt 4 07:52 htaccess.txt
drwxrwxr-x+ 5 myuser daemon 4096 okt 4 07:52 images
drwxrwxr-x+ 2 myuser daemon 4096 okt 4 07:52 includes
-rw-rw-r--+ 1 myuser daemon 1420 okt 4 07:52 index.php
drwxrwxr-x+ 14 myuser daemon 4096 okt 4 07:52 installation
drwxrwxr-x+ 4 myuser daemon 4096 okt 4 07:52 language
drwxrwxr-x+ 5 myuser daemon 4096 okt 4 07:52 layouts
drwxrwxr-x+ 12 myuser daemon 4096 okt 4 07:52 libraries
-rw-rw-r--+ 1 myuser daemon 18092 okt 4 07:52 LICENSE.txt
drwxrwxr-x+ 27 myuser daemon 4096 okt 4 07:52 media
drwxrwxr-x+ 27 myuser daemon 4096 okt 4 07:52 modules
drwxrwxr-x+ 17 myuser daemon 4096 okt 4 07:52 plugins
-rw-rw-r--+ 1 myuser daemon 4872 okt 4 07:52 README.txt
-rw-rw-r--+ 1 myuser daemon 836 okt 4 07:52 robots.txt.dist
drwxrwxr-x+ 5 myuser daemon 4096 okt 4 07:52 templates
drwxrwxr-x+ 2 myuser daemon 4096 okt 4 07:52 tmp
-rw-rw-r--+ 1 myuser daemon 1690 okt 4 07:52 web.config.txt
O que estou tentando alcançar é isso:
Estou tentando configurar um ambiente para desenvolver extensões do Joomla.
Estou usando o Eclipse IDE com dois projetos abertos no meu espaço de trabalho:
- O projeto que contém minha extensão.
- O projeto que contém o diretório de instalação do Joomla CMS.
Eu também estou usando a ferramenta de compilação Phing para copiar arquivos da extensão para o diretório de instalação do Joomla CMS para testar alterações de código.
Também estou usando o XAMPP, que agrupa o servidor web Apache (que é executado como usuário daemon
e sob o grupo daemon
) e serve arquivos de /opt/lampp/htdocs
.
Dentro de /opt/lampp/htdocs
reside o diretório de instalação do Joomla em /opt/lampp/htdocs/joomla
.
O problema é quando apagar e copiar os arquivos e diretórios da extensão para o diretório de instalação do Joomla eu recebo erros de permissão.
Por que recebo erros de permissão? Bem, isso é porque quando eu primeiro faço instalar o meu ZIP (extensão / componente) através do site Joomla (mais tarde eu quero ser capaz de ver instantaneamente alterações de código copiando diretamente do projeto de extensão para instalação do Joomla diretório) o servidor web (Apache) cria o componente como dono daemon
e group daemon
.
No entanto, desejo conceder permissões de leitura, gravação e execução para meu próprio usuário ( myuser
) em vez de daemon
, pois desejo excluir o conjunto antigo de arquivos e diretórios de administrator/components/com_mycomp
e components/com_mycomp
(apenas um exemplo).
Estou tentando seguir um artigo do Joomla aqui que tenta configurar um ambiente de desenvolvimento para extensões:
link
Basicamente eu apenas baixei o arquivo ZIP do Joomla, descompacte-o e copie-o para /opt/lampp/htdocs/joomla
.
Então eu corro:
sudo securepermissions.sh /opt/lampp/htdocs/joomla
Em seguida, ele não gera nenhum erro, exceto o arquivo de configuração Joomla não existente, ao qual ele tenta definir permissões (atualmente, tente reinstalar, por isso não há configuration.php
ainda).
Então, eu corro ls -l
dentro da pasta joomla
e obtenho minha listagem que obviamente mostra a máscara, como explicado pelo usuário @dessert (e que eu não sabia primeiro).
Mas ainda assim, quando uso find . -ls
na pasta joomla
, ele ainda mostra as permissões para o grupo daemon
ser rw-
para arquivos e rwx
para diretórios, mesmo que eles não tenham sido definidos maneira de usar o script, tanto quanto eu sei.