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/)
Contributors : bruno.guerreiro
Last modified 2004-12-13 04:02 PM