Samba 20: Renomear Nome e Sobrenome de Usuários com ldbrename e ldbmodify

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.

Leitor voraz e um dos administradores do GNU/Linux Brasil no Whatsapp, facebook, youtube e nesse dito site: www.gnulinuxbrasil.com.br

3 Comments to “Samba 20: Renomear Nome e Sobrenome de Usuários com ldbrename e ldbmodify”

Deixe um comentário para Josicler Leme Silva Cancelar resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *