Integracion Unix AIX, Samba, Winbind, SSH y dominio Windows (4/8) - Otros problemas encontrados en AIX en este punto


Home del documento

Pues parece que ni en IBM ni en mi AIX 5.3 saben nada del comando getent (que sirve para obtener listas unificadas de usuarios locales y usuarios de Active Directory)... A ver como podemos obtener alguna funcionalidad parecida.

En el momento de escibir este documento veo que el comando net (propio de la suite de Samba) ofrece multiples posibilidades. Sin haber leido de forma exhaustiva toda su documentación no me atrevo a decir que lo que voy a explicar ahora se pueda hacer de otra forma más sencilla... De momento explico mi trabajo: Me voy a /home ...

# ls -l
total 0
drwxr-x--x 2 dosys teson 256 Nov 06 13:17 dosys
drwxr-xr-x 2 user1 usr 256 Nov 13 17:37 user1
drwxr-xr-x 2 usertwo usr 256 Nov 12 11:40 usertwo
drwxr-xr-x 2 guest usr 256 Jul 06 2006 guest
drwxr-xr-x 2 usuario3 usr 256 Nov 12 10:04 usuario3
drwx------ 2 root system 256 Apr 12 2007 lost+found
drwxr-xr-x 2 userzet usr 256 Nov 05 16:31 userzet
drwxr-xr-x 2 teson teson 256 May 14 2007 teson

... y cambio el propietario y el grupo del directorio dosys

# chown "DOMINIO\smolarek" dosys
# ls -l
total 0
drwxr-x--x 2 DOMINIO\ teson 256 Nov 06 13:17 dosys
drwxr-xr-x 2 user1 usr 256 Nov 13 17:37 user1
drwxr-xr-x 2 usertwo usr 256 Nov 12 11:40 usertwo
drwxr-xr-x 2 guest usr 256 Jul 06 2006 guest
drwxr-xr-x 2 usuario3 usr 256 Nov 12 10:04 usuario3
drwx------ 2 root system 256 Apr 12 2007 lost+found
drwxr-xr-x 2 userzet usr 256 Nov 05 16:31 userzet
drwxr-xr-x 2 teson teson 256 May 14 2007 teson
# chgrp "DOMINIO\Domain master-users" dosys
# ls -l
total 0
drwxr-x--x 2 DOMINIO\ DOMINIO\ 256 Nov 06 13:17 dosys
drwxr-xr-x 2 user1 usr 256 Nov 13 17:37 user1
drwxr-xr-x 2 usertwo usr 256 Nov 12 11:40 usertwo
drwxr-xr-x 2 guest usr 256 Jul 06 2006 guest
drwxr-xr-x 2 usuario3 usr 256 Nov 12 10:04 usuario3
drwx------ 2 root system 256 Apr 12 2007 lost+found
drwxr-xr-x 2 userzet usr 256 Nov 05 16:31 userzet
drwxr-xr-x 2 teson teson 256 May 14 2007 teson


- Desde este momento se puede acceder al recurso compartido \\modsed\dosys (que nos mostrará el contenido de la ruta /home/dosys) con los permisos que indica el ls anterior (?!)

Nuevo problema: Hemos determinado un propietario y un grupo del dominio para la carpeta dosys, pero el sistema presenta la salida de un ls en un formato que nos impide ver a qué corresponden esos nombres. (Este problema no se da, p. ej., con Linux que adapta la salida de manera que nos permita ver el propietario/grupo). En nuestro caso he utilizado un método alternativo que paso a explicar:

# ls -n
total 0
drwxr-x--x 2 10000 10009 256 Nov 06 13:17 dosys
drwxr-xr-x 2 204 100 256 Nov 13 17:37 user1
drwxr-xr-x 2 208 100 256 Nov 12 11:40 usertwo
drwxr-xr-x 2 100 100 256 Jul 06 2006 guest
drwxr-xr-x 2 206 100 256 Nov 12 10:04 usuario3
drwx------ 2 0 0 256 Apr 12 2007 lost+found
drwxr-xr-x 2 205 100 256 Nov 05 16:31 userzet
drwxr-xr-x 2 300 300 256 May 14 2007 teson

... que muestra los UID y GID que maneja winbindd (y que tienen que ver con las variables globales idmap uid e idmap gid determinadas en smb.conf)


- Tomamos el UID 10000 que nos muestra el ls y preguntamos el SID asociado:

# wbinfo -U 10000
S-1-5-21-2079082624-1001472106-643713613-4753


- Con ese SID preguntamos el nombre de usuario asociado:

# wbinfo -s S-1-5-21-2079082624-1001472106-643713613-4753
DOMINIO\SMOLAREK 1


- Podemos hacer lo mismo pero con el GID en lugar del UID:

# wbinfo -G 10009
S-1-5-21-2079082624-1001472106-643713613-512
# wbinfo -s S-1-5-21-2079082624-1001472106-643713613-512
DOMINIO\Domain master-users 2


- Y hasta aquí el primer workaround. Hay que reconocer que obtener el nombre de usuario de esta forma es muy incomodo, así que he preparado cuatro pequeños scripts (uid2name, gid2name, name2uid, name2gid) que facilitan el trabajo. Para que funcionen primero debemos asegurar que el wbinfo se encuentra en el PATH

# echo $PATH
/usr/bin:/etc:/usr/sbin:/usr/ucb:/usr/bin/X11:/sbin:/usr/java14/jre/bin:/usr/java14/bin:
/opt/pware/samba/3.0.26a/bin:/opt/pware/samba/3.0.26a/sbin



- Estos son los cuatro scripts:

# cat /usr/bin/uid2name
UID=$1
SID=`wbinfo -U $UID`
wbinfo -s $SID

# cat /usr/bin/gid2name
GID=$1
SID=`wbinfo -G $GID`
wbinfo -s $SID

# cat /usr/bin/name2uid
NAME=$1
SID=`wbinfo -n "$NAME"`
wbinfo -S $SID

# cat /usr/bin/name2gid
NAME=$1
SID=`wbinfo -n "$NAME"`
wbinfo -Y $SID


- Doy permisos de ejecución a todo el mundo...

# chmod +x /usr/bin/uid2name /usr/bin/gid2name /usr/bin/name2uid /usr/bin/name2gid

... y dado que los cuatro están en el PATH...

# name2uid "DOMINIO\smolarek"
10000
# name2gid "DOMINIO\Domain master-users"
10009
# uid2name 10000
DOMINIO\SMOLAREK 1
# gid2name 10009
DOMINIO\Domain master-users 2


- Para establecer permisos en recursos compartidos mediante Samba debemos recurrir a los comandos chown y chmod. No es viable la utilización de las herramientas propias de Windows para gestionar estos permisos.

Otras posibilidades en el entorno que hemos preparado: Conocer los dominios "trusted" en los que nos movemos...

# wbinfo -m
DOMINIO

... conocer los GID de una cuenta...

# wbinfo -r "DOMINIO\smolarek"
10005
10006
10007
...
10025
10000
10001

... mediante uno de los scripts propuestos (gid2name) conocer los nombres de los grupos que nos ha mostrado el comando anterior...

# for i in `wbinfo -r "DOMINIO\smolarek"`
> do
> gid2name $i
> done
DOMINIO\
Grupo 10 2
DOMINIO\
Grupo 20 2
DOMINIO\
Grupo 30 2
...
DOMINIO\
Grupo 60 4
BUILTIN\Administrators 4
BUILTIN\Users 4

... e información completa de una cuenta de usuario.


# lsuser "DOMINIO\smolarek"
DOMINIO\smolarek id=10000 pgrp=DOMINIO\usuarios del dominio home=/home shell=/bin/ksh gecos=P Smolarek login=true su=true rlogin=true daemon=true admin=false sugroups=ALL admgroups= tpath=nosak ttys=ALL expires=0 auth1=SYSTEM auth2=NONE umask=22 registry=WINBIND SYSTEM=compat logintimes= loginretries=0 pwdwarntime=0 account_locked=false minage=0 maxage=0 maxexpired=-1 minalpha=0 minother=0 mindiff=0 maxrepeats=8 minlen=0 histexpire=0 histsize=0 pwdchecks= dictionlist= fsize=-1 cpu=-1 data=786432 stack=196608 core=2097151 rss=196608 nofiles=6000 roles= id=10000 pgrp=DOMINIO\usuarios del dominio home=/home shell=/bin/ksh gecos=P Smolarek shell=/bin/ksh pgrp=DOMINIO\usuarios del dominio SID=S-1-5-21-2079082624-1001472106-643713613-4753

Home del documento