O data-dir
próprio possui permissões 700
limitando assim o acesso ao mysql
usuário.
Desejo que outras pessoas que adiciono ao mysql
grupo possam ler binlogs
e baixar os arquivos *.frm
, *.MYI
, *.MYD
em seus computadores locais.
Meu primeiro pensamento é correr chmod g+rx data-dir
.
Os diretórios do banco de dados e os arquivos table/binlog data-dir
têm permissões com 770
/ 660
. Portanto, tenho que fazer chmod g-w
isso para evitar adulteração acidental ou remoção de dados ativos.
Infelizmente, conforme novos binlogs
são criados e o comando create database
or é usado, a permissão é adicionada automaticamente. Como posso alterar esta funcionalidade?create table
g+w
Bem, descobri online que a variável de ambiente
UMASK
e deve ser definida, independentemente da saídaUMASK_DIR
do comando .umask
Deve-se adicionar
export UMASK=0640
eexport UMASK=0750
no topo de seu script de inicialização, imediatamente antes de chamarmysqld_safe
.O zero à esquerda é importante para mudar para o sistema de numeração octal.
A primeira coisa que tentei foi
0027
, mas isso produziu arquivos com permissõesu=rw,g=w,o=rwx
, então foi isso que me levou a inverter as permissões na variável de ambiente para0750
(e0640
) para produzir os resultados desejados.Espero que minha auto-resposta ajude um futuro visitante. :-)
Qual é o problema subjacente que você está tentando resolver?
UMASK
pode ser a abordagem errada.Os arquivos e diretórios devem estar totalmente acessíveis pelo
mysql
"usuário", então os diretórios precisam de no mínimo 0700 e os arquivos precisam de 0600.Se você quer que o "mundo" seja capaz de lê-los (mas não escrevê-los), 0755 e 0644. Mas por que você iria querer isso? E você provavelmente tem que ter
UMASK_DIR=0755
eUMASK=644
evitar que os bits inferiores sejam desligados pelo sistema operacional.MySQL tem controle de acesso dentro do MySQL. Isso é feito por meio do
GRANT
comando no MySQL. E os "usuários" do MySQL não são os mesmos que os "usuários" do sistema operacional. Em particular, a 'raiz' do sistema operacional e a 'raiz' do MySQL são independentes.