Diferenças
Aqui você vê as diferenças entre duas revisões dessa página.
| Próxima revisão | Revisão anterior | ||
| infra:samba:cliente-linux [2026/04/12 22:55] – criada admin | infra:samba:cliente-linux [2026/04/13 13:32] (atual) – admin | ||
|---|---|---|---|
| Linha 1: | Linha 1: | ||
| - | ===TEST==== | + | # Samba AD DC (Docker) + Cliente Linux com Home Remota |
| + | |||
| + | **Domínio: | ||
| + | **IP do Servidor (DC1):** `192.168.7.130` | ||
| + | **Sistema Operacional Cliente:** Ubuntu / Debian | ||
| + | |||
| + | --- | ||
| + | |||
| + | ## Índice | ||
| + | |||
| + | 1. [Configurar Resolver DNS](# | ||
| + | 2. [Preparação do Cliente Linux](# | ||
| + | 3. [Ingresso no Domínio (Join)](# | ||
| + | 4. [Automação da Home Remota (PAM & Mount)](# | ||
| + | 5. [Redirecionamento de Diretórios XDG para Local](# | ||
| + | |||
| + | --- | ||
| + | |||
| + | ## 1. Configurar Resolver DNS | ||
| + | |||
| + | Edite `/ | ||
| + | |||
| + | ```ini | ||
| + | [Resolve] | ||
| + | DNS=192.168.7.130 | ||
| + | Domains=futurelab.dcc.ufmg.br | ||
| + | DNSStubListener=no | ||
| + | ``` | ||
| + | |||
| + | --- | ||
| + | |||
| + | ## 2. Preparação do Cliente Linux | ||
| + | |||
| + | ### 2.1 DNS e Resolução de Nomes | ||
| + | |||
| + | O cliente deve apontar para o IP do DC1 para resolver o domínio e o Kerberos. | ||
| + | |||
| + | **`/ | ||
| + | ``` | ||
| + | nameserver 192.168.7.130 | ||
| + | search futurelab.dcc.ufmg.br | ||
| + | ``` | ||
| + | |||
| + | **`/ | ||
| + | ``` | ||
| + | 127.0.0.1 | ||
| + | [IP_DO_CLIENTE] | ||
| + | ``` | ||
| + | |||
| + | ### 2.2 Instalação de Pacotes | ||
| + | |||
| + | ```bash | ||
| + | sudo apt update | ||
| + | sudo apt install -y sssd-ad sssd-tools realmd adcli krb5-user ntpdate libpam-mount cifs-utils keyutils | ||
| + | ``` | ||
| + | |||
| + | --- | ||
| + | |||
| + | ## 3. Ingresso no Domínio (Join) | ||
| + | |||
| + | ### 3.1 Executar o Join | ||
| + | |||
| + | ```bash | ||
| + | sudo realm join -U Administrator -v 192.168.7.130 | ||
| + | ``` | ||
| + | |||
| + | ### 3.2 Configurar o Kerberos | ||
| + | |||
| + | Edite o arquivo `/ | ||
| + | |||
| + | ```ini | ||
| + | [libdefaults] | ||
| + | default_realm | ||
| + | dns_lookup_realm | ||
| + | dns_lookup_kdc | ||
| + | rdns = false | ||
| + | ticket_lifetime = 24h | ||
| + | renew_lifetime = 7d | ||
| + | forwardable = true | ||
| + | |||
| + | [realms] | ||
| + | FUTURELAB.DCC.UFMG.BR = { | ||
| + | kdc = dc1.futurelab.dcc.ufmg.br | ||
| + | admin_server = dc1.futurelab.dcc.ufmg.br | ||
| + | default_domain = futurelab.dcc.ufmg.br | ||
| + | } | ||
| + | |||
| + | [domain_realm] | ||
| + | .futurelab.dcc.ufmg.br = FUTURELAB.DCC.UFMG.BR | ||
| + | futurelab.dcc.ufmg.br = FUTURELAB.DCC.UFMG.BR | ||
| + | ``` | ||
| + | |||
| + | ### 3.2 Configurar o SSSD | ||
| + | |||
| + | Após o join, ajuste `/ | ||
| + | |||
| + | ```ini | ||
| + | |||
| + | [domain/ | ||
| + | [sssd] | ||
| + | domains = futurelab.dcc.ufmg.br | ||
| + | config_file_version = 2 | ||
| + | services = nss, pam | ||
| + | |||
| + | [domain/ | ||
| + | default_shell = /bin/bash | ||
| + | ad_server = dc1.futurelab.dcc.ufmg.br | ||
| + | krb5_store_password_if_offline = True | ||
| + | cache_credentials = True | ||
| + | krb5_realm = FUTURELAB.DCC.UFMG.BR | ||
| + | realmd_tags = manages-system joined-with-adcli | ||
| + | id_provider = ad | ||
| + | fallback_homedir = /home/%u | ||
| + | ad_domain = futurelab.dcc.ufmg.br | ||
| + | use_fully_qualified_names = False | ||
| + | ldap_id_mapping = True | ||
| + | access_provider = ad | ||
| + | |||
| + | # Nomes curtos sem @dominio | ||
| + | use_fully_qualified_names = False | ||
| + | fallback_homedir = /home/%u | ||
| + | |||
| + | # Permite login offline com credenciais em cache | ||
| + | cache_credentials = true | ||
| + | krb5_store_password_if_offline = true | ||
| + | |||
| + | # Evita enumeração completa de usuários/ | ||
| + | enumerate = false | ||
| + | |||
| + | # Timeouts para não travar no login | ||
| + | ldap_network_timeout = 3 | ||
| + | ldap_search_timeout = 5 | ||
| + | ldap_opt_timeout = 5 | ||
| + | |||
| + | # Cache de entradas e grupos | ||
| + | entry_cache_timeout = 600 | ||
| + | entry_cache_group_timeout = 3600 | ||
| + | |||
| + | krb5_ccname_template = FILE:/ | ||
| + | krb5_server = dc1.futurelab.dcc.ufmg.br | ||
| + | ``` | ||
| + | |||
| + | ### 3.3 Reiniciar o Serviço | ||
| + | |||
| + | ```bash | ||
| + | sudo systemctl restart sssd | ||
| + | ``` | ||
| + | |||
| + | --- | ||
| + | |||
| + | ## 4. Automação da Home Remota (PAM & Mount) | ||
| + | |||
| + | ### 4.1 Configuração do pam_mount | ||
| + | |||
| + | Edite `/ | ||
| + | |||
| + | ```xml | ||
| + | <!-- Monta a home do usuário via CIFS/ | ||
| + | < | ||
| + | user=" | ||
| + | fstype=" | ||
| + | server=" | ||
| + | path=" | ||
| + | mountpoint="/ | ||
| + | options=" | ||
| + | mkmountpoint=" | ||
| + | /> | ||
| + | |||
| + | <!-- Bind mount do snap local (deve ser montado ANTES do acesso à home remota) --> | ||
| + | < | ||
| + | user=" | ||
| + | fstype=" | ||
| + | path="/ | ||
| + | mountpoint="/ | ||
| + | options=" | ||
| + | mkmountpoint=" | ||
| + | /> | ||
| + | ``` | ||
| + | |||
| + | ### 4.2 Ativação no PAM | ||
| + | |||
| + | Edite `/ | ||
| + | |||
| + | ``` | ||
| + | session optional pam_umask.so | ||
| + | # and here are more per-package modules (the " | ||
| + | session required pam_unix.so | ||
| + | session optional pam_sss.so | ||
| + | session optional | ||
| + | session optional | ||
| + | session optional pam_mount.so | ||
| + | session optional pam_systemd.so | ||
| + | |||
| + | ``` | ||
| + | |||
| + | --- | ||
| + | |||
| + | ## 5. Redirecionamento de Diretórios XDG para Local | ||
| + | |||
| + | Redirecionar `.cache`, `.config` e `.local` para o disco local evita I/O remoto excessivo (especialmente pelo Nautilus). | ||
| + | |||
| + | ### 5.1 Criar o Script de Perfil | ||
| + | |||
| + | Crie o arquivo `/ | ||
| + | |||
| + | ```bash | ||
| + | # | ||
| + | |||
| + | export XDG_CONFIG_HOME="/ | ||
| + | export XDG_CACHE_HOME="/ | ||
| + | |||
| + | mkdir -p " | ||
| + | mkdir -p " | ||
| + | |||
| + | # Redireciona symlinks na home remota para os diretórios locais | ||
| + | if [ -d "/ | ||
| + | |||
| + | # .cache remoto → local | ||
| + | if [ ! -L "/ | ||
| + | rm -rf "/ | ||
| + | ln -sfn " | ||
| + | fi | ||
| + | |||
| + | # .config remoto → local | ||
| + | if [ ! -L "/ | ||
| + | rm -rf "/ | ||
| + | ln -sfn " | ||
| + | fi | ||
| + | |||
| + | # .local remoto → local (inclui recently-used.xbel, | ||
| + | mkdir -p "/ | ||
| + | if [ ! -L "/ | ||
| + | rm -rf "/ | ||
| + | ln -sfn "/ | ||
| + | fi | ||
| + | fi | ||
| + | |||
| + | export SNAP_USER_DATA="/ | ||
| + | export SNAP_USER_COMMON="/ | ||
| + | mkdir -p " | ||
| + | ``` | ||
| + | |||
| + | ### 5.2 Criar o Diretório Base | ||
| + | |||
| + | ```bash | ||
| + | sudo mkdir -p / | ||
| + | sudo chmod 777 / | ||
| + | ``` | ||
| + | ### 5.3 Congigurar para apagar dados a cada 7 dias | ||
| + | ```bash | ||
| + | sudo crontab -e | ||
| + | ``` | ||
| + | Adicione a seguinte linha | ||
| + | |||
| + | ```bash | ||
| + | 0 0 * * * find / | ||
| + | ``` | ||