Servidor de arquivos integrado com Active Directory (AD) e quota de usuário/grupo
Neste artigo vou ensinar como criar um servidor de arquivos totalmente integrado com o AD e com quota de usuários e grupos. Me baseei no Red Hat, mas com atenção o método aqui descrito funciona em qualquer distro.
Instalando o Samba
Bem, em primeiro lugar precisamos fazer o download do Samba, que pode ser encontrado em:
Feito o download, copie-o para o diretório /usr/local/src e vamos à instalação:
# cp samba-3.0.21c.tar.gz /usr/local/src
# cd /usr/local/src
# tar -zxvf samba-3.0.21c.tar.gz
# cd samba-3.0.21c
Personalizando nossa instalação, compilando e instalando:
# ./configure \
--bindir=/bin \
--sbindir=/usr/sbin \
--with-winbind \
--with-winbind-auth-challenge \
--with-ads=/usr/ \
--with-ldap=/usr/ \
--with-krb5 \
--with-automount \
--with-smbmount
# make
# make install
Agora vamos configurar o Samba. Edite o arquivo smb.conf, que em nosso caso se encontra em /usr/local/samba/lib.
Deixe-o da seguinte maneira:
# vim /usr/local/samba/lib/smb.conf
Feito o download, copie-o para o diretório /usr/local/src e vamos à instalação:
# cp samba-3.0.21c.tar.gz /usr/local/src
# cd /usr/local/src
# tar -zxvf samba-3.0.21c.tar.gz
# cd samba-3.0.21c
Personalizando nossa instalação, compilando e instalando:
# ./configure \
--bindir=/bin \
--sbindir=/usr/sbin \
--with-winbind \
--with-winbind-auth-challenge \
--with-ads=/usr/ \
--with-ldap=/usr/ \
--with-krb5 \
--with-automount \
--with-smbmount
# make
# make install
Agora vamos configurar o Samba. Edite o arquivo smb.conf, que em nosso caso se encontra em /usr/local/samba/lib.
Deixe-o da seguinte maneira:
# vim /usr/local/samba/lib/smb.conf
[global]
workgroup = DOMINIO
server string = File server
netbios name = NOME DO SERVIDOR
log file = /var/log/samba/%m.log
max log size = 50
debug level = 1
security = domain
encrypt passwords = yes
template homedir = /home/%D/%U
smb passwd file = /etc/samba/smbpasswd
username map = /etc/samba/smbusers
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
unix charset = iso-8859-1
password server = *
winbind uid = 10000-20000
winbind gid = 10000-20000
winbind enum users = yes
winbind enum groups = yes
winbind use default domain = yes
passdb backend = smbpasswd
veto files = /*.exe/*.mp3/*.bat/*.{*}/ # Arquivos proibidos de serem copiados para o servidor.
[homes]
comment = Diretório Pessoal - %D\%U - %u
valid users = %D\%U
read only = No
browseable = yes
root preexec = mkdir /home/%D/%U ; chown %U:root /home/%D/%U ; chmod u=wrxt,o-wrxX,g-wrxX /home/%D/%U
vfs object = audit
[Informatica-Arquivos]
path = /grupos/informatica-arquivos
read only = No
browseable = No
valid users = SJESinformatica
force create mode = 770
root preexec = if `mkdir /grupos/SESUT-Arquivos` ; then chown administrator:Informatica /grupos/informatica; chmod o-wrx,g=wrx,u+wrx /grupos/informatica; fi
vfs object = audit
workgroup = DOMINIO
server string = File server
netbios name = NOME DO SERVIDOR
log file = /var/log/samba/%m.log
max log size = 50
debug level = 1
security = domain
encrypt passwords = yes
template homedir = /home/%D/%U
smb passwd file = /etc/samba/smbpasswd
username map = /etc/samba/smbusers
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
unix charset = iso-8859-1
password server = *
winbind uid = 10000-20000
winbind gid = 10000-20000
winbind enum users = yes
winbind enum groups = yes
winbind use default domain = yes
passdb backend = smbpasswd
veto files = /*.exe/*.mp3/*.bat/*.{*}/ # Arquivos proibidos de serem copiados para o servidor.
[homes]
comment = Diretório Pessoal - %D\%U - %u
valid users = %D\%U
read only = No
browseable = yes
root preexec = mkdir /home/%D/%U ; chown %U:root /home/%D/%U ; chmod u=wrxt,o-wrxX,g-wrxX /home/%D/%U
vfs object = audit
[Informatica-Arquivos]
path = /grupos/informatica-arquivos
read only = No
browseable = No
valid users = SJESinformatica
force create mode = 770
root preexec = if `mkdir /grupos/SESUT-Arquivos` ; then chown administrator:Informatica /grupos/informatica; chmod o-wrx,g=wrx,u+wrx /grupos/informatica; fi
vfs object = audit
Explicando o smb.conf:
O compartilhamento chamado HOMES será o diretório pessoal de cada usuário, a pasta será criada dentro da partição /home quando o usuário acessá-la pela primeira vez.
O compartilhamento chamado Informatica-Arquivos será o diretório de armazenamento de dados do grupo Informatica, a pasta será criada dentro da partição chamada /grupos quando qualquer usuário membro do grupo Informatica tentar acessá-la.
Logo após altere o arquivo /etc/nsswitch.conf da seguinte forma:
passwd: compat winbind group: compat winbind
Inicie o Samba e o winbind:
# smbd start
# nmbd start
# winbindd start