Administración de usuarios do dominio con Samba

De Manuais Informática - IES San Clemente.
Revisión del 02:10 19 ene 2017 de Antonio (discusión | contribuciones) (Conclusións)
(dif) ← Revisión anterior | Revisión actual (dif) | Revisión siguiente → (dif)
Ir a la navegación Ir a la búsqueda

Introdución

  • Neste apartado imos usar as utilidades anteriores para administrar os usuarios do dominio samba, tendo en conta que o servidor samba está tomando os usuarios do servidor LDAP.
  • Engadiremos aos grupos e aos usuarios xa existentes os atributos propios do esquema samba.
  • Engadiremos a usuaria paz que falta por incluír no sistema co seu directorio home


00 Dominios Linux parte 01 Usuarios.jpg


  • Na seguinte imaxe amosa onde estará a carpeta persoal de paz:

00 Dominios Linux Escenarios parte 02 Permisos Usuarios.jpg

Utilidades smbldap-tools

  • Como xa vimos o paquete smbldap-tools ofrece un conxunto de scripts para a administración dos usuarios e grupos do dominio samba.
  • Comentaremos as operacións máis importantes a continuación, aínda que no noso caso recomendamos utilizar unha ferramenta gráfica, a ser posible.
  • A continuación amósanse os comandos asociados á utilidade:
smbldap-
  smbldap-groupadd   smbldap-groupshow  smbldap-userdel    smbldap-usershow
  smbldap-groupdel   smbldap-passwd     smbldap-userinfo   
  smbldap-grouplist  smbldap-populate   smbldap-userlist   
  smbldap-groupmod   smbldap-useradd    smbldap-usermod

Xestion de grupos

  • Imos a continuación ver tanto con smb-tools como con LAM como xestionar grupos

Listar os grupos

smbldap-grouplist -?
  Usage: /usr/sbin/smbldap-grouplist [dtS?] [user template]
  -d     Show displayName
  -t     Show samba group type
  -S     Show samba SID
  -?     show the help message
smbldap-grouplist -tS
gid  |cn                   |sambaGroupType|sambaSID                                       |

10000 |g-usuarios           |-|-|
10001 |g-profes             |-|-|
10002 |g-dam1-profes        |-|-|
10003 |g-dam2-profes        |-|-|
10004 |g-alum               |-|-|
10005 |g-dam1-alum          |-|-|
10006 |g-dam2-alum          |-|-|
 512 |Domain Admins        |domain        |S-1-5-21-3472892566-1518861306-3316237868-512  |
 513 |Domain Users         |domain        |S-1-5-21-3472892566-1518861306-3316237868-513  |
 514 |Domain Guests        |domain        |S-1-5-21-3472892566-1518861306-3316237868-514  |
 515 |Domain Computers     |domain        |S-1-5-21-3472892566-1518861306-3316237868-515  |
 544 |Administrators       |local         |S-1-5-32-544                                   |
 548 |Account Operators    |local         |S-1-5-32-548                                   |
 550 |Print Operators      |local         |S-1-5-32-550                                   |
 551 |Backup Operators     |local         |S-1-5-32-551                                   |
 552 |Replicators          |local         |S-1-5-32-552  


ldapsearch -x -LLL -b dc=iescalquera,dc=local cn="g-usuarios"
ou
smbldap-groupshow g-usuarios
  dn: cn=g-usuarios,ou=grupos,dc=iescalquera,dc=local
  objectClass: posixGroup
  cn: g-usuarios
  gidNumber: 10000
ldapsearch -x -LLL -b dc=iescalquera,dc=local cn="Domain U*"
  dn: cn=Domain Users,ou=grupos,dc=iescalquera,dc=local
  objectClass: top
  objectClass: posixGroup
  objectClass: sambaGroupMapping
  cn: Domain Users
  gidNumber: 513
  description: Netbios Domain Users
  sambaSID: S-1-5-21-3472892566-1518861306-3316237868-513
  sambaGroupType: 2
  displayName: Domain Users
smbldap-groupshow "Domain Users"
  dn: cn=Domain Users,ou=grupos,dc=iescalquera,dc=local
  objectClass: top,posixGroup,sambaGroupMapping
  cn: Domain Users
  gidNumber: 513
  description: Netbios Domain Users
  sambaSID: S-1-5-21-3472892566-1518861306-3316237868-513
  sambaGroupType: 2
  displayName: Domain Users


Engadir un grupo. Engadir atruibutos SAMBA

  • Neste apartado imos ver como engadir un novo grupo e como engadir atributos samba a un grupo xa creado.
smbldap-groupadd -?
  (c) Jerome Tournier - (jtournier@gmail.com)- Licensed under the GPL
  Usage: /usr/sbin/smbldap-groupadd [-abgoprst?] groupname
    -a   add automatic group mapping entry
    -b   create a AIX group
    -g   gid
    -o   gid is not unique
    -p   print the gidNumber to stdout
    -r   group-rid
    -s   group-sid
    -t   group-type
    -?   show this help message
smbldap-groupadd -a g-borrar

#Amosar info sobre o grupo
smbldap-groupshow g-borrar
dn: cn=g-borrar,ou=grupos,dc=iescalquera,dc=local
objectClass: top,posixGroup,sambaGroupMapping
cn: g-borrar 
gidNumber: 1002
sambaSID: S-1-5-21-3472892566-1518861306-3316237868-3005
sambaGroupType: 2
displayName: g-borrar

  • En LAM podemos ver os grupos, os seus GIDs, etc.

Dl 2014 parte3 lam 28.jpeg

  • Para engadir os atributos samba a un grupo LDAP existente tamén poderíamos usar un ficheiro LDIF como fixemos en partes anteriores do curso.
  • Non sería preciso engadir atributos SAMBA aos grupos existentes, pois o acceso ás carpetas do esqueleto é controlado polo servidor dserver00, e aí xa están definidos a que grupos pertence o usuario e que a que carpetas poden acceder os grupos aos que pertence. Pero se non engadíramos os atributos samba eses grupos non se van poder manexar dende clientes Windows, por exemplo para dar permisos a unha carpeta, controlar a que grupos pertence un usuario, etc.
  • Por tanto, é aconsellable engadir os atributos SAMBA ao resto dos grupos creados previamente no LDAP:
  • E obter esta lista:
smbldap-grouplist -tS
gid  |cn                   |sambaGroupType|sambaSID                                       |

10000 |g-usuarios           |domain        |S-1-5-21-3472892566-1518861306-3316237868-21001|
10001 |g-profes             |domain        |S-1-5-21-3472892566-1518861306-3316237868-21003|
10002 |g-dam1-profes        |domain        |S-1-5-21-3472892566-1518861306-3316237868-21005|
10003 |g-dam2-profes        |domain        |S-1-5-21-3472892566-1518861306-3316237868-21007|
10004 |g-alum               |domain        |S-1-5-21-3472892566-1518861306-3316237868-21009|
10005 |g-dam1-alum          |domain        |S-1-5-21-3472892566-1518861306-3316237868-21011|
10006 |g-dam2-alum          |domain        |S-1-5-21-3472892566-1518861306-3316237868-21013|
 512 |Domain Admins        |domain        |S-1-5-21-3472892566-1518861306-3316237868-512  |
 513 |Domain Users         |domain        |S-1-5-21-3472892566-1518861306-3316237868-513  |
 514 |Domain Guests        |domain        |S-1-5-21-3472892566-1518861306-3316237868-514  |
 515 |Domain Computers     |domain        |S-1-5-21-3472892566-1518861306-3316237868-515  |
 544 |Administrators       |local         |S-1-5-32-544                                   |
 548 |Account Operators    |local         |S-1-5-32-548                                   |
 550 |Print Operators      |local         |S-1-5-32-550                                   |
 551 |Backup Operators     |local         |S-1-5-32-551                                   |
 552 |Replicators          |local         |S-1-5-32-552                                   |
1002 |g-borrar             |domain        |S-1-5-21-3472892566-1518861306-3316237868-3005 |

Eliminar un grupo

  • Pódese eliminar un grupo dende LAM/JXplorer, coas utilidades, etc.
smbldap-groupdel g-borrar

Xestión de usuarios

  • Imos facer agora o propio coa xestión de usuarios


Listar os usuarios

smbldap-userlist -u
uid  |username             

10000 |sol                  |
10001 |noe                  |
10002 |mon                  |
10003 |tom                  |
10004 |pia                  |
    0 |root                 |
65534 |nobody               |


ldapsearch -x -LLL -b dc=iescalquera,dc=local uid=sol
dn: uid=sol,ou=profes,ou=usuarios,dc=iescalquera,dc=local
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: shadowAccount
uid: sol
sn:: TMO6YQ==
cn:: UHJvZmUgLSBTb2wgTMO6YQ==
givenName: Sol
uidNumber: 10000
gidNumber: 10000
loginShell: /bin/bash
mail: sol@iescalquera.local
initials: SL
shadowExpire: -1
gecos: "Profe - Sol Lua"
homeDirectory: /home/iescalquera/profes/sol


smbldap-usershow sol
dn: uid=sol,ou=profes,ou=usuarios,dc=iescalquera,dc=local
objectClass: inetOrgPerson,posixAccount,shadowAccount,sambaSamAccount
uid: sol
sn: Lúa
cn: Profe - Sol Lúa
givenName: Sol
uidNumber: 10000
gidNumber: 10000
loginShell: /bin/bash
mail: sol@iescalquera.local
initials: SL
shadowExpire: -1
gecos: "Profe - Sol Lua"
homeDirectory: /home/iescalquera/profes/sol


  • En LAM tamén se ve que a usuaria sol non ten atributos SAMBA.
  • Non llos imos engadir por agora

Dl 2014 parte3 lam 32.jpeg

Engadir atributos SAMBA aos usuarios existentes no LDAP

  • Como antes, cos grupos, aos usuarios existentes no LDAP hai que engadirlle os atributos SAMBA no LDAP e poñerlle o contrasinal SAMBA.
  • Activar un usuario existente no LDAP como usuario samba permite tomar un usuario xa existente no LDAP e activalo como usuario samba (o que implicará engadirlle unha serie de atributos no seu obxecto no LDAP definidos no esquema de samba).
  • Hai que ter en conta que os usuarios que tiñamos xa dados de alta no LDAP non estarán activados como usuarios samba.
  • O comando solicitará o contrasinal de samba para este usuario, que non ten por que coincidir co contrasinal propio do usuario no LDAP (aínda que normalmente é aconsellable que os usuarios teñan o mesmo contrasinal tanto para entrar en Windows como en Linux), e será o contrasinal que usará o usuario para acceder dende os equipos Windows:
  • Nesta ocasión imos usar o comando smbpasswd
smbpasswd -h
When run by root:
    smbpasswd [options] [username]
otherwise:
    smbpasswd [options]

options:
  -L                   local mode (must be first option)
  -h                   print this usage message
  -s                   use stdin for password prompt
  -c smb.conf file     Use the given path to the smb.conf file
  -D LEVEL             debug level
  -r MACHINE           remote machine
  -U USER              remote username
extra options when run by root or in local mode:
  -a                   add user
  -d                   disable user
  -e                   enable user
  -i                   interdomain trust account
  -m                   machine trust account
  -n                   set no password
  -W                   use stdin ldap admin password
  -w PASSWORD          ldap admin password
  -x                   delete user
  -R ORDER             name resolve order


smbpasswd -a sol
New SMB password:
Retype new SMB password:
Added user sol.


  • Observar como se crearon os atributos SAMBA para a usuaria sol:
smbldap-usershow sol
dn: uid=sol,ou=profes,ou=usuarios,dc=iescalquera,dc=local
objectClass: inetOrgPerson,posixAccount,shadowAccount,sambaSamAccount
uid: sol
sn: Lúa
cn: Profe - Sol Lúa
givenName: Sol
uidNumber: 10000
gidNumber: 10000
loginShell: /bin/bash
mail: sol@iescalquera.local
initials: SL
shadowExpire: -1
gecos: "Profe - Sol Lua"
homeDirectory: /home/iescalquera/profes/sol
shadowLastChange: 16203
shadowMax: 45
sambaSID: S-1-5-21-3472892566-1518861306-3316237868-1002
displayName: "Profe - Sol Lua"
sambaNTPassword: 3EC585243C919F4217175E1918E07780
sambaPasswordHistory: 0000000000000000000000000000000000000000000000000000000000000000
sambaAcctFlags: [U          ]
userPassword: {SSHA}8tX8CKF85hUblwb3OSeauSLsohH5gqlv
sambaPwdLastSet: 1400019331
  • En LAM, a usuaria sol xa ten cubertos os seus atributos:

Dl 2014 parte3 lam 33.jpeg

  • Poderíanse engadir os atributos dende LAM.
  • Pero non o imos facer pois non se cobren todos os campos e ademais tamén hai que axustar o contrasinal

Dl 2014 parte3 lam 32.jpeg

  • O lector debe activar o resto dos usuarios LDAP como usuarios SAMBA.

Engadir un novo usuario

  • Podemos engadilo dende LAM, pero imos engadilo coas utilidades. Imos engadir a usuaria paz, que quedaba pendente:

00 Dominios Linux parte 01 Usuarios.jpg

  • Para crear un novo usuario no LDAP xa activado como usuario samba, usamos o comando smbldap-useradd.
  • As opcións son as seguintes:
smbldap-useradd -?
(c) Jerome Tournier - (jtournier@gmail.com)- Licensed under the GPL
Usage: /usr/sbin/smbldap-useradd [OPTIONS] USERNAME

Options:
  -a	is a Windows User (otherwise, Posix stuff only)
  -b	is a AIX User
  -c	gecos
  -d	home
  -g	gid
  -i	is a trust account (Windows Workstation)
  -k	skeleton dir (with -m)
  -m	creates home directory and copies /etc/skel
  --non-unique
	Allow the creation of a user account with a duplicate (non-unique) UID.
  -n	do not create a group
  -o	add the user in the organizational unit (relative to the user suffix. Ex: 'ou=admin,ou=all')
  -s	shell
  -t	time. Wait 'time' seconds before exiting (when adding Windows Workstation)
  -u	uid
  -w	is a Windows Workstation (otherwise, Posix stuff only)
  -W	is a Windows Workstation, with Samba atributes (otherwise, Posix stuff only)
  -A	can change password ? 0 if no, 1 if yes
  -B	must change password ? 0 if no, 1 if yes
  -C	sambaHomePath (SMB home share, like '\\PDC-SRV\homes')
  -D	sambaHomeDrive (letter associated with home share, like 'H:')
  -E	sambaLogonScript (DOS script to execute on login)
  -F	sambaProfilePath (profile directory, like '\\PDC-SRV\profiles\foo')
  -G	supplementary comma-separated groups
  -H	sambaAcctFlags (samba account control bits like '[NDHTUMWSLKI]')
  -M	e-mail address (comma separated)
  -N	given name 
  -O	localMailAddress (comma separated)
  -P	ends by invoking smbldap-passwd
  -S	surname (Family name)
  -T	mailToAddress (forward address) (comma separated)
  -X	input encoding for givenname and surname (default UTF-8)
  -Z	set custom LDAP attributes, name=value pairs comma separated
  -h	show this help message


  • Como exemplo imos engadir un usuario para logo borralo
smbldap-useradd -a -P u-borrar
  Changing UNIX and samba passwords for u-borrar
  New password: 
  Retype new password: 
  • Imos agora engadir a usuaria paz engadindo todos os campos que lle engadimos aos outros usuarios.
  • Non faría falla usar todos os campos que veñen a continuación, pero para cumprir a premisa anterior:
smbldap-useradd -a -c "DAM2 Paz Fdez" -d "/home/iescalquera/alumnos/dam2/paz" -g 10000 -m -o 'ou=dam2,ou=alum' -u 10005 -G g-usuarios,g-alum,g-dam2-alum -M paz@iescalquera.local -N Paz -P -S Fdez -Z cn="DAM2 Paz Fdez",initials="PF" paz
   User "paz" already member of the group "g-usuarios".
   Changing UNIX and samba passwords for paz
   New password: 
   Retype new password: 
  • Observar o significado de cada campo na axuda superior.
  • Non se engadiu o campo displayName porque dá un erro o script
  • Comprobación:
smbldap-usershow paz
dn: uid=paz,ou=dam2,ou=alum,ou=usuarios,dc=iescalquera,dc=local
objectClass: top,person,organizationalPerson,posixAccount,shadowAccount,inetOrgPerson,sambaSamAccount
cn: Paz Fdez,DAM2 Paz Fdez
sn: Fdez
uid: paz
uidNumber: 10005
gidNumber: 10000
homeDirectory: /home/iescalquera/alumnos/dam2/paz
loginShell: /bin/bash
gecos: DAM2 Paz Fdez
givenName: Paz
initials: PF
mail: paz@iescalquera.local
sambaLogonTime: 0
sambaLogoffTime: 2147483647
sambaKickoffTime: 2147483647
sambaPwdCanChange: 0
displayName: Paz Fdez
sambaSID: S-1-5-21-3472892566-1518861306-3316237868-21010
sambaPrimaryGroupSID: S-1-5-21-3472892566-1518861306-3316237868-21001
sambaLogonScript: inicio.bat
sambaHomePath: \\dserver00\paz
sambaHomeDrive: Z:
sambaLMPassword: B7515DC140629D41AAD3B435B51404EE
sambaAcctFlags: [U]
sambaNTPassword: 3EC585243C919F4217175E1918E07780
sambaPwdLastSet: 1400134506
sambaPwdMustChange: 1404022506
userPassword: {SSHA}k5DdcrgfW7v0VCIWZH3uZHLmCJNnaTEv
shadowLastChange: 16205
shadowMax: 45
  • Observar como o campo displayName, está composto polo nome e apelidos da usuaria.


  • Comprobar se é un usuario co que poder entrar no sistema:
getent passwd | tail -n 1
paz:x:10005:10000:DAM2 Paz Fdez:/home/iescalquera/alumnos/dam2/paz:/bin/bash
  • Comprobar os grupos e os seus membros. Paz pertence aos grupos correctos.
getent group | grep g-
g-usuarios:*:10000:paz
g-profes:*:10001:noe,sol
g-dam1-profes:*:10002:sol
g-dam2-profes:*:10003:noe,sol
g-alum:*:10004:paz,tom,mon,pia
g-dam1-alum:*:10005:tom,mon
g-dam2-alum:*:10006:paz,pia
  • O lector pode comprobar o resultado en LAM.

O cartafol persoal de paz

00 Dominios Linux Escenarios parte 02 Permisos Usuarios.jpg

ls /home/iescalquera/alumnos/dam2 -l
  total 8
  drwx------  2 paz g-usuarios    4096 Mai 13 21:29 paz
  drwxr-x--- 18 pia g-dam2-profes 4096 Mai 15 06:36 pia

ls /home/iescalquera/alumnos/dam2/paz -la
  total 32
  drwx------ 2 paz  g-usuarios 4096 Mai 13 21:29 .
  drwxr-x--- 4 root g-usuarios 4096 Mai 15 08:14 ..
  -rw-r--r-- 1 paz  g-usuarios  220 Mai 13 21:29 .bash_logout
  -rw-r--r-- 1 paz  g-usuarios 3637 Mai 13 21:29 .bashrc
  -rw-r--r-- 1 paz  g-usuarios 8980 Mai 13 21:29 examples.desktop
  -rw-r--r-- 1 paz  g-usuarios  675 Mai 13 21:29 .profile
  • Vemos que o cartafol de paz non ten o grupo de acordo ao esquema. Pero en cambio, os ficheiros de Skel foron copiados correctamente, os de Ubuntu.
  • Para arranxar o problema dos permisos no cartafol de paz é sinxelo. Executar o script 03
scripts# sh 03_crear_home_usuarios_axustar_permisos.sh 

ls /home/iescalquera/alumnos/dam2 -l
  total 8
  drwxr-x---  2 paz g-dam2-profes 4096 Mai  7 09:45 paz
  drwxr-x--- 18 pia g-dam2-profes 4096 Mai  7 09:45 pia

Manipulación de usuarios e grupos. Borrado usuarios

  • Engadir un usuario a un grupo:
    • Usamos o comando smbldap-groupmod.
    • A opción -m permite introducir máis dun usuario separándoos por comas:
smbldap-groupmod -m usuario1,usuario2 grupo


  • Quitar un usuario dun grupo:
    • Usamos tamén smbldap-groupmod pero coa opción -x:
smbldap-groupmod -x usuario1 grupo


  • Borrar un usuario do dominio:
    • Onde a opción -r permite borrar tamén o directorio persoal do usuario.
 smbldap-userdel -r u-borrar


Engadir un equipo no dominio

  • Podemos usar o comando smbldap-useradd para engadir contas de equipo en samba.
    • A opción -t 0 crea a conta sen retardo,
    • e -w indica que a conta de usuario é para un equipo.
  • No noso caso non será necesario utilizar este comando, xa que coa configuración do servidor samba a conta crearase automaticamente ao introducir o equipo cliente no dominio.
smbldap-useradd -t 0 -w wexemplo10


Conclusións

  • O curso vaise construíndo paso a paso, pero agora o lector pode concluír que se se precisan usuarios para equipos Windows e Linux, imos precisar os esquemas básicos do LDAP e o esquema de Samba.
  • Ademais á hora de dar de alta os usuarios, por exemplo con LAM, xa podemos crear un modelo en formato CSV cos atributos necesarios para LDAP+SAMBA para dun só paso dar de alta os usuarios/grupos e dunha maneira sinxela.
  • Tal e como estamos agora, o/a lector/a debe activar os grupos e usuarios LDAP como grupos e usuarios SAMBA.



-- Antonio de Andrés Lema e Carlos Carrión Álvarez