Tait Lewis explicou muito bem o problema com a permissão de execução.
No entanto, fazer isso para uma conta de usuário real é um risco de segurança e pode impedir a execução legítima de outros membros do grupo staff
.
A maneira como resolvi o mesmo problema foi a seguinte:
- Crie uma nova conta de usuário padrão (para este exemplo, chamamos de
db
) com o FileVault habilitado para ela. Use uma senha pelo menos tão strong quanto a do seu usuário principal. - Enquanto estiver conectado como seu usuário principal, execute os seguintes comandos:
- monte a imagem FileVault do usuário db, sem torná-la navegável no Finder:
sudo hdiutil attach /Users/db/db.sparsebundle -owners on -mountpoint /Users/db -nobrowse
- Corrija as permissões para que o usuário
_mysql
possa executar o diretório inicial do usuário do db:
sudo chown :_mysql /Users/db; sudo chmod g=x /Users/db
- Desligamento do MySQL:
sudo /opt/local/etc/LaunchDaemons/org.macports.mysql5/mysql5.wrapper stop
- Copie os arquivos MySQL para o FileVault:
sudo cp -a /opt/local/var/db/mysql5 /Users/db/
(NÃO adicione /
após mysql5
)
-
Agora, você exclui, exclui com segurança ou renomeia o diretório
/opt/local/var/db/mysql5
. -
Em seguida, crie o link suave:
sudo ln -s /Users/db/mysql5 /opt/local/var/db/mysql5
- Finalmente, inicie o MySQL novamente:
sudo /opt/local/etc/LaunchDaemons/org.macports.mysql5/mysql5.wrapper start
Note que toda vez que você reiniciar o Mac, você precisará montar a imagem (com o comando sudo hdiutil ...
) e iniciar o MySQL manualmente, pois ele falhará ao ser montado quando o launchd tentar iniciá-lo automaticamente antes que a imagem seja montada.