AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / dba / Perguntas / 45678
Accepted
Jeremy Wadhams
Jeremy Wadhams
Asked: 2013-07-04 12:22:36 +0800 CST2013-07-04 12:22:36 +0800 CST 2013-07-04 12:22:36 +0800 CST

MySQL no Unix, as contas de administrador devem ingressar no grupo "mysql" do sistema operacional?

  • 772

Quando instalo o MySQL via Yum, ele cria automaticamente o mysqlusuário e o grupo do sistema operacional. Em seguida mysqld, executa como mysql(em vez de root) e todos os arquivos no diretório de dados pertencem a mysql:mysql.

Esta é obviamente uma prática de segurança correta, eu entendo porque isso acontece e não quero subvertê-la.

Quando estou administrando um sistema MySQL, acabei adquirindo o hábito de usar sudoquando preciso interagir com um arquivo protegido (por exemplo, lendo um log binário com mysqlbinlog, criando um tarball de backup, etc).

Também funcionaria adicionar meu usuário do sistema operacional ao grupo mysql? Existem grandes desvantagens disso que eu não estou considerando?

mysql security
  • 1 1 respostas
  • 264 Views

1 respostas

  • Voted
  1. Best Answer
    user25707
    2013-07-08T01:01:26+08:002013-07-08T01:01:26+08:00

    Ao exportar informações do MySQL para trabalhos usando mysqlbinlog, usar o sudo também é conveniente para mim, porque geralmente é para consertar ou solucionar problemas de algo quebrado e o tempo é uma preocupação.

    Se você pretende reimportar dados extraídos do MySQL, precisará contornar o problema de problemas de permissão em algum momento . Ao criar arquivos dump usando a conta root, os arquivos criados assumem as permissões da conta root que o MySQL pode ter dificuldade em acessar esses arquivos. (Também evito permissões fixas como uma solução alternativa, pois fica confuso quando você não lida com isso regularmente)

    O que posso sugerir:

    • adicione sua conta do sistema operacional ao grupo mysql, pois torna conveniente visualizar os arquivos na pasta de dados do MySQL se suas funções incluírem a administração/solução de problemas do MySQL nesse servidor.
    • limite as contas do sistema operacional que têm acesso aos arquivos de dados/log do MySQL do sistema operacional para reduzir o nível de exposição aos seus dados .
    • os desenvolvedores não precisam acessar o sistema operacional (supondo que os servidores de banco de dados sejam mantidos separados na intranet e não hospedem o servidor da web)
    • não crie arquivos/scripts que exijam que sua conta persista se você mudar de função. (ou seja, se estou gerenciando um de seus servidores de banco de dados, não devo encontrar scripts automatizados em sua conta.)

    Para tarefas administrativas regulares, em vez de usar minha conta local, costumo criar contas de 'serviço' do sistema operacional separadas para interagir com o MySQL que estão no grupo mysql.

    Se você observar os processos em execução ( ps -ef | grep mysql ), verá que o MySQL é inicializado pela conta root ( mysqld_safe ) que (como você mencionou) executa o daemon MySQL ( mysqld ) sob a conta mysql.

    Usando essa mesma abordagem, costumo criar scripts que posso executar com privilégios de root que chamam e executam outro arquivo em um shell do Linux como um usuário específico com menos permissões. Isso também torna mais fácil adicionar o mesmo script ao crontab raiz.

    Começo criando uma conta de serviço chamada 'mysqlbackup' e no diretório inicial adiciono um arquivo .my.cnf

    /------ conteúdo do arquivo

    [cliente]

    usuário = osbackup

    senha = 12345

    ------/

    Crie o script administrativo para ser executado pelo 'root' que executa outro arquivo de um shell

    • arquivo: /var/lib/scripts/run-db-backup.sh (chmod 700 & chown root:root)
    • arquivo contém: su -l mysqlbackup -c /var/lib/scripts/db-backup.sh

    Crie seu script 'real' para ser executado como o usuário do sistema operacional ' mysqlbackup '

    • arquivo: /var/lib/scripts/db-backup.sql (chmod 700 & chown mysqlbackup:mysql)
    • 1

relate perguntas

  • Existem ferramentas de benchmarking do MySQL? [fechado]

  • Onde posso encontrar o log lento do mysql?

  • Como posso otimizar um mysqldump de um banco de dados grande?

  • Quando é o momento certo para usar o MariaDB em vez do MySQL e por quê?

  • Como um grupo pode rastrear alterações no esquema do banco de dados?

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Como fazer a saída do sqlplus aparecer em uma linha?

    • 3 respostas
  • Marko Smith

    Selecione qual tem data máxima ou data mais recente

    • 3 respostas
  • Marko Smith

    Como faço para listar todos os esquemas no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Conceder acesso a todas as tabelas para um usuário

    • 5 respostas
  • Marko Smith

    Listar todas as colunas de uma tabela especificada

    • 5 respostas
  • Marko Smith

    Como usar o sqlplus para se conectar a um banco de dados Oracle localizado em outro host sem modificar meu próprio tnsnames.ora

    • 4 respostas
  • Marko Smith

    Como você mysqldump tabela (s) específica (s)?

    • 4 respostas
  • Marko Smith

    Listar os privilégios do banco de dados usando o psql

    • 10 respostas
  • Marko Smith

    Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Como faço para listar todos os bancos de dados e tabelas usando o psql?

    • 7 respostas
  • Martin Hope
    Stéphane Como faço para listar todos os esquemas no PostgreSQL? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh Por que o log de transações continua crescendo ou fica sem espaço? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland Listar todas as colunas de uma tabela especificada 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney O MySQL pode realizar consultas razoavelmente em bilhões de linhas? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx Como posso monitorar o andamento de uma importação de um arquivo .sql grande? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison Como você mysqldump tabela (s) específica (s)? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    pedrosanta Listar os privilégios do banco de dados usando o psql 2011-08-04 11:01:21 +0800 CST
  • Martin Hope
    Jonas Como posso cronometrar consultas SQL usando psql? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas Como faço para listar todos os bancos de dados e tabelas usando o psql? 2011-02-18 00:45:49 +0800 CST

Hot tag

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve