A veces abrimos ficheros en vim con nuestro usuario actual, y resulta que el fichero sólo tiene permisos de escritura para root. A mí me pasa mucho con el /etc/hosts, y anda que no fastidia hacer todas las modificaciones y darte cuenta al final de que no puedes sobreescribir el fichero.
Hasta ahora lo que hacía es grabarlo con otro nombre y luego moverlo con sudo, pero eso se acabó gracias a este ingenioso truco:
:w !sudo tee %
Si queremos servir de forma rápida el fácil el directorio actual mediante protocolo HTTP, para compartir un fichero, un documento o lo que sea, no hace falta montar un Apache ni nada parecido. Sencillamente podemos hacer lo siguiente:
$> python -m SimpleHTTPServer
Con este comando conseguiremos ejecutar el comando tecleado justo antes de él, pero como root:
$> sudo !!
Este truco funciona sólo en bash, y lo que hace es ejecutar como root, mediante el mecanismo sudo, el último comando que hayamos ejecutado como nuestro usuario normal.
También podemos ejecutar cualquiera de los comandos de nuestro histórico:
$> sudo !-n
Siendo n el número de comando contando hacia atrás en nuestro histórico. Podemos ver el histórico de comandos tecleados con:
Un compañero, Juan Ases, ha creado este script para hacer una sencilla aplicación de lista de extensiones y teléfonos en 10 segundos, sin teclear ni una línea de código.
Ojo, no sirve para nada si no sabéis que es Symfony, pero si lo sabéis puede servir como guión para empezar con una aplicación crud.
#!/bin/bash
mkdir extensiones.midominio.com
cd extensiones.midominio.com
mkdir -p lib/vendor
cd lib/vendor
svn co http://svn.symfony-project.com/branches/1.4 symfony
cd ../../
php lib/vendor/symfony/data/bin/symfony -V
Dokuwiki es un sistema de wiki escrito en php, muy ligero y funcional y que no precisa de base de datos, ya que guarda sus ficheros directamente en disco.
Esto lo convierte en un sistema ideal para utilizarlo en departamentos de desarrollo o sistemas, para almacenar la información común en un sitio centralizado. Además, pese a su sencillez, dispone de un completo sistema de usuarios y permisos granulares, pudiendo dar acceso de sólo lectura, por ejemplo, a una zona que deba leer otro departamento, etc...
Hasta aquí todo bien, utilizamos nuestro wiki para consultar información sobre la estructura de sistemas de nuestra empresa, así como datos de acceso, credenciales, y demás, pero... ¿Que ocurre si está caído justamente el servidor donde tenemos el wiki? ¿Como consultamos la información necesaria para repararlo?
Yo no tengo que imaginar mucho, a mí ya me ha pasado.
Una copia local de todo el wiki, y un servidor web ligero en nuestro portátil, de forma que, en cualquier momento, podamos consultar el wiki de forma local, sin tener siquiera conexión a Internet.
A los genios de Ubuntu, respetuosos con los servidores como nadie (sic), se les ha ocurrido en algún update dejar sólo con permisos de root al /dev/null, con lo cual cosas como "clamav-daemon" fallan estrepitosamente al arrancar al no poder leer ni escribir en este dispositivo falso.
Una de esas enormes estupideces que cometen todas las distros y que le hacen a uno permanecer fiel a Debian, prometan lo que prometan las demás.
En fin, la solución es sencilla, eso sí, después de haber tenido a los clientes con todos los antispam caídos:
#> sudo chmod a+w /dev/null #> sudo chmod a+r /dev/null
Suerte con las distros cool, la vais a necesitar.
Por Calocén:
Para sacar una lísta de canciones sin duplicar de la carpeta Music. Serviría para gnome y kde.
A partir de aquí hay que copiar cada fichero de la lista o eliminar los que no estén en ella.
#!/bin/bash
TMPFILE=/tmp/music.$$
find ~/Music -type f > $TMPFILE
while read i ; do md5sum -b "$i" ; done < $TMPFILE > $TMPFILE.md5
$TMPFILE.md5 | cut -f1 -d" " | sort | uniq > $TMPFILE.dedupe
while read i ; do grep "$i" $TMPFILE.md5 | head -n1 ; done < $TMPFILE.dedupe \
| cut -f2 -d"*" > $TMPFILE.song.dedupe
Hace relativamente poco, en la lista de desarrollo de Xorg se comento la posiblidad (que luego seria un hecho) de deshabilitar el reinicio de las X por ctrl+alt+backspace por defecto, que pasaria a ser controlado por xkb.
A los que querais reactivarlo podeis ejecutar
setxkbmap -option terminate:ctrl_alt_bksp
Via XayOn's Blog.
A veces, al actualizar Debian, hacemos un aptitude update y el sistema se queja con algo así:
W: GPG error: http://security.debian.org etch/updates Release: Las firmas siguientes no se pudieron verificar porque su llave pública no está disponible: NO_PUBKEY 9AA38DCD55BE302B W: GPG error: http://ftp.rediris.es etch Release: Las firmas siguientes no se pudieron verificar porque su llave pública no está disponible: NO_PUBKEY 9AA38DCD55BE302B W: Tal vez quiera ejecutar 'apt-get update' para corregir estos problemas
$> aptitude install nmap $> nmap 192.168.1.1 -p 80
El "-p 80" es el puerto que quieres comprobar, donde debería estar el servicio escuchando. Podrías sustituirlo por su representación textual "-p www", o "-p smtp". Para ver un listado de puertos y nombres:
$> cat /etc/services
$> telnet 192.168.1.1 80
Recuerda que deberás conocer el protocolo para salir, o bien escapar con "Ctrl+[" y "Ctrl+d".