domingo, mayo 01, 2011

Usar el gdb como un usurio normal en MacOS X

En la última versión de MacOS X, Snow Leopard, si utilizamos el gdb si nuestro usuario no pertenece al grupo Developer Tools, nos pedirá que introduzcamos en login / passwod de uno que pertenezca al mismo, normalmente el un usuario administrador, a través del siguiente cuadro de diálogo:


Pantalla de diálogo pidiendo permisos

Como nunca trabajo, a menos que sea imprescindible, intento usar siempre usuarios que ejecuten los programas con el mínimo de privilegios posibles. Para que el usuario sea capaz de ejecutar el gdb debe de pertenecer,por tanto. al grupo Developer Tools. Sin embargo, no es sencillo añadir un usuario a un grupo, a pesar de que MacOS X es un Unix tradicional. Debemos de hacer uso de la utilidad dscl. Podemos listar los grupos que tenemos en el sistema con la siguiente orden:

dscl . -list Groups

El grupo que nos interesa _developer, podemos saber las propiedades de este grupo con la siguiente orden:

swordcoast:~ terron$ dscl . -read Groups/_developer 
AppleMetaNodeLocation: /Local/Default
Comment:
 Standard Users who use advanced Developer Tools
GeneratedUID: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
NestedGroups: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
Password: *
PrimaryGroupID: 204
RealName:
 Developer Tools
RecordName: _developer
RecordType: dsRecTypeStandard:Groups

Podemos ver si el usuario actual pertenece a dicho grupo con la orden groups o con dseditgroup

swordcoast:~ terron$ dseditgroup -o checkmember _developer
no terron is NOT a member of _developer
swordcoast:~ terron$ 

Podemos usar la orden dseditgroup para añadir el usuario que queramos al grupo de developer:

swordcoast:~ terron$ dseditgroup -u admin -p  -o edit -a terron -t user _developer
Please enter user password:
En este caso, las opciones que hemos usado para dseditgroup han sido las siguientes:
  • -u user indica el usuario que se va a usar para modificar el directorio, en el ejemplo admin
  • -p Contraseña para el usuario user especificado con la opción -u.
  • -o operación indica la operación a realizar en el directorio, en nuestro caso edición, edit
  • -a usuario1, este va a ser el usuario que vamos a añadir al grupo, en el ejemplo terron
  • -t user indica que vamos a añadir un registro de tipo usuario al grupo.
  • Por último indica en grupo que vamos a modificar, en nuestro caso _developer

Ahora podemos verificar con la ayuda de dseditgroup que se ha añadido correctamente el usuario al grupo:

swordcoast:~ terron$ dseditgroup -o checkmember _developer
yes terron is a member of _developer
swordcoast:~ terron$ 
Como vemos, todo sencillo y con interfaz gráfica integrada, lástima que no tenga un addgroup ;)

Referencias


Technorati Tags: ,

No hay comentarios: