Skip to content.

Software Livre Portugal

Sections
Personal tools
You are here: Home » Projectos » Infra-estrutura » Samba » Samba Domain Controller

Samba Domain Controller

Instalação e configuração de um Servidor Linux com File & Print Server Samba e Domain Controller



1. Pré-requisitos


Neste conjunto de instruções será usada uma instalação da distribuição Fedora Core 2, instalação minima, na qual foram posteriormente instalados alguns
RPM’s suplementares de forma a satisfazer todas a dependencias necessárias.


LDAP:

Openldap-servers

Openldap-clients

Openldap


Smbldap-tools:

Perl

Perl-Convert-ASN1

Perl-Crypt-SmbHash (*)

Perl-Filter

Perl-HTML-Parser

Perl-HTML-Tagset

Perl-LDAP

Perl-libwww-perl

Perl-URI

Perl-XML-NamespaceSupport

Perl-XML-SAX

Smbldap-tools (**)


(*) Este pacote não faz parte da distribuição Fedora, podendo ser obtido : http://rpm.pbone.net/index.php3?stat=3&search=perl-Crypt-SmbHash&srodzaj=3

(**) Este pacote não faz parte da distribuição Fedora, podendo ser obtido: http://dag.wieers.com/packages/smbldap-tools/


Samba:

Cups-libs

Libjpeg

Libpng

Libtiff

Samba

Samba-client

Samba-common


CUPS:

atk

cups

dbus

dbus-glib

fontconfig

freetype

gtk2

pango

xinetd

xorg-x11-Mesa-libGL

xorg-x11-libs

xorg-x11-libs-data



2. Configuração


Tendo todos os pacotes instalados, procede-se então ao processo de configuração.



LDAP


Em primeiro lugar vamos iniciar as configurações base do sistema.

Ao nivel do LDAP é necessário adicionar o schema do samba.


[root@exemplodc root] cp /share/doc/samba-3.0.9/LDAP/samba.schema /etc/openldap/schema


E adicionar a seguinte entrada no inicio do /etc/openldap/slapd.conf


include /etc/openldap/schema/samba.schema


É necessário também configurar o rootdn, que no nosso caso será cn=Manager,dc=exemplo,dc=pt

Para isso necessitamos de adicionar/editar as seguintes entradas no ficheiro /etc/openldap/slapd.conf


database ldbm

suffix "dc=exemplo,dc=pt"

rootdn "cn=Manager,dc=exemplo,dc=pt"

# Cleartext passwords, especially for the rootdn, should

# be avoided. See slappasswd(8) and slapd.conf(5) for details.

# Use of strong authentication encouraged.

# rootpw secret

rootpw {MD5}9CMOi+++jmyV2vTo1G8oqA==


A rootpw é obtida através do comando slappasswd:


[ root@exemplodc root]# slappasswd -h {MD5}

New password:

Re-enter new password:

{MD5}9CMOi+++jmyV2vTo1G8oqA==

[root@exemplodc root]#


Depois destas alterações deve-se iniciar o ldap para confirmar que tudo correu como pretendido


[root@exemplodc root]# service ldap start

Starting slapd: [ OK ]

Starting slurpd: [ OK ]

[root@exemplodc root]#



SMBLDAP-TOOLS


Em seguida e para que se possa iniciar o processo de configuração das smbldap-tools é necessário criar uma miniconfiguração samba de forma a obter o
SID do nosso dominio.

SID é um identificador Unico Numérico que identifica cada objecto ( utilizador, grupo, computador) num dominio NT.

Como tal edita-se o ficheiro /etc/samba/smb.conf para que contenha pelo menos as seguintes entradas


[global]

workgroup = exemplo

netbios name = exemplodc

domain master = yes


Embora não seja necessário pode-se iniciar o serviço do Samba


[root@exemplodc root]# service smb start

Starting SMB services: [ OK ]

Starting NMB services: [ OK ]

[root@exemplodc root]#


Em seguida executa-se o comando net getlocalsid de forma a obter o nosso SID:


[root@exemplodc samba]# net getlocalsid

SID for domain EXEMPLODC is: S-1-5-21-2414157665-673202256-218108875


Uma vez que já temos o nosso SID, pode-se avançar para a configuração das smbldap-tools

Para isso usa-se o script configure.pl


[root@exemplodc root]# /usr/share/doc/smbldap-tools-0.8.5/configure.pl

Unrecognized escape \p passed through at /usr/share/doc/smbldap-tools-0.8.5/configure.pl line 194.

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

smbldap-tools script configuration

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

Before starting, check

. if your samba controller is up and running.

. if the domain SID is defined (you can get it with the 'net getlocalsid')


. you can leave the configuration using the Crtl-c key combination

. empty value can be set with the "." caracter

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

Looking for configuration files...


Samba Config File Location [/etc/samba/smb.conf] >

smbldap Config file Location (global parameters) [/etc/smbldap-tools/smbldap.conf] >

smbldap Config file Location (bind parameters) [/etc/smbldap-tools/smbldap_bind.conf] >

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

Let's start configuring the smbldap-tools scripts ...


. workgroup name: name of the domain Samba act as a PDC

workgroup name [exemplo] >

. netbios name: netbios name of the samba controler

netbios name [exemplodc] >

. logon drive: local path to which the home directory will be connected (for NT Workstations). Ex: 'H:'

logon drive [logondrive] > H:

. logon home: home directory location (for Win95/98 or NT Workstation).

(use %U as username) Ex:'\\exemplodc\homes\%U'

logon home (leave blank if you don't want homeDirectory) [\\exemplodc\homes\%U] > \\exemplodc\homes\%U

. logon path: directory where roaming profiles are stored. Ex:'\\exemplodc\profiles\%U'

logon path (leave blank if you don't want roaming profile) [\\exemplodc\profiles\%U] > “”

. home directory prefix (use %U as username) [/home/%U] >

. default user netlogon script (use %U as username) [%U.cmd] > logon.bat

. default password validation: default time before a user has to change his password

default password validation time (time in days) [45] >

. ldap suffix [ldapsuffix] > dc=exemplo,dc=pt

. ldap group suffix [ldapgroupsuffix] > ou=groups

. ldap user suffix [ldapusersuffix] > ou=users

. ldap machine suffix [ldapmachinesuffix] > ou=computers

. ldap master server: IP adress or DNS name of the master (writable) ldap server

ldap master server [127.0.0.1] >

. ldap master port [389] >

. ldap master bind dn [ldapadmindn] > cn=Manager,dc=exemplo,dc=pt

. ldap master bind password [] >

. ldap slave server: IP adress or DNS name of the slave ldap server: can also be the master one

ldap slave server [127.0.0.1] >

. ldap slave port [389] >

. ldap slave bind dn [ldapadmindn] > cn=Manager,dc=exemplo,dc=pt

. ldap slave bind password [] >

. ldap tls support (1/0) [0] >

. SID for domain exemplo: SID of the domain (can be obtained with 'net getlocalsid exemplodc')

SID for domain exemplo [S-1-5-21-2414157665-673202256-218108875] >

. unix password encryption: encryption used for unix passwords

unix password encryption (CRYPT, MD5, SMD5, SSHA, SHA) [SSHA] > MD5

. default user gidNumber [513] >

. default computer gidNumber [553] >

. default login shell [/bin/bash] >

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

backup old configuration files:

/etc/smbldap-tools/smbldap.conf->/etc/smbldap-tools/smbldap.conf.old

/etc/smbldap-tools/smbldap_bind.conf->/etc/smbldap-tools/smbldap_bind.conf.old

writing new configuration file:

/etc/smbldap-tools/smbldap.conf done.

/etc/smbldap-tools/smbldap_bind.conf done.


Os gid’s usados foram escolhidos baseados na tabela de gid’s prédefinidos do NT.

Esta tabela pode ser consultada em:

http://www.samba.org/samba/docs/man/Samba-HOWTO-Collection/groupmapping.html#WKURIDS


Após se ter configurado as smbldap-tools, é usado o script smbldap-populate para criar as entradas iniciais no nosso servidor LDAP.

Editando o script pode-se definir que grupos queremos automaticamente criar. Obrigatoriamente têm que ser criados os seguintes grupos, e que vêm
automaticamente seleccionados no script:

Domain Admins; Domain Users; Domain Computers


[root@exemplodc root]# smbldap-populate

Using builtin directory structure

adding new entry: dc=exemplo,dc=pt

adding new entry: ou=users,dc=exemplo,dc=pt

adding new entry: ou=groups,dc=exemplo,dc=pt

adding new entry: ou=computers,dc=exemplo,dc=pt

adding new entry: ou=Idmap,dc=exemplo,dc=pt

adding new entry: cn=NextFreeUnixId,dc=exemplo,dc=pt

adding new entry: uid=Administrator,ou=users,dc=exemplo,dc=pt

adding new entry: uid=nobody,ou=users,dc=exemplo,dc=pt

adding new entry: cn=Domain Admins,ou=groups,dc=exemplo,dc=pt

adding new entry: cn=Domain Users,ou=groups,dc=exemplo,dc=pt

adding new entry: cn=Domain Guests,ou=groups,dc=exemplo,dc=pt

adding new entry: cn=Print Operators,ou=groups,dc=exemplo,dc=pt

adding new entry: cn=Backup Operators,ou=groups,dc=exemplo,dc=pt

adding new entry: cn=Replicators,ou=groups,dc=exemplo,dc=pt

[root@exemplodc root]#


Para confirmar que tudo correu como pretendido usamos o commando ldapsearch.


[root@exemplodc root]# ldapsearch -x -D "cn=Manager,dc=exemplo,dc=pt" -b "dc=exemplo,dc=pt" -W

Enter LDAP Password:

# extended LDIF

#

# LDAPv3

# base <dc=exemplo,dc=pt> with scope sub

# filter: (objectclass=*)

# requesting: ALL

#


# exemplo.pt

dn: dc=exemplo,dc=pt

objectClass: dcObject

objectClass: organization

o: exemplo

dc: exemplo


# users, exemplo.pt

dn: ou=users,dc=exemplo,dc=pt

objectClass: organizationalUnit

ou: users


# groups, exemplo.pt

dn: ou=groups,dc=exemplo,dc=pt

objectClass: organizationalUnit

ou: groups


# computers, exemplo.pt

dn: ou=computers,dc=exemplo,dc=pt

objectClass: organizationalUnit

ou: computers


# Idmap, exemplo.pt

dn: ou=Idmap,dc=exemplo,dc=pt

objectClass: organizationalUnit

ou: Idmap


# NextFreeUnixId, exemplo.pt

dn: cn=NextFreeUnixId,dc=exemplo,dc=pt

objectClass: inetOrgPerson

objectClass: sambaUnixIdPool

uidNumber: 1000

gidNumber: 1000

cn: NextFreeUnixId

sn: NextFreeUnixId


# Administrator, users, exemplo.pt

dn: uid=Administrator,ou=users,dc=exemplo,dc=pt

cn: Administrator

sn: Administrator

objectClass: inetOrgPerson

objectClass: sambaSAMAccount

objectClass: posixAccount

objectClass: shadowAccount

gidNumber: 512

uid: Administrator

uidNumber: 0

homeDirectory: /home/Administrator

sambaPwdLastSet: 0

sambaLogonTime: 0

sambaLogoffTime: 2147483647

sambaKickoffTime: 2147483647

sambaPwdCanChange: 0

sambaPwdMustChange: 2147483647

sambaHomePath: \\exemplodc\homes\Administrator

sambaHomeDrive: H:

sambaProfilePath: \\exemplodc\profiles\Administrator\

sambaPrimaryGroupSID: S-1-5-21-2414157665-673202256-218108875-512

sambaLMPassword: XXX

sambaNTPassword: XXX

sambaAcctFlags: [U ]

sambaSID: S-1-5-21-2414157665-673202256-218108875-2996

loginShell: /bin/false

gecos: Netbios Domain Administrator


# nobody, users, exemplo.pt

dn: uid=nobody,ou=users,dc=exemplo,dc=pt

cn: nobody

sn: nobody

objectClass: inetOrgPerson

objectClass: sambaSAMAccount

objectClass: posixAccount

objectClass: shadowAccount

gidNumber: 514

uid: nobody

uidNumber: 999

homeDirectory: /dev/null

sambaPwdLastSet: 0

sambaLogonTime: 0

sambaLogoffTime: 2147483647

sambaKickoffTime: 2147483647

sambaPwdCanChange: 0

sambaPwdMustChange: 2147483647

sambaHomePath: \\exemplodc\homes\nobody

sambaHomeDrive: H:

sambaProfilePath: \\exemplodc\profiles\nobody

sambaPrimaryGroupSID: S-1-5-21-2414157665-673202256-218108875-514

sambaLMPassword: NO PASSWORDXXXXXXXXXXXXXXXXXXXXX

sambaNTPassword: NO PASSWORDXXXXXXXXXXXXXXXXXXXXX

sambaAcctFlags: [NU ]

sambaSID: S-1-5-21-2414157665-673202256-218108875-2998

loginShell: /bin/false


# Domain Admins, groups, exemplo.pt

dn: cn=Domain Admins,ou=groups,dc=exemplo,dc=pt

objectClass: posixGroup

objectClass: sambaGroupMapping

gidNumber: 512

cn: Domain Admins

memberUid: Administrator

description: Netbios Domain Administrators

sambaSID: S-1-5-21-2414157665-673202256-218108875-512

sambaGroupType: 2

displayName: Domain Admins


# Domain Users, groups, exemplo.pt

dn: cn=Domain Users,ou=groups,dc=exemplo,dc=pt

objectClass: posixGroup

objectClass: sambaGroupMapping

gidNumber: 513

cn: Domain Users

description: Netbios Domain Users

sambaSID: S-1-5-21-2414157665-673202256-218108875-513

sambaGroupType: 2

displayName: Domain Users


# Domain Guests, groups, exemplo.pt

dn: cn=Domain Guests,ou=groups,dc=exemplo,dc=pt

objectClass: posixGroup

objectClass: sambaGroupMapping

gidNumber: 514

cn: Domain Guests

description: Netbios Domain Guests Users

sambaSID: S-1-5-21-2414157665-673202256-218108875-514

sambaGroupType: 2

displayName: Domain Guests


# Print Operators, groups, exemplo.pt

dn: cn=Print Operators,ou=groups,dc=exemplo,dc=pt

objectClass: posixGroup

objectClass: sambaGroupMapping

gidNumber: 550

cn: Print Operators

description: Netbios Domain Print Operators

sambaSID: S-1-5-32-550

sambaGroupType: 5

displayName: Print Operators


# Backup Operators, groups, exemplo.pt

dn: cn=Backup Operators,ou=groups,dc=exemplo,dc=pt

objectClass: posixGroup

objectClass: sambaGroupMapping

gidNumber: 551

cn: Backup Operators

description: Netbios Domain Members can bypass file security to back up files

sambaSID: S-1-5-32-551

sambaGroupType: 5

displayName: Backup Operators


# Replicators, groups, exemplo.pt

dn: cn=Replicators,ou=groups,dc=exemplo,dc=pt

objectClass: posixGroup

objectClass: sambaGroupMapping

gidNumber: 552

cn: Replicators

description: Netbios Domain Supports file replication in a sambaDomainName

sambaSID: S-1-5-32-552

sambaGroupType: 5

displayName: Replicators


# search result

search: 2

result: 0 Success


# numResponses: 15

# numEntries: 14

[root@exemplodc root]#


Para que o servidor considere os utlizadores LDAP como utilizadores locais, é necessário que o mesmo use o LDAP como base de utilizadores.

Para isso é necessário configurar o ficheiro /etc/pam.d/system-auth e adicionar as seguintes entradas:


auth sufficient /lib/security/$ISA/pam_ldap.so use_first_pass

account [default=bad success=ok user_unknown=ignore] /lib/security/$ISA/pam_ldap.so

password sufficient /lib/security/$ISA/pam_ldap.so use_authtok

session optional /lib/security/$ISA/pam_ldap.so


No ficheiro /etc/ldap.conf são necessárias as seguintes entradas:


[root@exemplodc root]# cat /etc/ldap.conf

rootbinddn cn=Manager,dc=exemplo,dc=pt

nss_base_passwd dc=exemplo,dc=pt?sub

nss_base_shadow dc=exemplo,dc=pt?sub

nss_base_group ou=Groups,dc=exemplo,dc=pt?one

host 127.0.0.1

ssl no

pam_passwd md5

base dc=exemplo,dc=pt

pam_password md5

[root@exemplodc root]#


Ao executar o comando getent passwd já devemos obter além dos utilizadores locais, dois utilizadores extra: O Administrator e nobody


[root@exemplodc root]# getent passwd

root:x:0:0:root:/root:/bin/bash

bin:x:1:1:bin:/bin:/sbin/nologin

daemon:x:2:2:daemon:/sbin:/sbin/nologin

adm:x:3:4:adm:/var/adm:/sbin/nologin

lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

sync:x:5:0:sync:/sbin:/bin/sync

shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown

halt:x:7:0:halt:/sbin:/sbin/halt

mail:x:8:12:mail:/var/spool/mail:/sbin/nologin

news:x:9:13:news:/etc/news:

uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin

operator:x:11:0:operator:/root:/sbin/nologin

games:x:12:100:games:/usr/games:/sbin/nologin

gopher:x:13:30:gopher:/var/gopher:/sbin/nologin

ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin

nobody:x:99:99:Nobody:/:/sbin/nologin

rpm:x:37:37::/var/lib/rpm:/sbin/nologin

vcsa:x:69:69:virtual console memory owner:/dev:/sbin/nologin

nscd:x:28:28:NSCD Daemon:/:/sbin/nologin

sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin

rpc:x:32:32:Portmapper RPC user:/:/sbin/nologin

pcap:x:77:77::/var/arpwatch:/sbin/nologin

mailnull:x:47:47::/var/spool/mqueue:/sbin/nologin

smmsp:x:51:51::/var/spool/mqueue:/sbin/nologin

ldap:x:55:55:LDAP User:/var/lib/ldap:/bin/false

Administrator:x:0:512:Netbios Domain Administrator:/home/Administrator:/bin/false

nobody:x:999:514:nobody:/dev/null:/bin/false


Da mesma forma o comando getent group já deverá mostrar os grupos NT:


[root@exemplodc root]# getent group

root:x:0:root

bin:x:1:root,bin,daemon

daemon:x:2:root,bin,daemon

sys:x:3:root,bin,adm

adm:x:4:root,adm,daemon

tty:x:5:

disk:x:6:root

lp:x:7:daemon,lp

mem:x:8:

kmem:x:9:

wheel:x:10:root

mail:x:12:mail

news:x:13:news

uucp:x:14:uucp

man:x:15:

games:x:20:

gopher:x:30:

dip:x:40:

ftp:x:50:

lock:x:54:

nobody:x:99:

users:x:100:

rpm:x:37:

floppy:x:19:

vcsa:x:69:

utmp:x:22:

slocate:x:21:

nscd:x:28:

sshd:x:74:

rpc:x:32:

pcap:x:77:

mailnull:x:47:

smmsp:x:51:

ldap:x:55:

Domain Admins:x:512:Administrator

Domain Users:x:513:

Domain Guests:x:514:

Print Operators:x:550:

Backup Operators:x:551:

Replicators:x:552:

[root@exemplodc root]#



Samba Server


Nesta fase é necessário então passar à configuração do Samba em si.

Na parte inicial do ficheiro definem-se os valores globais a serem usados pelo servidor.


# Global parameters

[global]

# Definicao do nome do nosso dominio samba

workgroup = exemplo

# Nome netbios do nosso servidor

netbios name = exemplodc

# Descricao do nosso servidor

server string = Exemplo Samba Server Domain Controller

# Vamos restringir os interfaces que o samba vai usar

interfaces = 192.168.244.129

# Vamos restringir que subredes se podem ligar

# ao nosso servidor

hosts allow = 192.168.244.

# Definicao dos utilizadores com direitos

# de administradores

admin users= @teste

# Definicao do esquema de seguranca. Como queremos

# usar os users da maquina, o

# esquema a usar e' user

security = user

# Para que a passwords não sejam guardadas em cleartext

encrypt passwords = Yes

# Evitar as passwords demasiado curtas

min passwd length = 5

# Manter as passwords ldap/samba sincronizadas

ldap passwd sync = Yes

#unix password sync = Yes

# Script que permite alteracao da password via samba

passwd program = /usr/sbin/smbldap-passwd -u %u

#passwd chat = "Changing password for*\nNew password*" %n\n "*Retype new password*" %n\n"

# Algum nivel de logging

log level = 3

syslog = 3

# Onde guardar os logs

log file = /var/log/samba/log.%m

# Tamanho maximo em bytes

max log size = 100000

# Opcoes standard ideais para a maioria dos casos

socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192

# Como gerar os nomes dos ficheiros em formato 8.3

mangling method = hash2

# Que mapa de caracteres usar

Dos charset = 860

# Que mapa de caracteres unix usar. Este formato permite suportar

# o simbolo do euro

Unix charset = ISO8859-15

# Que script sera executado quando um utilizador faz login.

logon script = logon.bat

# Que drive sera automaticamente mapeada como sendo a home drive

# de cada um dos utilizadores

logon drive = H:

# Share a ser mapeado com a letra de home drive

logon home = \\exemplodc\homes\%U

# Indica onde se encontram os profiles dos users

# Para desactivar devera' ficar em branco

logon path =

# Linha que indica que este servidor e' um logon server

domain logons = Yes

# No caso de haver uma eleicao para ver quem e' o master na rede,

# o que tiver este valor mais elevado ganha

os level = 65

# Em casos em que o valor anterior e' igual, o servidor com esta opcao

# igual a yes tem um ligeiro incremento no "os level"

preferred master = Yes

# Indica se este servidor e' um master DC do dominio

domain master = Yes

# Usar para que o nosso servidor seja um WINS server

wins support = Yes

# Permite que seja usado um servidor LDAP para guardar as

# informacoes dos utilizadores

passdb backend = ldapsam:ldap://127.0.0.1/

# ldap filter = (&(objectclass=sambaSamAccount)(uid=%u))

# Que utilizador usar para connectar ao LDAP.

ldap admin dn = cn=Manager,dc=exemplo,dc=pt

# Sufixo a partir do qual serao efectuadas as operacoes no

# servidor LDAP

ldap suffix = dc=exemplo,dc=pt

# Onde estao armazenadas as informacoes dos grupos

ldap group suffix = ou=Groups

# Onde estao armazenadas as informacoes dos users

ldap user suffix = ou=Users

# Onde estao armazenadas as informacoes dos computadores

ldap machine suffix = ou=Computers

# Onde estao armazenadas as informacoes necessarias ao Winbind.

# O Winbind permite que em situações em que existem relações de

# confiança entre dominios e sempre que um utilizador do dominio confiado

# tente fazer login a um recurso do dominio que confia, seja criada uma conta

# para um utilizador no dominio que confia.

ldap idmap suffix = ou=idmap

# Nao estabelecer ligacoes seguras

ldap ssl = no

# Script que o samba usar para adicionar users

add user script = /usr/sbin/smbldap-useradd -m "%u"

# Apagar um user samba significa apagar toda a informacao

# do mesmo no LDAP. Nem sempre e' boa ideia, caso se tenhas users

# para outro sistemas/aplicacoes mas aos quais queremos retirar

# as caracteristicas samba. Por Ex. Um utilizador que passa a

# aceder apenas a maquinas Linux

ldap delete dn = Yes

# Script usado para apagar as contas dos users no Dominio

delete user script = /usr/sbin/smbldap-userdel "%u"

# Script que o samba usar para adicionar computadores ao dominio

add machine script = /usr/sbin/smbldap-useradd -w "%u"

# Script que o samba usar para adicionar grupos

add group script = /usr/sbin/smbldap-groupadd -p "%g"

# Script usado para apagar grupos no Dominio

delete group script = /usr/sbin/smbldap-groupdel "%g"

# Script que o samba usar para adicionar users aos grupos

add user to group script = /usr/sbin/smbldap-groupmod -m "%u" "%g"

# Script usado para remover users de grupos no Dominio

delete user from group script = /usr/sbin/smbldap-groupmod -x "%u" "%g"

# Script para configurar o grupo principal de cada um dos users.

# Geralmente trata-se de Domain Users

set primary group script = /usr/sbin/smbldap-usermod -g "%g" "%u"


# printers configuration

# Quem pode gerir as impressoras

printer admin = @"Print Operators"

# Indica que vamos fornecer impressoras partilhadas

load printers = Yes

# Que subsistema usar para imprimir

printing = cups

# Que printcap usar

printcap name = cups

# Tempo em minutos a partir do qual se considera que uma ligacao morreu.

# Este valor so' e' considerado se nao existir nenhum ficheiro aberto

# por parte do cliente.

deadtime = 10

# Que utilizador usar para os acesso nao autenticados

guest account = nobody

# Se for fornecido uma conta inexistente, considerar como sendo um

# acesso de guest

map to guest = Bad User

# Estas directorias estao inacessiveis

dont descend = /proc,/dev,/etc,/lib,/lost+found,/initrd

# Exibir aos clientes o Wizard de instalacao de impressoras

show add printer wizard = yes

# Manter a capitalizacao dos ficheiros

preserve case = yes

# O mesmo que o anterior em relacao a nomes no formato 8.3

short preserve case = yes

# Ao procurar ficheiros, ignorar a capitalizacao dos mesmos

case sensitive = no

# Definicoes standard para criacao dos ficheiros

create mask = 0640

# Permite que se use o proprio windows para definir as permissoes

# dos ficheiros. E' necessario que o kernel tenha ACL support

nt acl support = No

# Definicoes standard para criacao das directorias

directory mask = 0750


Após as definições globais, são criados cada um dos recursos que irão ser fornecidos pelo nosso servidor.


[homes]

# Definicao da partilha pessoal de cada utilizador comment = Directorio pessoal de %U, %u

# Permitir que os users escrevam na directoria

read only = No

# Permissoes standard a usar neste share

create mask = 0644

directory mask = 0775

# Indica que a directoria nao aparece ao fazer o network browse

browseable = No

# Share onde colocar os logon scripts dos utilizadores

[netlogon]

# Localizao do share no filesystem

path = /home/netlogon/

browseable = No

# Este e' um share so' de leitura

read only = yes

# Caso os roaming profiles estivessem activos poderiam ser definidos

# desta forma

;[profiles]

; path = /home/profiles

; read only = no

; create mask = 0600

; directory mask = 0700

; browseable = No

; guest ok = Yes

# Impede que o cliente guarde copias locais do ficheiros deste share

; csc policy = disable

# Obriga a que os ficheiros sejam criados com owner unix igual

# ao user que se esta' a ligar

; force user = %U

# Utilizadores que podem aceder ao share. Neste caso o user em si

# e os administradores do dominio

; valid users = %U "Domain Admins"

# Share das impressoras

[printers]

comment = Impressoras de rede

# Quem pode administrar as impressoras

printer admin = @"Print Operators"

# Permite que qualquer user possa imprimir mesmo sem se autenticar

guest ok = yes

# Indica que se trata de share de impressoras

printable = yes

# Onde colocar os ficheiros de spool

path = /home/spool/

browseable = No

# Desta forma os users nao podem escrever a nao ser via chamadas de

# impressao por parte dos clientes

read only = Yes

# Que comando usar para imprimir

print command = /usr/bin/lpr -P%p -r %s

# Como exibir a queue de impressao

lpq command = /usr/bin/lpq -P%p

# Que comando usar para cancelar um trabalho de impressao

lprm command = /usr/bin/lprm -P%p %j

# Share onde colocar as drivers das impressoras para instalacao

# automatica nos clientes

[print$]

path = /home/printers

guest ok = yes

browseable = No

read only = No

# Apenas estes utilizadores podem adicionar/alterar as drivers

write list = @"Print Operators"

create mask = 0664

directory mask = 0775

# Share que todos os utilizadores podem usar para partilhar

# ficheiros entre si

[public]

comment = Directoria Publica

path = /home/public

browseable = Yes

guest ok = Yes

read only = No

directory mask = 0775

create mask = 0664


Agora torna-se necessário criar as várias directorias que definimos


[root@exemplodc root]# mkdir /home/netlogon

[root@exemplodc root]# mkdir /home/spool

[root@exemplodc root]# mkdir /home/printers

[root@exemplodc root]# mkdir /home/public


Em seguida dar as permissões correctas.


[root@exemplodc root]# chmod 755 /home/netlogon/

[root@exemplodc root]# chmod 777 /home/spool/

[root@exemplodc root]# chgrp "Print Operators" /home/printers/

[root@exemplodc root]# chgrp "Domain Users" /home/public/

[root@exemplodc root]# chmod 2774 /home/printers/

[root@exemplodc root]# chmod 2770 /home/public/

[root@exemplodc root]# ls -lua /home/

total 24

drwxr-xr-x 6 root root 4096 Nov 22 17:23 .

drwxr-xr-x 21 root root 4096 Nov 22 17:03 ..

drwxr-xr-x 2 root root 4096 Nov 22 16:55 netlogon

drwxrwsr-- 2 root Print Operators 4096 Nov 22 16:56 printers

drwxrws--- 2 root Domain Users 4096 Nov 22 16:56 public

drwxrwxrwx 2 root root 4096 Nov 22 16:56 spool


Para que o Samba possa usar o LDAP é necessário armazenar localmente no ficheiro secrets.tdb a password do manager ldap como o comando
smbpasswd –w

A password tem que ser escrita no terminal o que acarreta algum problemas a nivel de segurança. É aconselhavel não permitir que seja observada a
introdução do comando, bem como a sua posterior eliminação do .bash_history.


[root@exemplodc root]# smbpasswd -w testepass

Setting stored password for "cn=Manager,dc=exemplo,dc=pt" in secrets.tdb

[root@exemplodc root]#


É chegada então a altura de (re)iniciar o nosso Samba Server.


[root@exemplodc root]# service smb restart

Shutting down SMB services: [ OK ]

Shutting down NMB services: [ OK ]

Starting SMB services: [ OK ]

Starting NMB services: [ OK ]

[root@exemplodc root]#


Podemos confirmar se tudo correu bem em /var/log/samba/smbd.log e /var/log/samba/nmbd.log. Neste caso como ainda não está configurado o CUPS server,
obtêm-se um erro ao processar a secção de impressão.


[root@exemplodc root]# cat /var/log/samba/smbd.log

[2004/11/22 17:30:22, 0] smbd/server.c:main(760)

smbd version 3.0.7-2.FC2 started.

Copyright Andrew Tridgell and the Samba Team 1992-2004

[2004/11/22 17:30:24, 0] printing/print_cups.c:cups_printer_fn(119)

Unable to connect to CUPS server localhost - Connection refused

[root@exemplodc root]#


[root@exemplodc root]# cat /var/log/samba/nmbd.log

[2004/11/22 17:30:24, 0] nmbd/nmbd.c:main(665)

Netbios nameserver version 3.0.7-2.FC2 started.

Copyright Andrew Tridgell and the Samba Team 1994-2004

[2004/11/22 17:30:26, 0] nmbd/asyncdns.c:start_async_dns(149)

started asyncdns process 2678

[2004/11/22 17:30:26, 0] nmbd/nmbd_logonnames.c:add_logon_names(163)

add_domain_logon_names:

Attempting to become logon server for workgroup EXEMPLO on subnet 192.168.244.129

[2004/11/22 17:30:26, 0] nmbd/nmbd_logonnames.c:add_logon_names(163)

add_domain_logon_names:

Attempting to become logon server for workgroup EXEMPLO on subnet UNICAST_SUBNET

[2004/11/22 17:30:26, 0] nmbd/nmbd_become_dmb.c:become_domain_master_browser_wins(327)

become_domain_master_browser_wins:

Attempting to become domain master browser on workgroup EXEMPLO, subnet UNICAST_SUBNET.

[2004/11/22 17:30:26, 0] nmbd/nmbd_become_dmb.c:become_domain_master_browser_wins(341)

become_domain_master_browser_wins: querying WINS server from IP 192.168.244.129 for domain master browser name EXEMPLO<1b> on workgroup EXEMPLO

[2004/11/22 17:30:26, 0] nmbd/nmbd_logonnames.c:become_logon_server_success(124)

become_logon_server_success: Samba is now a logon server for workgroup EXEMPLO on subnet UNICAST_SUBNET

[2004/11/22 17:30:26, 0] nmbd/nmbd_become_dmb.c:become_domain_master_stage2(113)

*****


Samba server EXEMPLODC is now a domain master browser for workgroup EXEMPLO on subnet UNICAST_SUBNET


*****

[2004/11/22 17:30:27, 0] nmbd/nmbd_become_dmb.c:become_domain_master_browser_bcast(282)

become_domain_master_browser_bcast:

Attempting to become domain master browser on workgroup EXEMPLO on subnet 192.168.244.129

[2004/11/22 17:30:27, 0] nmbd/nmbd_become_dmb.c:become_domain_master_browser_bcast(295)

become_domain_master_browser_bcast: querying subnet 192.168.244.129 for domain master browser on workgroup EXEMPLO

[2004/11/22 17:30:31, 0] nmbd/nmbd_logonnames.c:become_logon_server_success(124)

become_logon_server_success: Samba is now a logon server for workgroup EXEMPLO on subnet 192.168.244.129

[2004/11/22 17:30:35, 0] nmbd/nmbd_become_dmb.c:become_domain_master_stage2(113)

*****


Samba server EXEMPLODC is now a domain master browser for workgroup EXEMPLO on subnet 192.168.244.129


*****

[2004/11/22 17:30:49, 0] nmbd/nmbd_become_lmb.c:become_local_master_stage2(396)

*****


Samba name server EXEMPLODC is now a local master browser for workgroup EXEMPLO on subnet 192.168.244.129


*****

[root@exemplodc root]#


Como o utilizador Administrator foi iniciado pelo script smbldap-populate, não tem password definida e conta encontra-se para já desactivada. Para corrigir
esta situação usa-se o comando smbldap-passwd.


[root@exemplodc root]# smbldap-passwd Administrator

Changing password for Administrator

New password :

Retype new password :

[root@exemplodc root]#


Embora o servidor exemplodc seja o DC do dominio é necessário adiciona-lo a esse mesmo dominio.


[ root@exemplodc root]# net rpc join -U administrator

Password:

Joined domain EXEMPLO.

[root@exemplodc root]#



Impressão CUPS


Uma vez que serão fornecidos serviços de impressão é também necessário configurar o CUPS.

Na definição padrão, o CUPS vem configurado para aceitar apenas ligações locais. Como tanto o samba como o CUPS estão instalados na mesma máquina,
esta situação server perfeitamente.

Uma vez que vamos usar as drivers Windows para imprimir, é necessário activar a impressão raw no CUPS. Isto é conseguido retirando o comentário às
seguintes linhas:

No ficheiro /etc/cups/mime.types retirar o comentário de:


#application/octet-stream


########################################################################

#

# Raw print file support...

#

# Uncomment the following type and the application/octet-stream

# filter line in mime.convs to allow raw file printing without the

# -oraw option.

#


application/octet-stream


#

# End of "$Id: mime.types,v 1.28 2003/04/07 18:03:27 mike Exp $".


No ficheiro /etc/cups/mime.convs retirar o comentário de:


#application/octet-stream application/vnd.cups-raw 0


########################################################################

#

# Raw filter...

#

# Uncomment the following filter and the application/octet-stream type

# in mime.types to allow printing of arbitrary files without the -oraw

# option.

#


application/octet-stream application/vnd.cups-raw 0 -


#

# End of "$Id: mime.convs,v 1.19 2003/05/12 17:38:18 mike Exp $".


Iniciar o CUPS


[root@exemplodc root]# service cups start

Starting cups: [ OK ]

[root@exemplodc root]#


Verificar se está tudo ok.


[root@exemplodc root]# cat /var/log/cups/error_log

I [23/Nov/2004:15:46:03 +0000] Listening to 0:631

I [23/Nov/2004:15:46:03 +0000] Loaded configuration file "/etc/cups/cupsd.conf"

I [23/Nov/2004:15:46:03 +0000] Configured for up to 100 clients.

I [23/Nov/2004:15:46:03 +0000] Allowing up to 100 client connections per host.

I [23/Nov/2004:15:46:03 +0000] Full reload is required.

I [23/Nov/2004:15:46:13 +0000] LoadPPDs: Read "/etc/cups/ppds.dat", 13 PPDs...

I [23/Nov/2004:15:46:13 +0000] LoadPPDs: No new or changed PPDs...

I [23/Nov/2004:15:46:13 +0000] Full reload complete.

[root@exemplodc root]#


Para configurar/adicionar impressoras podemos usar a partir do localhost o interface web usando por exemplo o links.

Como o CUPS utiliza o porto 631 usa-se o comando:


[root@exemplodc root]# links http://localhost:631




Neste caso vamos simular uma impressora que está ligada à rede via Jet Direct. O procedimento para as outras situações é semelhante só mudando
as definições do Device:




Nesta parte da configuração deve ser seleccionada a opção Postscript. Embora se possa utilizar drivers para cada um dos modelos, como vamos deixar
o trabalho de processamento para as drivers dos clientes, esta é a melhor opção.


Selecciona-se uma driver genérica.



Após a instalação da impressora é aconselhavel que o samba re-leia as suas configurações de forma a assumir mais rapidamente a nova impressora.


[root@exemplodc root]# service smb reload

Reloading smb.conf file: [ OK ]

[root@exemplodc root]#


Uma das possibilidades que existe a nivel da partilha das impressoras nos servidores Windows é a hipotese das drivers serem copiadas automáticamente
do servidor para o cliente quando a impressora é instalada. Este comportamento também é possivel com o Samba, no entanto é necessário fornecer um
conjunto básico de drivers para que o processo funcione.

Os ficheiros são os seguinte:

Para o Windows 9x e ME:

ADFONTS.MFM

ADOBEPS4.DRV

ADOBEPS4.HLP

DEFPRTR2.PPD

ICONLIB.DLL

PSMON.DLL


Para o Windows NT, 2000 e XP:

ADOBEPS5.DLL

ADOBEPSU.DLL

ADOBEPSU.HLP


Estes ficheiros podem ser obtidos a partir do site da adobe http://www.adobe.com/

Deverá ser criada a directoria /usr/share/cups/drivers e copiados para lá os ficheiros indicados.

Atenção que tos ficheiros devem estar todos em maisculas, caso contrário o processo falha.


Em seguinda com o comando cupsaddsmb, adiciona-se a impressora

Neste caso foi utilizado o –v para mostrar o que acontece durante o processo.

Numa situação normal, é preferivel não usar, pois a própria password é mostrada no output.


[root@exemplodc drivers]# cupsaddsmb -v -U exemplo\\Administrator teste

Password for exemplo\Administrator required to access localhost via SAMBA:

Running command: smbclient //localhost/print\$ -N -U'exemplo\Administrator%testepass' -c 'mkdir W32X86;put /var/spool/cups/tmp/41a368be6ba91 W32X86/teste.PPD;put /usr/share/cups/drivers/ADOBEPS5.DLL W32X86/ADOBEPS5.DLL;put /usr/share/cups/drivers/ADOBEPSU.DLL W32X86/ADOBEPSU.DLL;put /usr/share/cups/drivers/ADOBEPSU.HLP W32X86/ADOBEPSU.HLP'

Domain=[EXEMPLO] OS=[Unix] Server=[Samba 3.0.7-2.FC2]

NT_STATUS_OBJECT_NAME_COLLISION making remote directory \W32X86

putting file /var/spool/cups/tmp/41a368be6ba91 as \W32X86/teste.PPD (520.9 kb/s) (average 520.9 kb/s)

putting file /usr/share/cups/drivers/ADOBEPS5.DLL as \W32X86/ADOBEPS5.DLL (5958.3 kb/s) (average 5052.1 kb/s)

putting file /usr/share/cups/drivers/ADOBEPSU.DLL as \W32X86/ADOBEPSU.DLL (4732.1 kb/s) (average 4976.2 kb/s)

putting file /usr/share/cups/drivers/ADOBEPSU.HLP as \W32X86/ADOBEPSU.HLP (1638.0 kb/s) (average 4691.5 kb/s)


Running command: rpcclient localhost -N -U'exemplo\Administrator%testepass' -c 'adddriver "Windows NT x86" "teste:ADOBEPS5.DLL:teste.PPD:ADOBEPSU.DLL:ADOBEPSU.HLP:NULL:RAW:NULL"'

Printer Driver teste successfully installed.


Running command: smbclient //localhost/print\$ -N -U'exemplo\Administrator%testepass' -c 'mkdir WIN40;put /var/spool/cups/tmp/41a368be6ba91 WIN40/teste.PPD;put /usr/share/cups/drivers/ADFONTS.MFM WIN40/ADFONTS.MFM;put /usr/share/cups/drivers/ADOBEPS4.DRV WIN40/ADOBEPS4.DRV;put /usr/share/cups/drivers/ADOBEPS4.HLP WIN40/ADOBEPS4.HLP;put /usr/share/cups/drivers/DEFPRTR2.PPD WIN40/DEFPRTR2.PPD;put /usr/share/cups/drivers/ICONLIB.DLL WIN40/ICONLIB.DLL;put /usr/share/cups/drivers/PSMON.DLL WIN40/PSMON.DLL;'

Domain=[EXEMPLO] OS=[Unix] Server=[Samba 3.0.7-2.FC2]

NT_STATUS_OBJECT_NAME_COLLISION making remote directory \WIN40

putting file /var/spool/cups/tmp/41a368be6ba91 as \WIN40/teste.PPD (520.9 kb/s) (average 520.9 kb/s)

putting file /usr/share/cups/drivers/ADFONTS.MFM as \WIN40/ADFONTS.MFM (6387.3 kb/s) (average 5533.0 kb/s)

putting file /usr/share/cups/drivers/ADOBEPS4.DRV as \WIN40/ADOBEPS4.DRV (4394.0 kb/s) (average 4694.0 kb/s)

putting file /usr/share/cups/drivers/ADOBEPS4.HLP as \WIN40/ADOBEPS4.HLP (2740.8 kb/s) (average 4397.4 kb/s)

putting file /usr/share/cups/drivers/DEFPRTR2.PPD as \WIN40/DEFPRTR2.PPD (1013.5 kb/s) (average 4304.6 kb/s)

putting file /usr/share/cups/drivers/ICONLIB.DLL as \WIN40/ICONLIB.DLL (3117.8 kb/s) (average 4218.7 kb/s)

putting file /usr/share/cups/drivers/PSMON.DLL as \WIN40/PSMON.DLL (2333.3 kb/s) (average 4134.1 kb/s)


Running command: rpcclient localhost -N -U'exemplo\Administrator%testepass' -c 'adddriver "Windows 4.0" "teste:ADOBEPS4.DRV:teste.PPD:NULL:ADOBEPS4.HLP:PSMON.DLL:RAW:ADOBEPS4.DRV,teste.PPD,ADOBEPS4.HLP,PSMON.DLL,ADFONTS.MFM,DEFPRTR2.PPD,ICONLIB.DLL"'

Printer Driver teste successfully installed.


Running command: rpcclient localhost -N -U'exemplo\Administrator%testepass' -c 'setdriver teste teste'

Succesfully set teste to driver teste.


[root@exemplodc drivers]#


É agora então possivel adicionar a impressora a um cliente Windows como se a impressora se encontrasse num servidor windows.

Em seguida, deve alterar-se a driver no servidor a partir do cliente utilizando o processo normal.

Neste exemplo, será usada uma driver para a impressora HP 975Cxi.





Como se pode ver as drivers estão a ser copiadas para o servidor.



Depois é apenas necessário configurar as opções da impressora ( Tipo de papel padrão, resolução, etc)




3. Gestão do Dominio



Smbldap-tools

As smbldap-tools permite a gestão completa do dominio através da shell.



Criação/remoção de utilizadores:

Para criar um utilizador usa-se o comando smbldap-usadduser. ~

Existem vários valores que podem ou não ser configurados, mas o comando básico resume-se a smblpdap-useradd –P nome_utilizador.


[root@exemplodc root]# smbldap-useradd –a -P testeuser

Changing password for testeuser

New password :

Retype new password :

[root@exemplodc root]#


[root@exemplodc root]# smbldap-usershow testeuser

dn: uid=testeuser,ou=users,dc=exemplo,dc=pt

objectClass: top,inetOrgPerson,posixAccount,shadowAccount,sambaSAMAccount

cn: testeuser

sn: testeuser

uid: testeuser

uidNumber: 1008

gidNumber: 513

homeDirectory: /home/testeuser

loginShell: /bin/bash

gecos: System User

description: System User

sambaLogonTime: 0

sambaLogoffTime: 2147483647

sambaKickoffTime: 2147483647

sambaPwdCanChange: 0

displayName: System User

sambaSID: S-1-5-21-2414157665-673202256-218108875-3016

sambaPrimaryGroupSID: S-1-5-21-2414157665-673202256-218108875-513

sambaHomePath: \\exemplodc\homes\testeuser

sambaHomeDrive: H:

sambaLMPassword: 02D093CE93078E8FAAD3B435B51404EE

sambaAcctFlags: [U]

sambaNTPassword: CAF13C4F321B608B27FD75D2549BA53C

sambaPwdLastSet: 1101471158

sambaPwdMustChange: 1105359158

userPassword: {MD5}aY3BnUicTk23PiinE+qwew==


Usar o comando desta forma básica é simples, mas no nosso caso por exemplo, embora tenha ficado definida, a home drectory não foi criada.

Uma hipotese seria criar manualmente a home directory, e dar-lhe as permissões necessárias.

Outra seria eliminar o utilizador e voltar a cria-lo. Neste caso para demonstrar o utilizador vai ser recriado.


Primeiro elimina-se o user.


[root@exemplodc root]# smbldap-userdel testeuser

[root@exemplodc root]#


Em seguida recria-se. Neste caso além de se criar a home directory, vai também ser definido um Logon script diferente do padrão e o Nome Completo.


[root@exemplodc root]# smbldap-useradd -a -P -m -c "Utilizador de teste" -E login.cmd testeuser

Changing password for testeuser

New password :

Retype new password :


[root@exemplodc root]# smbldap-usershow testeuser

dn: uid=testeuser,ou=users,dc=exemplo,dc=pt

objectClass: top,inetOrgPerson,posixAccount,shadowAccount,sambaSAMAccount

cn: Utilizador de teste

sn: testeuser

uid: testeuser

uidNumber: 1015

gidNumber: 513

homeDirectory: /home/testeuser

loginShell: /bin/bash

gecos: Utilizador de teste

description: Utilizador de teste

sambaLogonTime: 0

sambaLogoffTime: 2147483647

sambaKickoffTime: 2147483647

sambaPwdCanChange: 0

displayName: Utilizador de teste

sambaSID: S-1-5-21-2414157665-673202256-218108875-3030

sambaPrimaryGroupSID: S-1-5-21-2414157665-673202256-218108875-513

sambaLogonScript: login.cmd

sambaHomePath: \\exemplodc\homes\testeuser

sambaHomeDrive: H:

sambaLMPassword: 02D093CE93078E8FAAD3B435B51404EE

sambaAcctFlags: [U]

sambaNTPassword: CAF13C4F321B608B27FD75D2549BA53C

sambaPwdLastSet: 1101473026

sambaPwdMustChange: 1105361026

userPassword: {MD5}aY3BnUicTk23PiinE+qwew==

[root@exemplodc root]#


Caso seja necessário alterar alguma das propriedades do utilizador, usa-se o smbldap-usermod.

Como por exemplo para definir que o utilizador tem que mudar a password no próximo login.


[root@exemplodc root]# smbldap-usermod -B1 testeuser


Ou então que o utilizador passou a pertencer ao grupo “Domain Admins”


[root@exemplodc root]# smbldap-groupshow "Domain Admins"

dn: cn=Domain Admins,ou=groups,dc=exemplo,dc=pt

objectClass: posixGroup,sambaGroupMapping

gidNumber: 512

cn: Domain Admins

memberUid: Administrator

description: Netbios Domain Administrators

sambaSID: S-1-5-21-2414157665-673202256-218108875-512

sambaGroupType: 2

displayName: Domain Admins


[root@exemplodc root]# smbldap-usermod -G "Domain Admins" testeuser


[root@exemplodc root]# smbldap-groupshow "Domain Admins"

dn: cn=Domain Admins,ou=groups,dc=exemplo,dc=pt

objectClass: posixGroup,sambaGroupMapping

gidNumber: 512

cn: Domain Admins

memberUid: Administrator,testeuser

description: Netbios Domain Administrators

sambaSID: S-1-5-21-2414157665-673202256-218108875-512

sambaGroupType: 2

displayName: Domain Admins

[root@exemplodc root]#


Para mudar a password do utilizador usa-se o comando smbldap-passwd


[root@exemplodc home]# smbldap-passwd testeuser

Changing password for testeuser

New password :

Retype new password :

[root@exemplodc home]#



Criação/remoção de grupos


Da mesma forma também se pode utilizar a as smbldap-tools para gerir os vários grupos.

Para criar um grupo usa-se o smbldap-groupadd


[root@exemplodc home]# smbldap-groupadd -a testgroup


Para ver as caracteristicas de um grupo usa-se o smbldap-groupshow.


[root@exemplodc home]# smbldap-groupshow testgroup

dn: cn=testgroup,ou=Groups,dc=exemplo,dc=pt

objectClass: posixGroup,sambaGroupMapping

cn: testgroup

gidNumber: 1001

sambaSID: S-1-5-21-2414157665-673202256-218108875-3003

sambaGroupType: 2

displayName: testgroup


E para alterar as caracteristicas ( Nome, adicionar/remover membros,etc) usa-se o smbldap-groupmod.

Para adicionar um utilizador a um grupo:


[root@exemplodc home]# smbldap-groupmod -m testeuser testgroup

adding user testeuser to group testgroup


[root@exemplodc home]# smbldap-groupshow testgroup

dn: cn=testgroup,ou=Groups,dc=exemplo,dc=pt

objectClass: posixGroup,sambaGroupMapping

cn: testgroup

gidNumber: 1001

sambaSID: S-1-5-21-2414157665-673202256-218108875-3003

sambaGroupType: 2

displayName: testgroup

memberUid: testeuser

[root@exemplodc home]#


Os commandos smblpda-usermod –G e smbldap-group –m têm o mesmo resultado prático caso seja apenas um utilizador e um grupo.

Para remover.


[root@exemplodc home]# smbldap-groupmod -x testeuser testgroup

deleting user testeuser from group testgroup

[root@exemplodc home]#



Windows user manager e server manager


A gestão dos utilizadores através destas ferramentas Windows é em tudo igual à gestão de utilizadores em dominio windows nativo


Ficheiros de configuração usados:

smb.conf
ldap.conf
slapd.conf
smblpdap.conf
smbldap_bind.conf
cupsd.conf


TODO:

Wokstation Linux a usar recursos samba.

Gestão utilizadores/grupos via LAM (http://lam.sourceforge.net/)

Gestão utilizadores/grupos via IMC (http://www.idealx.org/prj/imc/)




Created by joaquim.machado
Contributors : bruno.guerreiro
Last modified 2004-12-13 04:02 PM
Task Force OSS
Acha que deveria ser criada um "Task Force" de consultadoria da AP para a AP, no âmbito da implementação de soluções OSS?
Sim
Não

[ Results | Polls ]
Votes : 985
 
 

Powered by Plone

This site conforms to the following standards: