Permissões do Usuário cloudintec e Configurações Realizadas

Esta documentação detalha todas as permissões concedidas ao usuário cloudintec e como elas foram configuradas.

1. Grupos do Usuário

O usuário cloudintec pertence aos seguintes grupos:

uid=1002(cloudintec) gid=1003(cloudintec) groups=1003(cloudintec),27(sudo),33(www-data),1001(google-sudoers)

2. Privilégios Sudo

O usuário cloudintec possui amplas permissões sudo através de múltiplas configurações:

Arquivo: /etc/sudoers.d/cloudintec

cloudintec ALL=(ALL) NOPASSWD:ALL

Este arquivo concede permissão total para executar qualquer comando como sudo sem solicitar senha.

Arquivo: /etc/sudoers.d/google_sudoers

%google-sudoers ALL=(ALL:ALL) NOPASSWD:ALL

Como membro do grupo google-sudoers, o usuário também tem permissões sudo completas.

Arquivo: /etc/sudoers.d/cloudintec-nginx

cloudintec ALL=(ALL) NOPASSWD: /usr/sbin/nginx, /usr/bin/systemctl restart nginx, /usr/bin/systemctl reload nginx, /usr/bin/systemctl status nginx, /usr/bin/systemctl start nginx, /usr/bin/systemctl stop nginx

Permissões específicas para gerenciar o servidor nginx sem senha.

Arquivo: /etc/sudoers.d/cloudintec-apt

cloudintec ALL=(ALL) NOPASSWD: /usr/bin/apt update, /usr/bin/apt upgrade, /usr/bin/apt install, /usr/bin/apt remove, /usr/bin/apt autoremove, /usr/bin/apt-get update, /usr/bin/apt-get upgrade, /usr/bin/apt-get install, /usr/bin/apt-get remove, /usr/bin/apt-get autoremove

Permissões específicas para gerenciar pacotes com apt sem senha.

3. Permissões de Diretórios

Estrutura do /srv

drwxr-xr-x  5 root       root     4096 May 21 11:34 /srv
drwxrwsr-x  5 cloudintec www-data 4096 May 21 11:51 /srv/admin
drwxrwsr-x  5 cloudintec www-data 4096 May 21 11:51 /srv/shared
drwxrwsr-x  5 cloudintec www-data 4096 May 21 11:51 /srv/www

Observações:

Diretórios do Nginx

drwxrwxr-x 2 root www-data 4096 May 20 16:57 /etc/nginx/sites-available
drwxrwxr-x 2 root www-data 4096 May 20 16:57 /etc/nginx/sites-enabled

4. Comandos Executados para Configuração

  1. Adicionando ao grupo www-data:
    sudo usermod -a -G www-data cloudintec
  2. Criando estrutura de diretórios:
    sudo mkdir -p /srv/www
    sudo mkdir -p /srv/{admin,shared}
  3. Definindo proprietário e grupo:
    sudo chown -R cloudintec:www-data /srv/www
    sudo chown -R cloudintec:www-data /srv/{admin,shared}
  4. Configurando permissões SGID:
    sudo chmod 2775 /srv/www
    sudo chmod 2775 /srv/{admin,shared}
  5. Configurando permissões Nginx:
    sudo chown root:www-data /etc/nginx/sites-available /etc/nginx/sites-enabled
    sudo chmod 775 /etc/nginx/sites-available /etc/nginx/sites-enabled
  6. Criando regras sudo para Nginx:
    echo 'cloudintec ALL=(ALL) NOPASSWD: /usr/sbin/nginx, /usr/bin/systemctl restart nginx, /usr/bin/systemctl reload nginx, /usr/bin/systemctl status nginx, /usr/bin/systemctl start nginx, /usr/bin/systemctl stop nginx' | sudo tee /etc/sudoers.d/cloudintec-nginx
    sudo chmod 440 /etc/sudoers.d/cloudintec-nginx
  7. Criando regras sudo para APT:
    echo 'cloudintec ALL=(ALL) NOPASSWD: /usr/bin/apt update, /usr/bin/apt upgrade, /usr/bin/apt install, /usr/bin/apt remove, /usr/bin/apt autoremove, /usr/bin/apt-get update, /usr/bin/apt-get upgrade, /usr/bin/apt-get install, /usr/bin/apt-get remove, /usr/bin/apt-get autoremove' | sudo tee /etc/sudoers.d/cloudintec-apt
    sudo chmod 440 /etc/sudoers.d/cloudintec-apt

Observações para Replicação em Outros Servidores

  1. O usuário cloudintec já tinha permissões de superadmin via /etc/sudoers.d/cloudintec e pelo grupo google-sudoers.
  2. A adição ao grupo www-data é crucial para trabalhar com arquivos web.
  3. A estrutura SGID (chmod 2775) garante que todos os arquivos criados em /srv mantenham o grupo www-data.
  4. Ao replicar essas configurações, você pode restringir as permissões sudo caso deseje mais segurança, pois atualmente cloudintec tem permissões totais.