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 Adicionar o ponto de montagem de um sistema de arquivos SMB a um domínio do AD.
Use uma versão do sistema operacional Linux compatível com o sistema de arquivos SMB. Para mais informações, consulte Limites e Imagens de kernel recomendadas.
Contexto
Antes de adicionar o ponto de montagem de um sistema de arquivos SMB a um domínio do AD, você só pode montar e usar o sistema de arquivos como usuário anônimo. Após adicionar o ponto de montagem ao domínio do AD, é possível 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 poderão 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 ingressado no domínio
Faça logon no cliente Linux.
-
Ingresse o cliente Linux no domínio do AD.
-
-
Execute o comando id para verificar o status de um usuário de domínio do AD.
id testuser@example-company.comUma saída semelhante à seguinte indica que o usuário de 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 logon aos usuários de domínio do AD.
-
Conceda permissão de logon 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 logon a um grupo específico.
sudo realm permit -g 'Security Users' sudo realm permit -g 'Domain Users' 'Domain Admins' -
Conceda permissão de logon a todos os usuários.
sudo realm permit --all -
Negue permissão de logon a todos os usuários.
sudo realm deny --all
-
-
Adicione permissões de sudo para um usuário de 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 contém várias palavras.
%domain\ admins@example-company.com ALL=(ALL) ALL
-
-
Configure o logon SSH.
-
Abra o arquivo de configuração /etc/ssh/sshd_config e modifique a configuração de logon da seguinte forma:
PasswordAuthentication yes -
Execute o comando correspondente ao seu sistema operacional para reiniciar o serviço SSHD.
-
CentOS
service sshd restart -
Ubuntu
service ssh restart
-
-
-
Faça logon no cliente Linux como usuário de domínio do AD.
ssh localhost -l usera1@example-company.comUma saída semelhante à seguinte indica que você fez logon com sucesso no cliente Linux como usuário de 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 de usuário e ticket.
Execute os comandos id e
klistpara visualizar o UID, GID e informações de ticket do usuário atual.[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 parâmetros principais. Substitua os valores pelas suas informações reais.
cruideuid: O ID do usuário localusera1.gid: O ID de grupo do usuário localusera1.-
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 serviço autofs.
systemctl restart autofs.service -
Verifique a configuração de montagem automática.
Por exemplo, crie o diretório //205dee4****-uub48.us-west-1.nas.aliyuncs.com/myshare/usera1 e conceda permissões totais ao usuário
usera1.Após fazer logon como usuário de domínio do AD, execute o comando
ls /share/usera1. Se o conteúdo do diretóriousera1no sistema de arquivos SMB for exibido, a montagem automática estará configurada corretamente.
-
Método 2: Montar em um cliente não ingressado no domínio
Faça logon no cliente Linux.
-
Conecte-se ao servidor AD.
-
-
Use uma conta de usuário local para obter e armazenar em cache as informações de ticket Kerberos.
-
Crie um novo usuário local e registre o UID e 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 parâmetros principais. Substitua os valores pelas suas informações reais.
cruideuid: O ID do usuário localusera1.gid: O ID de grupo do usuário localusera1.-
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 serviço autofs.
systemctl restart autofs.service -
Verifique a configuração de montagem automática.
Por exemplo, crie o diretório //205dee4****-uub48.us-west-1.nas.aliyuncs.com/myshare/usera1 e conceda permissões totais ao usuário
usera1.Após fazer logon como usuário de domínio do AD, execute o comando
ls /share/usera1. Se o conteúdo do diretóriousera1no sistema de arquivos SMB for exibido, a montagem automática estará configurada corretamente.
-
Gerenciamento de ACLs SMB com cifsacl
Use os comandos getcifsacl e setcifsacl para gerenciar ACLs do sistema de arquivos SMB.
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$