sábado, 19 de marzo de 2011

Uso de chmod para administrar permisos




Para entender mejor como administrar los permisos con el comando chmod, es necesario que entendamos cuales son los permisos que permite Linux.
Linux permite tres tipos de permisos:
-Lectura (r)
-Escritura (w)
-Ejecución (x)

Y el orden en el que muestra los valores y en el que debemos de introducirlos es el siguiente:

Usuario|Grupo|Otros

Linux aplica un valor de Bits a cada permiso:

-Lectura (r) ---------> 4
-Escritura (w) -----> 2
-Ejecución (x) -----> 1


Con lo cual el permiso de lectura+escritura sería igual que el valor 5 (4+1=5)
Ese (5) según donde esté colocado, dará esos permisos al usuario, al grupo o a otros.

Ejemplo:
Usuario|Grupo|Otros
    7            7         5
Con el ejemplo anterior, el usuario tiene permisos de lectura, escritura y ejecución, el grupo tiene también esos permisos, pero los que no sean usuario o del grupo, solo podrán leer y ejecutarlo, pero no escribir o modificarlo.

Sabiendo esto, es muy sencillo dar o quitar permisos a un archivo o directorio en linux usando el comando chmod.

Imaginemos que estamos en la terminal y nos situamos en la carpeta que queramos, luego, para ver los permisos del archivo prueba hacemos esto:

scorpyo@pc-era:~$ ls -al prueba
-rw-r--r-- 1 scorpyo scorpyo 0 2011-03-19 19:24 prueba

Con eso obtendremos los datos del archivo prueba en el siguiente formato:
Tipo|Usuario|Grupo|Otros
   -        rw-        r--       r--
            6          4          4
El comienzo indica el tipo de archivo y los permisos que tiene:

-        ---> indica que no es un directorio de lo contrario sería una "d" en lugar de un "-"
rw-    --> indica que el usuario tiene permisos de lectura y escritura = 6
r--      --> Indica que el grupo solo tiene permisos de lectura = 4
r--      --> Indica que quien no se ni el propietario ni pertenezca al grupo solo tiene permisos de lectura = 4

Con lo cual, el permiso de ese archivo se puede traducir en 644

Ahora, si queremos, que el archivo solo se pueda ver por el usuario, y ademas que lo pueda ejecutar sería algo como 700 y lo haríamos así:

scorpyo@pc-era:~$ chmod 700 prueba
scorpyo@pc-era:~$ ls -al prueba
-rwx------ 1 scorpyo scorpyo 0 2011-03-19 19:24 prueba

Como vemos, ahora el archivo solo se puede ver por el dueño y solo lo puede modificar este, además, se le ha añadido una “x” que significa que es ejecutable por el usuario.

Si queremos modificar los permisos de un archivo que no es nuestro, tendríamos que hacerlo con sudo, para autenticarnos como root.

Esto, creo que es lo más básico al respecto de los permisos.
Para más información, usar el manual de chmod.

Códico: man chmod

Saludos

lunes, 14 de febrero de 2011

Compatibilidad de hardware con ubuntu

Para todos los ubuntureros o futuros usuarios de Ubuntu, les informo que Canonical pone a disposición de los usuarios una lista de hardware compatible con ubuntu, ordenada por fabricantes y por categoría.
La base de datos incluye más de 1300 componentes de más de 161 fabricantes distintos.

Ya podemos estar más tranquilos a la hora de comprar un producto para usarlo con nuestro Ubuntu.

La dirección es la siguiente:
http://www.ubuntu.com/certification/catalog

miércoles, 2 de febrero de 2011

Enjaulando desde ubuntu con "chroot"

Y o preguntaréis, ¿para que es esto exactamente?
Pues resulta que podemos confinarnos como root a una partición en la que tenemos otro ubuntu instalado.

 ¿Para qué?
Pues por ejemplo, imaginaos que tenéis vuestro Ubuntu instalado perfectamente y un día, saz, tocasteis algo y no podéis iniciar de ninguna de las maneras, o, os cargásteis el grub y no podéis iniciar nada.... o cualquier cosa.

Pues para enjaular una distro de Ubuntu, necesitamos usar otra distribución de Ubuntu, bien el Live CD o USB.

(si teneis otra partición con otro ubuntu en el disco duro también sirve)

Bien, imaginemos que ya habéis iniciado el LiveCD  y estais en el escritorio.

Abrimos una terminal y escribimos:

1.-Para listar los discos y las particiones:
scorpyo@pc-cito:~$ sudo fdisk -l

Localizamos la partición en la que tenemos nuestro sistema de archivo, por ejemplo /dev/sda2

2.-Montamos la partición en la carpeta /mnt:
scorpyo@pc-cito:~$ sudo mount /dev/sda2 /mnt

Ahora, para comprobar si es nuestra partición, podemos entrar en /mnt y hacer un listado de los archivos así:
scorpyo@pc-cito:~$ cd /mnt
scorpyo@pc-cito:~$ ls

Si no es la partición correcta desmontamos la unidad y volvemos a empezar para montar otra.
scorpyo@pc-cito:~$ sudo umount /dev/dispositivo

3.-Si usamos una partición para /home en la distro que queremos ejaular, necesitamos montarla tambien, por ejemplo, imaginemos que es /dev/sda3
scorpyo@pc-cito:~$ sudo mount /dev/sda3 /mnt/home

4.-Ahora solo queda montar el resto de dispositivos así:

scorpyo@pc-cito:~$ sudo mount --bind /dev /mnt/dev
scorpyo@pc-cito:~$ sudo mount --bind /dev/pts /mnt/dev/pts
scorpyo@pc-cito:~$ sudo mount --bind /proc /mnt/proc
scorpyo@pc-cito:~$ sudo mount --bind /sys /mnt/sys



5.-Y por ultimo acedemos como root al sistema que hemos montado en /mnt así:
scorpyo@pc-cito:~$ sudo chroot /mnt

Bien, ya estamos accediendo como root en el sistema ubuntu que hemos montado.

Ahora es como si la terminal, se estuviese ejecutando en el otro sistema, por ejemplo, podríamos arreglar grub, instalar un programa, desinstalarlo, mirar el escritorio como si fuese el tuyo... cambiar passwords.

Imaginemos que ese sistema es ubuntu y tiene un problema con las X que no nos deja entrar ni en modo recovery.

Pues escribimos en la terminal:
scorpyo@pc-cito:~$ dpkg-reconfigure xserver-xorg

O queremos actualizar el sistema...
scorpyo@pc-cito:~$ sudo apt-get update
scorpyo@pc-cito:~$ sudo apt-get upgrade

Tiene muchos usos, seguro que le sacas provecho, yo por ejemplo actualizo una distro de BackTrack (que está basada en ubuntu) y la tengo instalada en una partición del disco, pero como no me apetece arrancarla porque estoy liado con mi ubuntu pues de vez en cuando la actualizo desde aquí y ya está.

Para salir del estado en el que os encontráis escribir:
root@pc-cito:~# exit 

Y para desmontar todo hacer:
scorpyo@pc-cito:~$ umount /mnt/dev
scorpyo@pc-cito:~$ umount /mnt/proc
scorpyo@pc-cito:~$ umount /mnt/home
scorpyo@pc-cito:~$ umount /mnt


Saludos.

Cambiar el color del prompt en la terminal

Normalmente, cuando estamos revisando en la terminal los comandos que introdujimos y los resultados, tenemos que ir leyendo hasta identificar el prompt y leer a partir de ahí, pues bien, con la coloración del prompt no evitaremos estos quebraderos de cabeza


Bien, abriremos una terminal y como automáticamente, esta está situada en la raiz de nuestro usuario pues solo tenemos que editar el archivo .bashrc

scorpyo@pc-cito:~$ nano .bashrc
Tenéis que moveros por el texto hasta encontrar las siguientes lineas:
--------------------------------texto-----------------------------

 # set a fancy prompt (non-color, unless we know we "want" color)
case "$TERM" in
    xterm-color) color_prompt=yes;;
esac
---------------------------------------------------------------------
Tenéis que dejarlo comentado poniendo una almoadilla delante así:
--------------------------------texto-----------------------------


 # set a fancy prompt (non-color, unless we know we "want" color)
#case "$TERM" in
#    xterm-color) color_prompt=yes;;
#esac
---------------------------------------------------------------------

Luego seguid bajando y haced lo contrario para esta linea:
#force_color_prompt=yes
Tenéis que dajarla así:
force_color_prompt=yes
 Ahora solo apretar Ctrl+o  y luego enter para guardar los cambios con el mismo nombre de archivo.
Para salir apretar Ctrl+x
Listo, ahora salir de la terminal y volver a abrirla, ¡Tachán!
Saludos.