Estou tentando usar o unionfs para criar várias instâncias (mais de 100) de algumas ferramentas de desenvolvimento para nosso servidor de desenvolvimento. Aqui está o script que estou usando:
PROJECT=$1
DEPLOYMENT=$2
TOOL=$3
DIR_TOOL="/var/www/tools/${TOOL}"
DIR_CONFIG="/var/www/tools-instances/${PROJECT}/${DEPLOYMENT}/${TOOL}/config"
DIR_TMP="/var/www/tools-instances/${PROJECT}/${DEPLOYMENT}/${TOOL}/tmp"
DIR_MERGED="/var/www/tools-instances/${PROJECT}/${DEPLOYMENT}/${TOOL}/merged"
mkdir -p "${DIR_CONFIG}"
mkdir -p "${DIR_TMP}"
mkdir -p "${DIR_MERGED}"
unionfs -o cow "${DIR_TMP}"=RW:"${DIR_CONFIG}"=RO:"${DIR_TOOL}"=RO "${DIR_MERGED}"
E depois use assim:
create-tool-overlay.sh "project-1" "staging" "phpmyadmin"
Tudo funciona bem, mas apenas para o nosso manager
usuário. Se eu tentar acessar a pasta como qualquer outro usuário, incluindo www-data
(quem precisa desse acesso) e root
(quem deve ter acesso a tudo), recebo permission denied
. E se eu tentar executar ls
nesta pasta, recebo esta saída estranha:
root@app-1:/var/www/tools-instances/project-1/staging/phpmyadmin# ls -al
ls: cannot access 'merged': Permission denied
total 32
drwxrwxr-x+ 5 manager manager 4096 Dec 16 15:51 .
drwxrwxr-x+ 3 manager manager 4096 Dec 14 15:29 ..
drwxrwxr-x+ 2 manager manager 4096 Dec 14 15:29 config
d?????????? ? ? ? ? ? merged
drwxrwxr-x+ 2 manager manager 4096 Dec 16 15:51 tmp