Este tópico descreve como montar um sistema de arquivos SMB em um cliente Linux como usuário de domínio do AD. Também explica como acessar o sistema de arquivos e gerenciar Listas de Controle de Acesso (ACLs) dos arquivos e diretórios após a montagem.
Pré-requisitos
O ponto de montagem do sistema de arquivos SMB foi adicionado a um domínio do AD. Para mais informações, consulte Add the mount target of an SMB file system to an AD domain.
Use uma versão do sistema operacional Linux compatível com o sistema de arquivos SMB. Para mais informações, consulte Limits e Recommended kernel images.
Contexto
Antes de adicionar o ponto de montagem de um sistema de arquivos SMB a um domínio do AD, só é possível montar e usar o sistema de arquivos como usuário anônimo. Após adicionar o ponto de montagem ao domínio do AD, você pode escolher se deseja continuar permitindo o acesso de usuários anônimos.
Se você continuar a permitir o acesso anônimo, os clientes poderão usar a autenticação Kerberos para acessar o sistema de arquivos com uma identidade de domínio ou usar a autenticação NTLM para acessá-lo como membro do grupo Everyone.
Caso o acesso anônimo não seja permitido, apenas clientes Linux que utilizam o protocolo de autenticação Kerberos podem montar o sistema de arquivos como usuário de domínio do AD.
O procedimento a seguir usa Ubuntu e CentOS como exemplos para demonstrar como montar e acessar um sistema de arquivos SMB como usuário de domínio do AD.
Método 1: Montar em um cliente integrado ao domínio
Faça login no cliente Linux.
-
Integre o cliente Linux ao domínio do AD.
-
-
Execute o comando id para verificar o status de um usuário do domínio do AD.
id testuser@example-company.comUma saída semelhante à seguinte indica que o usuário do domínio do AD foi identificado corretamente.
[user1@mycentos root]$ id usera1@example-company.com uid=371801107(usera1@example-company.com) gid=371800513(domain users@example-company.com) groups=371800513(domain users@example-company.com) -
Conceda permissões de login aos usuários do domínio do AD.
-
Conceda permissão de login a um usuário específico.
sudo realm permit usera1@example-company.com sudo realm permit userb1@example-company.com userb2@example-company.com -
Conceda permissão de login a um grupo específico.
sudo realm permit -g 'Security Users' sudo realm permit -g 'Domain Users' 'Domain Admins' -
Conceda permissão de login a todos os usuários.
sudo realm permit --all -
Negue permissão de login a todos os usuários.
sudo realm deny --all
-
-
Adicione permissões de sudo para um usuário do domínio do AD.
Execute o comando a seguir para abrir o arquivo de configuração do sudo e adicione as permissões de sudo conforme necessário.
sudo vim /etc/sudoers.d/domain_admins-
Adicione permissões de sudo para um usuário específico.
usera1@example-company.com ALL=(ALL) ALL userb2@example-company.com ALL=(ALL) ALL -
Adicione permissões de sudo para um grupo específico.
%admingroupc1@example-company.com ALL=(ALL) ALL -
Adicione permissões de sudo para um grupo cujo nome contenha várias palavras.
%domain\ admins@example-company.com ALL=(ALL) ALL
-
-
Configure o login SSH.
-
Abra o arquivo de configuração /etc/ssh/sshd_config e modifique a configuração de login da seguinte forma:
PasswordAuthentication yes -
Execute o comando correspondente ao seu sistema operacional para reiniciar o service SSHD.
-
CentOS
service sshd restart -
Ubuntu
service ssh restart
-
-
-
Faça login no cliente Linux como usuário do domínio do AD.
ssh localhost -l usera1@example-company.comUma saída semelhante à seguinte indica que você fez login com sucesso no cliente Linux como usuário do domínio do AD.
[user1@mycentos root]$ ssh localhost -l usera1@example-company.com The authenticity of host 'localhost (127.0.0.1)' can't be established. ECDSA key fingerprint is SHA256:t/sEr63muG4UvBiAODXW9cHuMDBUlWUXO3cQ4xxmN78. Are you sure you want to continue connecting (yes/no/[fingerprint])? yes Warning: Permanently added 'localhost' (ECDSA) to the list of known hosts. usera1@example-company.com@localhost's password: Welcome to Alibaba Cloud Elastic Compute Service ! Activate the web console with: systemctl enable --now cockpit.socket -
Monte o sistema de arquivos SMB.
-
Instale as ferramentas de montagem necessárias.
-
Ubuntu
sudo apt-get install keyutils cifs-utils -
CentOS
sudo yum install keyutils cifs-utils
-
-
Consulte as informações do usuário e do ticket.
Execute o comando id para visualizar as informações de uid e gid após o login.
[usera1@example-company.com@mycentos ~]$ klist Ticket cache: KCM:371801107:64031 Default principal: usera1@EXAMPLE-COMPANY.COM Valid starting Expires Service principal 08/31/2021 07:56:42 08/31/2021 17:56:42 krbtgt/EXAMPLE-COMPANY.COM@EXAMPLE-COMPANY.COM renew until 09/07/2021 07:56:42 [usera1@example-company.com@mycentos ~]$ id uid=371801107(usera1@example-company.com) gid=371800513(domain users@example-company.com) groups=371800513(domain users@example-company.com),371801110(groupa@example-company.com) -
Execute o comando a seguir para montar o sistema de arquivos.
sudo mount -t cifs //205dee4****-uub48.us-west-1.nas.aliyuncs.com/myshare /mnt -o vers=2.1,sec=krb5,cruid=371801107,uid=371801107,gid=371800513 --verboseSubstitua
205dee4****-uub48.us-west-1.nas.aliyuncs.compelo endereço do ponto de montagem do seu sistema de arquivos.NotaSe você selecionou Enable Encryption in Transit no console NAS, será necessário usar a opção vers=3.0 para montar o sistema de arquivos.
-
-
Configure a montagem automática.
Para montar o sistema de arquivos automaticamente após a reinicialização do cliente Linux, configure a montagem automática.
-
No arquivo de configuração /etc/auto.master, adicione a seguinte linha:
/share /etc/auto.cifs --timeout=30 --ghost -
Modifique o arquivo de configuração /etc/auto.cifs conforme mostrado no exemplo a seguir:
* -fstype=cifs,vers=2.1,sec=krb5,cruid=${UID},uid=${UID},gid=${GID},file_mode=0700,dir_mode=0700 ://205dee4****-uub48.us-west-1.nas.aliyuncs.com/myshare/&A lista a seguir descreve os principais parâmetros. Substitua os valores pelas suas informações reais.
cruideuid: O ID do usuário local usera1.gid: O grupo do usuário local usera1.-
205dee4****-uub48.us-west-1.nas.aliyuncs.com: O endereço do ponto de montagem.No console NAS, acesse a página File System List. Localize seu sistema de arquivos e clique em no ícone **
**. Na lista resultante, localize a coluna Mount Target e passe o mouse sobre o ícone **
** para obter o endereço do ponto de montagem.
-
Reinicie o service autofs.
systemctl restart autofs.service -
Verifique a configuração de montagem automática.
Suponha que o diretório //205dee4****-uub48.us-west-1.nas.aliyuncs.com/myshare/usera1 tenha sido criado com permissões que concedem acesso total ao usuário usera1.
Após fazer login como usuário do domínio do AD, execute o comando
ls /share/usera1. Se você conseguir visualizar o conteúdo do diretório usera1 no sistema de arquivos SMB, a configuração foi bem-sucedida.
-
Método 2: Montar em um cliente não integrado ao domínio
Faça login no cliente Linux.
-
Conecte-se ao servidor AD.
-
-
Use uma conta de usuário local para obter e armazenar em cache as informações do ticket Kerberos.
-
Crie um novo usuário local e registre o UID e o GID do usuário.
useradd usera1 su - usera1 id[root@iZrj9gqbtl7kefeqxxx ~]# useradd usera1 [root@iZrj9gqbtl7kefeqxxx ~]# su - usera1 [usera1@iZrj9gqbtl7kefeqxxx ~]$ id uid=1004(usera1) gid=1004(usera1) groups=1004(usera1) -
Como o novo usuário local, obtenha um ticket Kerberos para o usuário do AD.
kinit administrator@EXAMPLE-COMPANY.COM klistuser1@iZrj9gqbtl7xxx :~$ kinit administrator@EXAMPLE-COMPANY.COM Password for administrator@EXAMPLE-COMPANY.COM: user1@iZrj9gqbtl7xxx :~$ klist Ticket cache: FILE:/tmp/krb5cc_1000 Default principal: administrator@EXAMPLE-COMPANY.COM Valid starting Expires Service principal 09/08/2021 05:47:53 09/08/2021 15:47:53 krbtgt/EXAMPLE-COMPANY.COM@EXAMPLE-COMPANY.COM renew until 09/09/2021 05:47:49 user1@iZrj9gqbtl7xxx :~$
-
-
Monte o sistema de arquivos SMB.
-
Instale as ferramentas de montagem necessárias.
-
Ubuntu
sudo apt-get install keyutils cifs-utils -
CentOS
sudo yum install keyutils cifs-utils
-
-
Execute o comando a seguir para montar o sistema de arquivos.
sudo mount -t cifs //205dee4****-uub48.us-west-1.nas.aliyuncs.com/myshare /mnt -o vers=2.1,sec=krb5,cruid=1004,uid=1004,gid=1004 --verboseSubstitua
205dee4****-uub48.us-west-1.nas.aliyuncs.compelo endereço do ponto de montagem do seu sistema de arquivos.NotaSe você selecionou Enable Encryption in Transit no console NAS, será necessário usar a opção vers=3.0 para montar o sistema de arquivos.
-
-
Configure a montagem automática.
Para montar o sistema de arquivos automaticamente após a reinicialização do cliente Linux, configure a montagem automática.
-
No arquivo de configuração /etc/auto.master, adicione a seguinte linha:
/share /etc/auto.cifs --timeout=30 --ghost -
Modifique o arquivo de configuração /etc/auto.cifs conforme mostrado no exemplo a seguir:
* -fstype=cifs,vers=2.1,sec=krb5,cruid=${UID},uid=${UID},gid=${GID},file_mode=0700,dir_mode=0700 ://205dee4****-uub48.us-west-1.nas.aliyuncs.com/myshare/&A lista a seguir descreve os principais parâmetros. Substitua os valores pelas suas informações reais.
cruideuid: O ID do usuário local usera1.gid: O grupo do usuário local usera1.-
205dee4****-uub48.us-west-1.nas.aliyuncs.com: O endereço do ponto de montagem.No console NAS, acesse a página File System List. Localize seu sistema de arquivos e clique em no ícone **
**. Na lista resultante, localize a coluna Mount Target e passe o mouse sobre o ícone **
** para obter o endereço do ponto de montagem.
-
Reinicie o service autofs.
systemctl restart autofs.service -
Verifique a configuração de montagem automática.
Suponha que o diretório //205dee4****-uub48.us-west-1.nas.aliyuncs.com/myshare/usera1 tenha sido criado com permissões que concedem acesso total ao usuário usera1.
Após fazer login como usuário do domínio do AD, execute o comando
ls /share/usera1. Se você conseguir visualizar o conteúdo do diretório usera1 no sistema de arquivos SMB, a configuração foi bem-sucedida.
-
Gerenciando ACLs SMB com cifsacl
Use os comandos getcifsacl e setcifsacl para gerenciar ACLs do sistema de arquivos SMB. Exemplos:
getcifsacl usera1/
usera1@example-company.com@myubuntu:/mnt$ getcifsacl usera1/
REVISION:0x1
CONTROL:0x8404
OWNER:S-1-5-21-2849381876-3817135681-4198507328-1107
GROUP:S-1-5-21-2849381876-3817135681-4198507328-513
ACL:S-1-5-21-2849381876-3817135681-4198507328-1107:ALLOWED/I/FULL
ACL:S-1-3-0:ALLOWED/OI|CI|IO|I/FULL
ACL:S-1-5-18:ALLOWED/OI|CI|I/FULL
ACL:S-1-5-32-544:ALLOWED/OI|CI|I/FULL
ACL:S-1-5-21-3076751034-3769290925-1520581464-512:ALLOWED/OI|CI|I/FULL
sudo setcifsacl -a "ACL:S-1-5-21-3076751034-3769290925-1520581464-513:ALLOWED/OI|CI|I/FULL" usera1/
usera1@example-company.com@myubuntu:/mnt$ sudo setcifsacl -a "ACL:S-1-5-21-3076751034-3769290925-1520581464-513:ALLOWED/OI|CI|I/FULL" usera1/
usera1@example-company.com@myubuntu:/mnt$ getcifsacl usera1
REVISION:0x1
CONTROL:0x8004
OWNER:S-1-5-21-2849381876-3817135681-4198507328-1107
GROUP:S-1-5-21-2849381876-3817135681-4198507328-513
ACL:S-1-5-21-2849381876-3817135681-4198507328-1107:ALLOWED/I/FULL
ACL:S-1-3-0:ALLOWED/OI|CI|IO|I/FULL
ACL:S-1-5-18:ALLOWED/OI|CI|I/FULL
ACL:S-1-5-32-544:ALLOWED/OI|CI|I/FULL
ACL:S-1-5-21-3076751034-3769290925-1520581464-512:ALLOWED/OI|CI|I/FULL
ACL:S-1-5-21-3076751034-3769290925-1520581464-513:ALLOWED/OI|CI|I/FULL
usera1@example-company.com@myubuntu:/mnt$