El objetivo de esto es compartir una o varias carpetas alojadas en un nas home / pyme tipo iomega ix2/ix4 pero teniendo un mayor control sobre los permiso y cuotas los recursos compartidos que las que el mismo nas ofrece, a demas a permitira acceso o no a diferentes usuarios gracias a la integracion de samba con active directory.
La unica limitante que encontre hasta el momento fue que no puedo presentarle al user un disco de tamaño predeterminado, claro esta que me refiero a un tamaño diferente al real. Como lo que yo necesito es asignar una cuota a un grupo de usuarios, lo que termine haciendo, fue crear un disco virtual del tamaño que necesito y lo comparto por samba. El dia de mañana si se queda corto, tengo la opcion de expandirlo.
Preparando la unidad a compartir
Una vez agregado el disco virtual ya particionado y formateado creo el directorio donde sera montado, mkdir /mnt/Shares
Luego edito el /etc/fstab agregando la siguiente linea
/dev/vda1 /mnt/Shares ext4 errors=remount-ro 0 1
Aplicar los cambios con mount -a y verificar que la unidad se encuentre montada con el comando df -h
Instalación de Samba junto con los complementos para integracion con AD
aptitude install samba-* winbind krb5-admin-server krb5-kdc krb5-user ntp ntpdate -y
Sincronizando la hora con la del AD (es muy importante que ambos posean la misma fecha/hora)
ntpdate -u adserver.dominio.local (o en su defecto la ip o nombre del ntp server que utilizas para tu red)
update-rc.d ntp defaults
Configurando Samba
Reemplazar el contenido de /etc/samba/smb.conf por el siguiente y adecuarlo a tu caso particular
[global]
workgroup = DOMINIO
realm = DOMINIO
security = ads
password server = adserver.dominio.local
idmap uid = 500-200000
idmap gid = 500-200000
winbind separator = @
template homedir = /mnt/Share/homes/%U
template shell = /bin/bash
winbind use default domain = yes
winbind offline logon = false
winbind enum users = yes
winbind enum groups = yes
winbind use default domain = yes
winbind nested groups = yes
[Prueba1]
write list = @grupo1,@administracion,@”domain admins”
path = /mnt/Shares/prueba1
create mode = 0660
directory mode = 0770
[Prueba2]
write list = @grupo2
path = /mnt/Shares/pureba2
Crear los directorios de ejemplo y les dejo permisos full, total los controlare luego desde el samba
mkdir /mnt/Shares/prueba1
mkdir /mnt/Shares/prueba2
chmod 777 /mnt/Shares/prueba1
chmod 777 /mnt/Shares/prueba2
editar /etc/krb5.conf de forma que quede de la siguente manera
[logging]
default = FILE:/var/log/krb5libs.log
kdc = FILE:/var/log/krb5kdc.log
admin_server = FILE:/var/log/kadmind.log
[libdefaults]
default_realm = DOMINIO.LOCAL
dns_lookup_realm = false
dns_lookup_kdc = false
ticket_lifetime = 24h
renew_lifetime = 7d
forwardable = true
[realms]
DOMINIO.LOCAL = {
kdc = adserver.dominio.local
admin_server = adserver.dominio.local
}
[domain_realm]
.dominio.local = DOMINIO.LOCAL
dominio.local = DOMINIO.LOCAL
luego service smb restart
net join ads -U administrator -S adserver.dominio.local
el resultado deberia de ser “Joined domain DOMINIO”
configurar /etc/nsswitch.conf
passwd: files winbind
shadow: files winbind
group: files winbind
service winbind restart
wbinfo -u (nos debe de mostrar el listado de usuarios)
wbinfo -g (lista los grupos)
Para agregar los usuarios y grupos del AD
getent passwd
getent group
Saludos!