Hace un par de días escribí para Alt-Tab, –blog en el que colaboro esporádicamente y mucho menos de lo que quisiera– un efímero artículo intitulado «Sudo para Windows» en el que explicaba para el común de los usuarios como hace en el día a día un administrador de dominio para ejecutar comandos que necesiten privilegios administrativos sin necesidad de:

  1. Cerrar sesión.
  2. Cambiar de usuario a uno que sea administrador.
  3. Aplicar los cambios.
  4. Cerrar sesión de nuevo.
  5. Abrir la planilla de excel con las contraseñas de todos los usuarios.
  6. Intentar iniciar sesión nuevamente con el usuario no privilegiado.
  7. Encontrar que la planilla no tiene la contraseña actualizada.
  8. Intentar comunicarse con el usuario de la PC para preguntarle la contraseña y no poder.
  9. Blanquear la contraseña.
  10. Especificar una nueva.
  11. Actualizar la planilla de excel para que refleje los cambios.
  12. Mandarle un mail al usuario avisando que se le cambió la contraseña.
  13. Esperar el llamado del mismo en las próximas horas cuando no pueda iniciar sesión.
  14. Pasarle telefónicamente la contraseña nueva.

En uno de los comentarios, un lector del Blog de nombre Sergio, se despachó con un comentario en donde explica a grosso-modo, como se puede escalar privilegios de la misma manera en que yo lo propuse para ir desde un usuario común a administrador pero llevándolo un paso mas allá y saltando después desde administrador a system.

Una consola de comandos con privilegios de System, gracias a svchost.exe.

Una consola de comandos con privilegios de System, gracias a svchost.exe.

Si todavía estás leyendo esto y saltaste del asiento igual que yo cuando lo leí por primera vez, entonces no necesito explicarte las implicancias de poder ejecutar aplicaciones con privilegios de «system», ¿no?

Continúa leyendo

Como instalar Gentoo en Windows XP, Vista o Seven

Como instalar Gentoo en Windows XP, Vista o Seven

Bromas aparte, para aquel que realmente quiera instalar Gentoo Linux, no tiene mas que seguir el handbook que explica todo el procedimiento paso por paso.

Tengo guardado este panfleto desde hace un tiempo y hoy me acordé de él por que justo estoy terminando otra instalación de Gentoo.

Lo ví en 4Chan. ¿En que otro lugar podría uno encontrar tanta malicia y habilidad para el Photoshop juntas?

Command Line Ninjitsu en Maldito Nerd

Necesitás un listado detallado de cuanto ocupa cada directorio en Linux, y lo necesitás ordenado de mayor a menor. ¿Como? Facil:

root@floyd:~# du /home/pink --max-depth=1 | sort -nr | cut -f2 | xargs -d '\n' du -sh

Que te dará por resultado algo como esto:

  65G     /home/pink
  23G     /home/pink/Descargas
  15G     /home/pink/Documentos
  9,0G    /home/pink/Imágenes
  7,9G    /home/pink/ordenar
  6,6G    /home/pink/videos
  4,0G    /home/pink/Música

Actualización – 13/02/2012: Nitsuga en los comentarios de este post se materializó con una idea bastante mejorcita que combina du con sort únicamente y obtiene el mismo resultado final:

du /home/pink/ --max-depth=1 -h | sort -rh

¡Un aplauso para Nitsuga, che!

Ahora si, a continuación, la explicación de como funciona el método largo e inmemorizable.

¿Como funciona?

Se usa du para obtener el espacio ocupado por cada directorio contenido dentro del que se especificó con un máximo de profundidad de 1 nivel (por lo de –max-depth=1) y se le pasa el resultado al comando sort por medio de un pipe.

Sort se encargará de ordenar numéricamente (por lo de –n) y de forma inversa, es decir de mayor a menor (por lo de –r) el resultado obtenido, que se le pasa al comando cut por medio de otro pipe.

Cut deja solamente el contenido del segundo campo y se deshace del resto (por lo de –f2), es decir, ahora que ya está ordenado, se deshace del número y deja solamente el nombre del directorio o archivo en cuestión.

Otro pipe de por medio, xargs va ejecutando du –sh sobre cada uno de los directorios pre ordenados y mostrando el resultado en pantalla usando para delimitar un un argumento de otro el el salto de línea, (por lo de –d ‘\n’).

¿Lo entendiste?

Si lo entendiste te felicito, yo lo tuve que pensar bastante cuando lo ví usar por primera vez (No, no es de mi autoría).

Si no lo entendiste y no tenes ganas o tiempo de entenderlo ya mismo, acordate: Lo viste en Maldito Nerd, o agendate esta página en tus bookmarks, que si te pasa como a mi, lo vas a necesitar un par de veces al año y no te vas a acordar de como carajo era todo el comando.

¿Y si uso Windows en vez de Linux pero igualmente quiero hacerlo por consola?

Bueno, no se puede logar exactamente el mismo resultado pero algo muy parecido se obtiene ejecutando:

dir /S /O-S

Si, así de cortito. Eso demuestra a las claras la superioridad de Windows sobre Linux. No necesito mas pruebas. (Cualquier parecido entre las opciones que le paso al comando dir y la llamada internacional de auxilio es pura coincidencia).

En Linux, se pueden recuperar comandos tipeados con anterioridad haciendo uso por ejemplo de las flechas de cursor hacia arriba y hacia abajo o si tu /etc/inputrc contiene:

"\e[5~": history-search-backward

"\e[6~": history-search-backward

Tipeando parte del comando y presionando Page-Up o Page-Down para ir recuperando todos los comandos que tipeaste en otras oportunidades que coincidan con lo que llevás escrito hasta el momento.

Por ejemplo, para recuperar todos los comandos tipeados que comiencen con “nano”, bastaría escribir “nano” y usar Page Up y Down para ir conmutando en el historial entre todos los comandos que coincidan con el criterio de búsqueda. (Y de paso, anidé un tip dentro de otro tip).

Olvidémonos de que a veces uno anda haciendo chanchadas y vayamos al ejemplo mas típico: Necesitás tipear un comando que contiene información sensible, el nombre de un archivo, un nombre de dominio o una contraseña que preferirías mantener en secreto.

ninja

Necesitás tipear un comando que no quede registrado en el historial de comandos para que no lo lea alguien mas.

Este alguien mas podría ser un compañero de trabajo, otro proveedor o programador que usa tu mismo login o tiene la contraseña o key de root o para los mas paranoicos, un hacker que comprometió el sistema.

¿Como hacer para ejecutar el comando sin dejar rastros/registros?

Continúa leyendo