Antes de começar recomendo a leitura desse outro post: Samba 18: O que é TDB, LDAP, Active Directory e LDB?
Faz um tempo em que não postamos artigos sobre o samba. Desviamos a atenção para outros assuntos.
Hoje trago um post falando de como alterar o nome ou sobrenome dos usuários. Usaremos para isso as ferramentas ldb. Poderíamos usar o “samba-tool user edit” mas, infelizmente, essa ferramenta não está funcionando para renomear.
Antes de tudo, vamos onde estão localizados os programas e arquivos que usaremos para alterar os nomes do usuário.
Arquivos que Usaremos
Ferramenta samba-tool
Essa ferramenta fica dentro de /usr/local/samba/bin
elder@server01:~$ ls -1 /usr/local/samba/bin smbpasswd smbspool smbstatus tdbtool testparm wbinfo samba-tool ...
A ferramenta samba-tool é mais nova e deveria ser usada somente ela aqui. Mas como a sua opção “samab-tool user edit” está com problema iremos ter que usar a ferramenta ldbrename para renomearmos.
Ferramentas ldb
Se não tiver instalado as ferramentas ldb poderá instalá-las com o comando “apt install ldb-tools” no debian e derivados.
Quando instalamos o samba, pelo menos quando compilado, as ferramentas ldb são postas dentro da pasta /usr/local/samba/bin. Vamos excutar um ls e usar um asterisco(*) para listar todos os arquivos iniciados com ldb. Também usaremos um “-1” para listarmos em uma coluna simples:
elder@server01:~$ ls -1 /usr/local/samba/bin/ldb* /usr/local/samba/bin/ldbadd /usr/local/samba/bin/ldbdel /usr/local/samba/bin/ldbedit /usr/local/samba/bin/ldbmodify /usr/local/samba/bin/ldbrename /usr/local/samba/bin/ldbsearch
Ferramentas ldb são usadas para alterar o banco de dados interno do samba. Acima temos as ferramentas ldbrename, ldbmodify e ldbsearch.
- ldbsearch: iremos usar para buscar pelo usuário
- ldbrename: iremos usar para renomear
- ldbmodify: iremos usar para renomear. Na verdade, como o nome sugere, ldbmodify modifica o banco sam.ldb e iremos usar ldbmodify para renomear. A diferença entre ldbmodify e ldbrename é que ldbmodify modificará muito mais que ldbrename. ldbmodify pode substituir, excluir, adicionar… ela é muito mais completa que ldbrename.
Em versão do samba mais recente podemos usar “samba-tool user show nomeUsuario” ao invés de ldbsearch.
Ainda em versões mais recentes do samba podemos usar “samba-tool user edit nomeUsuario” para editar propriedades do usuário.
Arquivo sam.ldb
O arquivo sam.ldb fica dentro de /usr/local/samba/private/ e é dentro desse arquivo que ficam as informações dos usuários.
Criando um Usuário para Teste
Vamos supor que era para criar o usuário “elder silva” e acabei cadastrando “eder sirva”.
Vamos praticar a criação do usuário. Para facilitar acessarei a pasta /usr/local/samba/bin.
elder@server01:~$ cd /usr/local/samba/bin
Criando o usuário com nome errado
elder@server01:/usr/local/samba/bin$ sudo ./samba-tool user create eder --given-name="eder" --surname="sirva"
Vamos listar os usuários e verificar se o nosso recém criado se encontra na lista
elder@server01:/usr/local/samba/bin$ sudo ./samba-tool user list krbtgt Guest eder Administrator
Corrigindo o Nome do Usuário com ldbrename
Acesse a pasta /usr/local/samba para ficar mais fácil o acesso aos arquivos
elder@server01:~$ cd /usr/local/samba/
Use samba-tool para mostrar detalhes do usuário eder
Se usarmos apenas “sudo bin/samba-tool user show eder” irá aparecer muitas informações que não precisamos. Precisaremos apenas da da primeira linha que aparece. Vamos usar “head -n1” pegamos a primeira linha dos resultados apenas.
elder@server01:/usr/local/samba$ sudo bin/samba-tool user show eder | head -n1 dn: CN=eder sirva,CN=Users,DC=empresa100,DC=local
essa é a linha que queremos e iremos copiar e colar duas vezes abaixo.
usaremos a ferramenta ldbrename agora. Iremos alterar o arquivo sam.ldb que está dentro de “/usr/local/samba/private/sam.ldb”
elder@server01:/usr/local/samba$ sudo bin/ldbrename -H private/sam.ldb 'CN=eder sirva,CN=Users,DC=empresa100,DC=local' 'CN=Elder Silva,CN=Users,DC=empresa100,DC=local'
No comando acima substituímos a linha e usamos “-H” para indicarmos o arquivo sam.ldb
‘CN=eder sirva,CN=Users,DC=empresa100,DC=local’
por
‘CN=Elder Silva,CN=Users,DC=empresa100,DC=local’
Corrigindo o Nome do Usuário com ldbmodify
Acesse a pasta /usr/local/samba para ficarmos mais próximos da pasta bin e privante que estão aí, dentro de /usr/local/samba
elder@server01:~$ cd /usr/local/samba/
Se usarmos somente “sudo bin/ldbsearch -H private/sam.ldb” irá ser exibido informações de TODOS os usuários. Mas se usarmos esse comando acrescentando ‘name=eder*’ iremos pesquisar todo nome que comece com eder. Não esqueça do asterisco ao final. Poderíamos também colocar asterisco no início: ‘name=*eder*’ para pesquisar por eder sem nos preocuparmos se está no início ou final.
Vamos pesquisar por eder. O resultado será um texto grande, mas aqui colei somente o principal:
elder@server01:/usr/local/samba$ sudo bin/ldbsearch -H private/sam.ldb 'name=eder*' # record 1 dn: CN=eder sirva,CN=Users,DC=empresa100,DC=local cn: eder sirva sn: sirva givenName: eder displayName: eder sirva name: eder sirva sAMAccountName: eder userPrincipalName: eder@empresa100.local objectCategory: CN=Person,CN=Schema,CN=Configuration,DC=empresa100,DC=local distinguishedName: CN=eder sirva,CN=Users,DC=empresa100,DC=local
Agora escolha acima o que quer alterar. Eu irei alterar givenName, displayName, sAMAccountName e userPrincipalName. Vamos lá.
Crie um arquivo qualquer com o conteúdo abaixo. Eu usei o nano e criei o arquivo /tmp/alterarUsuario.ldif
elder@server01:/usr/local/samba$ nano /tmp/alterarUsuario.ldif
Digite o conteúdo abaixo dentro do arquivo alterarUsuario.ldif. A primeira linha em laranja copiei e colei do resultado lá de cima. A segunda linha é a ação, que nesse caso é midificação(modify); poderia ser add ou delete…
dn: CN=eder sirva,CN=Users,DC=empresa100,DC=local
changetype: modify
-
replace: givenName
givenName: Elder Silva
-
replace: displayName
displayName: Elder Silva
-
replace: sAMAccountName
sAMAccountName: elder
-
replace: userPrincipalName
userPrincipalName: Elder Silva
Agora use ldbmodify para pegar o conteúdo do arquivo /tmp/alterarUsuario.ldif e inserir no banco sam.ldb
elder@server01:/usr/local/samba$ sudo bin/ldbmodify -H private/sam.ldb /tmp/alterarUsuario.ldif
Conclusão
Tem muitas ferramentas com interface gráficas para podermos alterar essas propriedades da conta de usuário. Mas, particularmente, prefiro usar linha de comando. Pois em todo servidor que eu encontrar terá essas opções pela linha de comando; já os programinhas com interface gráfica dificilmente estarão disponíveis.
Muito bom ótima postagem parabéns??
Josicler, Que bom que esse artigo foi útil para você!!
Parabéns!