Por que o mysqld setou user / group de / var / log / mysql com os direitos de ‘s’?

3

No Ubuntu, sudo apt-get install mysql-server , o pacote irá:

  • crie uma conta mysql
  • crie o diretório de armazenamento /var/lib/mysql com permissão drwx------ 4 mysql mysql
  • crie o diretório de log /var/log/mysql com permissão drwxr-s--- 2 mysql adm

Por quê? Na minha opinião, a permissão de /var/log/mysql deve ser drwxr-x--- 4 mysql mysql . Você poderia me dar algumas dicas / convenções sobre o grupo s e 'adm'?

    
por ShenLei 05.02.2015 / 03:39

1 resposta

2

g + rx

Como o mysqld é executado sob a conta mysql , que já é o proprietário de /var/lib/mysql , somente os bits de permissão "usuário" se aplicam; não há necessidade de conceder acesso ao grupo. (Pode até correr o risco de criar problemas de segurança, se um administrador clueless adicionar usuários regulares ao grupo mysql ; se o diretório for g + rx, isso permitirá que tais usuários ignorem as verificações de privilégios do MySQL.)

g + s

Nos diretórios, o "setgid" bit g + s significa novos itens criados dentro da vontade herda seu grupo do diretório, não do processo. Isso significa que todos os arquivos de log serão de propriedade de: adm, independente de em que grupos o próprio mysqld está.

adm

Conceder acesso de leitura aos arquivos de log do sistema é praticamente o único propósito de "adm". (No passado, aqueles costumavam ser mantidos em /usr/adm , que, claro, era o diretório inicial da conta de usuário adm .)

Não tenho muita certeza sobre as origens de seu nome, embora meu palpite é que a distinção era entre 'operadores' que faziam coisas de gerenciamento de sistemas e 'administradores' que cuidavam de contabilidade & pagamentos com base nos registros de uso do sistema.

    
por 05.02.2015 / 08:59