martes, 11 de mayo de 2010

Fstab « Hatteras's Blog

Fstab « Hatteras's Blog

Preguntas habituales, y sus respuestas, sobre el archivo fstab

Aunque este tema este dividido en varias preguntas, No es conveniente leer solo la pregunta que en principio parezca importarnos mas en un momento dado, sino que para una mejor comprensión Es Recomendable leerse Todo el tema.
También hay que tener en cuenta que las líneas que aparecen en color son solo ejemplos, ya que varían de un sistema a otro en función de en que partición este montado el sistema o un pendrive o disco duro.
¿Que es, para que sirve el archivo /etc/fstab?: La lista de sistemas de ficheros disponibles en nuestro Pc, está contenida en el fichero /etc/fstab. Este archivo esta constituido por varias lineas de texto, y cada línea da información sobre cada uno de los sistemas de ficheros que deberían estar disponibles para tu PC.

(Seguir Leyendo)


Comprender el significado de los datos que aparecen en el archivo fstab:
Este es un ejemplo del archivo /etc/fstab
# /etc/fstab: static file system information.
( las lineas que empiezan por # no son “leidas” como un comando, sino que sirven como “etiqueta” de la linea que va a continuación)# /etc/fstab: static file system information.
#
# linux ficheros raiz
label=/ / ext3 defaults,errors=remount-ro 0 1
# linux home
/dev/hdc4 /home ext3 defaults 0 2
# disco duro 1 con windows xp
/dev/hda1 /media/hda1 ntfs-3g defaults,locale=es_ES.UTF-8 0 1
# usb-pendrive
/dev/sda1 /media/usb-disk vfat users,defaults,utf8,umask=0 0 2
# swap
/dev/hdc3 none swap sw 0 0
# disco duro 2
/dev/hdc1 /media/hdc1 auto users,defaults 0 2
# dvd
/dev/hdb /media/cdrom0 udf,iso9660 user,noauto 0 0
# cdrom
/dev/hdd /media/cdrom1 udf,iso9660 user,noauto 0 0
#disquet
/dev/fd0 /media/floppy0 auto rw,user,noauto 0 0
Vamos a empezar con cada uno de los componentes que integran las ordenes del archivo Fstab.
<file system> <mount point> <type> <options> <dump> <pass>
por ejemplo:

I) Sistema de Archivos: es el dispositivo local o remoto que vamos a montar.  ( en la imagen-> en Rojo)
— Normalmente se trata del fichero de dispositivo Linux a montar (por ejemplo /dev/hdc4), pero también puede ser una entrada con el patrón nombre_de_ordenador_en_red: directorio para sistemas de ficheros en red tales como NFS.
— Los sistemas de ficheros ext2 y ext3 también se pueden identificar por el nombre asignado a su etiqueta de volumen (Label ) cuando fueron creados. Por ejemplo, la entrada label=/ en el fichero de ejemplo /etc/fstab se podría sustituir por /dev/hdc2 porque se trata de la partición de disco donde reside el sistema de ficheros raíz. Utilizar etiquetas es más flexible que utilizar ficheros de dispositivos de particiones concretas, ya que el fichero de dispositivo asociado a una partición puede cambiar si ese disco duro lo llevamos a otro ordenador o añadimos discos nuevos al nuestro.
—También se puede identificar una partición por su UUID: para saber el UUID ( etiquetas identificativas únicas ) de las particiones: teclear en una terminal el comando:
ls -l  /dev/disk/by-uuid/
Elegir el número que aparezca en la partición: en este ejemplo el UUID es:
97b1b9f6-30c9-43a1-82d6-518e7e35e1ec
Se puede sustituir /dev/hdc4 por su UUID
II) Punto de montaje: es el directorio en donde queremos montar el sistema de ficheros, por ejemplo: /media/cdrom0 o /home   ( En la imagen -> en Azul)
Para tipos especiales de particiones que no deben montarse, tales como las particiones de intercambio o swap, éste campo debería tener la entrada (la palabra) none.
III) Tipo: define el tipo del sistema de ficheros. ( En la imagen -> en Verde ). Las entradas más frecuentes en éste campo son:
- ntfs : Si es de WindowsXP
- fat : Si es Windows98 con particion tipo fat 32,
- vfat: Si es Windows 98 con particion tipo fat 16
- iso9660: Para cdroms, dvd y regrabadoras de cd y dvd
- sw: Para la particion de intercambio swap
- ext2 o ext3 : Para / y /home ( en Guadalinex es ext3)
- auto: Si deseas, porque no estas seguro de que tipo se trata, puedes poner auto, y así fstab lo detecta automáticamente.
- ignore: Si un sistema de ficheros no se está usando pero se quiere mantener su entrada en /etc/fstab, puedes poner ignore, evitar el montaje del sistema de ficheros, su comprobación de consistencia, y el resto de operaciones.
IV Opciones: ( en la imagen -> en Amarillo ). Parámetros opcionales para Fstab
Contiene una lista de parámetros, separados por comas, con las opciones que necesite el comando mount para montar el sistema de ficheros. Muchas de estas opciones son específicas de cada sistema de ficheros.
Las más frecuentes son:
1- auto: Con esta opción hacemos que el dispositivo que la contenga sea iniciado siempre que se inicie el sistema, es decir, cada vez que este sea encendido. Es decir que sera montado siempre. o bien cuando se ejecute mount -a.
2- noauto: Esta es la opción contraria a auto, con ella hacemos que el dispositivo no sea montado al iniciarse el sistema, y tan solo sera montado en el momento en el que queramos usarlo; esta opción suele ser utilizada con dispositivos como las disqueteras, cd-roms, dvd, pendrives-usb…, es decir, todos aquellos dispositivos que no es necesario que se monten al arranque del sistema.
3- async: Con esto hacemos que las operaciones que realicemos no se hagan en el mismo momento en que las realizamos/pedimos, si no que pueden ser realizada mas adelante.
4- sync: Es la opción contraria a async. Añadiendo la opción sync fijaríamos que los datos sean transferidos, guardados o borrados, en el momento en que pedimos que se hagan. Esta opcion puede servir de mucho, y sobre todo ahorrarnos tiempo en la manera en la que se transfieren datos a dispositivos como los pen-drives y aquellos que se utilizan mediante conexión usb en los cuales necesitamos acceso/transferencia rapido/a.
5- dev: Al activar esta opción permitimos que puedan usarse nodos de dispositivo en el sistema de archivos, o, lo que es lo mismo, que se interpreten como tal los dispositivos especiales de bloques y de caracteres presentes en el dispositivo, el dispositivo (de bloques o de caracteres) es local (un disco duro interno o usb,) no es dispositivo de red
6- nodev: con esto impedimos que puedan usarse nodos de dispositivo en el sistema de archivos, es decir, con esta opción impedimos que se interpreten los dispositivos especiales de bloques y de caracteres presentes en el dispositivo.
7- exec: esta opcion hace que puedas ejecutar programas, ficheros script (guiones), o cualquier otra cosa cuyos permisos indiquen que es ejecutable, de ese sistema de ficheros.
8- noexec: Impide la ejecución de cualquier archivo en el dispositivo en el que esta opción sea activada, esta opción suele ser muy útil cuando en una misma maquina diversos usuarios tienen acceso a un mismo dispositivo y no queremos que estos puedan ejecutar archivos en los dispositivos, con esto ganamos en seguridad, ya que impedimos que los otros usuarios puedan ejecutar cualquier tipo de archivo “maligno” a través del cual lo que realmente quieren conseguir es escalar privilegios en el sistema,.
9- gid=Valor: Con esta opción indicamos que tan solo el grupo que posee el Valor especificado tenga el control sobre los archivos del dispositivo. Establece el ID (identificador) de grupo del sistema montado a ese valor cuando se termina de montar el sistema de ficheros. Puede tratarse de un valor numérico gid=1000 o del nombre del grupo de usuarios (gid=users,gid=usuarioslectordvd)
10- uid=Valor: Con esta opción indicamos que tan solo el usuario que posee el Valor especificado tenga el control sobre los archivos del dispositivo.
11- owner: indica que el propietario del sistema de ficheros ( el que tiene derechos a montar y desmontar el dispositivo ) será aquel que lo montó ( el primer usuario distinto de root conectado al sistema localmente), pero normalmente sera el usuario root si el sistema de ficheros viene configurado para montarse automáticamente durante el arranque.
12- ro: read-only. Con esta opcion hacemos que no se pueda escribir en el dispositivo, que tan solo se pueda leer.
13- rw: read-write. Con esto montamos la partición para que sea posible tanto leer como escribir en el dispositivo físico, esta opción es muy usada con dispositivos que permiten la escritura como por ejemplo los pendrive o los disquets, ya que sin esta opción, no podríamos guardar datos en dichos dispositivos.
14- suid: indica que el permiso tenga efecto para los ejecutables presentes en el dispositivo.
Permite el cambio del ID de usuario o grupo del usuario a los programas que efectúen operaciones sobre el sistema de ficheros, siempre que sus bits de permisos lo permitan. Tenga mucho cuidado usando ésta opción con sistemas de ficheros ajenos que en realidad no estés administrando, ya que ejecutar un programa que establezca su UID (identificador de usuario) a root es una forma corriente de romper la seguridad de un sistema.** uid=valor: establece el ID de usuario del sistema montado al valor valor. Igual que con gid, podemos escribirlo con el número identificador del usuario uid=37 o con el nombre del usuario uid=hatteras
15- nosuid: es lógicamente la opción opuesta a suid. Salvo casos excepcionales, no debe haber ninguna razón para que se permita la ejecución de programas suid en los directorios /home/usuario. Esto lo podemos evitar usando la opción `nosuid’ en el fichero /etc/fstab para las particiones que tengan permiso de escritura por usuarios distintos al root. También puede ser útil usar `nodev’ y `noexec’ en las particiones de los directorios personales de los usuarios (o en /home/usuario ),lo que prohíbe la creación dispositivos de bloque o carácter y la ejecución de programas.
16- user: Permite a cualquier usuario del sistema montar o desmontar un dispositivo físico sin necesidad de ser root, esta opción es muy útil para dispositivos de uso frecuente, como cd-roms o disquetes. Pero tambien debe tenerse en cuenta, que el usuario que montó el dispositivo, solo el mismo usuario podrá desmontar el dispositivo. La opción opuesta es nouser.
17- users: indica que cualquier usuario puede montar y cualquiera también, puede desmontar el dispositivo.
18-nouser: debes ser el usuario root para montar el sistema de ficheros, nadie más que el superusuario podrá hacerlo.
19- defaults: Esta opción es la unión de las opciones rw, suid, dev, exec, auto, nouser y async
Puedes consultar la ayuda del comando mount si necesitases mas parametros, aunque como ya dije estos son los mas comunes, aunque tal vez no se apliquen a tus necesidades.
Para consultar la ayuda del comando mount; abrir una Terminal, y escribir: $ man mount ( y despues a la tecla intro) ( desgraciadamente esta ayuda esta en ingles ).
V) : (en la imagen -> en Morado ) el comando dump, es un comando estándar del sistema de ficheros Unix/Linux usado para respaldar información (back-ups); el valor de esta opcion sirve para identificar los sistemas de ficheros que deberían incluirse en las operaciones de copia de seguridad cuando se ejecute el comando dump.
Esta opcion solo puede poseer el valor 0 o 1,
Si su valor es 0 ( o falta ) indica al comando dump que no es necesario hacer copia de seguridad del sistema de ficheros asociado a la correspondiente línea de /etc/fstab
Si su valor es 1se hará un backup con las opciones, creando backup por si surge algún tipo de problema, lo normal es tenerlo desactivado (0), ya que rara vez se produce un error.
VI)= : (en la imagen -> en Naranaja ) Este campo le sirve al comando fsck (algo asi como el scandisk en windows) para identificar los sistemas de ficheros cuya consistencia hay que comprobar en el siguiente reinicio, y el orden en el que hay que efectuar esa comprobación.
Si su valor es 0 o falta el programa fsck asume que no es necesario comprobar el sistema de ficheros asociado a la línea en /etc/fstab , y el sistema no realizara nunca ninguna pasada para comprobar la integridad del dispositivo físico ( normalmente ponemos 0 en el cdrom, dvd, disquet, pendrive y particion swap), y por ello es recomendable tenerlo en activado en las particiones : para / usamos 1 y 2 para el resto de las particiones: el sistema realizara una pasada cada X desmontadas ( en guadalinex V4 creo que es cada 30 reinicios del sistema ) o si el dispositivo ha sido desmontado incorrectamente para comprobar su integridad.

lunes, 10 de mayo de 2010

Como añadir una linea nueva en el archivo /etc/fstab | Ubuntu Hispano

Como añadir una linea nueva en el archivo /etc/fstab | Ubuntu Hispano
Fuente: Ubuntu Hispano

Para añadir una linea nueva necesitamos saber 4 cosas: el valor de la identidad de la partición, el lugar donde se va a montar la partición, los atributos que se le van a dar a esa partición y el formato de la misma.

Para editar el archivo "/etc/fstab" hay que abrirlo con vuestro editor de texto preferido utilizando privilegios de administrador.

sudo nano /etc/fstab

Para guardar cambios en nano hay que utilizar la combinación ctrl+o, y para salir ctrl+x.

Primeramente utilizamos este comando para averiguar las particiones que contiene nuestro sistema (disco duro, memoria usb, telefono etc) y comprobar que formato tiene cada una de ellas.

sudo fdisk -l

Esto genera una lista con los datos correspondientes.

Para sacar la identidad de la partición correspondiente es necesario utilizar el comando:

sudo vol_id --uuid /dev/hdax

Donde hdax es la partición que hemos escogido para añadir en el archivo fstab. Nos apuntamos la identidad de esta partición. Por ejemplo: 257deaa4-7dc4-47e2-863c-6f6866104def6 (este es un ejemplo, el id de cada partición varia con cada disco duro y cada formateo, este id es de un formato ext3, los formatos fat32 suelen tener un id muy corto).

Cuando vayamos a montar una partición es importante saber de antemano donde la vamos a montar porque tendrá que haber una carpeta allí. Así que creamos una carpeta de ejemplo:

sudo mkdir /mnt
sudo mkdir /mnt/carpeta

Atención, a partir de ahora todas las lineas que empiezan por UUID son las que se deben escribir en el archivo fstab pero las que están en esta wiki solo son de ejemplo, no hay que copiar y pegar el UUID que aparezca aqui, eso lo tendrán que sacar ustedes. En el caso de que nuestra partición sea Linux las lineas suelen contener la misma información, solo cambia la clase de formato:

UUID=257deaa4-7dc4-47e2-863c-6f6866104def6 /mnt/carpeta ext2 user,exec,rw,auto,async,noatime 0 0
UUID=257deaa4-7dc4-47e2-863c-6f6866104def6 /mnt/carpeta ext3 user,exec,rw,auto,async,noatime 0 0
UUID=257deaa4-7dc4-47e2-863c-6f6866104def6 /mnt/carpeta reiserfs user,exec,rw,auto,async,noatime 0 0

user sirve para que todos los usuarios tengan permiso para montar y desmontar la partición (contrario simplemente no añadir)
exec sirve para que podamos ejecutar binarios en esa partición (contrario noexec)
rw leer/escribir en la partición (contrario ro)
auto al iniciar la computadora la partición se monta automaticamente (contrario noauto)
noatime la información respecto a cuando se ha accesado un fichero de la partición la ultima vez no se actualiza (contrario atime)
async sirve para que la escritura en la partición correspondiente se retrase un determinado tiempo en llevar a cabo, eso quiere decir que por ejemplo al copiar un fichero en esta partición este no se copia instantaneamente sino que se copiará cuando el sistema tenga suficiente recurso como para poder hacerlo. Por ejemplo si el sistema tiene una gran carga, o si se realiza la copia de varios ficheros al mismo tiempo no congestionar esta operación. (contrario es sync, Nota: sync se puede ejecutar como usuario normal para sincronizar las particiones)

Luego siguen dos 0 que el primero de ello simboliza un valor lógico (0 o 1) que indica si se debe intentar escribir un registro con los fallos que se han tenido al accesar la información de esa partición. El segundo 0 simboliza si se debe llevar a cabo comprobación periódica del sistema de ficheros.

Para particiones con formato fat32:

UUID=863c-6f6866104def6 /mnt/carpeta vfat fmask=033,umask=033,dmask=033 0 0

fmask permisos que se aplican sobre todos los ficheros de la partición,
umask permisos que tiene los usuarios que acceden a esta partición,
dmask permisos que reciben las carpetas de esta partición

¿Porque 033? Ver aqui.

fmask,umask y dmask se pueden sustituir por uid (identidad de usuario) y gid (identidad de grupo). Así:

UUID=863c-6f6866104def6 /mnt/carpeta vfat uid=1000,gid=1000 0 0

Para averiguar el gid y el uid que tocan hay que ejecutar

cat /etc/group

Y allí aparece la información en cuanto al id del grupo en donde está contenido nuestro usuario. Normamlmente ese grupo tiene el mismo nombre que nuestro usuario. Vease tambien:

groups

Para particiones con formato NTFS. Primero debemos instalar las herramientas necesarias para poder trabajar con estas particiones:

sudo aptitude install ntfs-3g ntfsprogs

Y luego:

UUID=257deaa4-7dc4-47e2-863c-6f6866104def6 /mnt/carpeta ntfs-3g locale=es_ES.utf8,fmask=033,umask=033,dmask=033 0 0

El locale=es_ES.utf8 es la codificación de caracteres que se utilizará conforme nuestro pais.

Importantisimo añadir una linea en blanco al final del archivo fstab, si no, mount nos dará errores.Para añadir una linea en blanco cuando estamos con el cursor al final de la ultima linea pulsar intro, y luego guardar.


domingo, 9 de mayo de 2010

¿Cómo se cambian los permisos de ficheros y directorios en Linux? | El rincón de Linux

¿Cómo se cambian los permisos de ficheros y directorios en Linux? | El rincón de Linux
Fuente: Informacionlinux.es.org

En este corto articulo tratamos el tema de como cambiar los permisos de ficheros y directorios en nuestro sistema Linux. Todo los comandos y ejemplos que se citan deben ejecutarse desde la linea de comandos en una terminal. Tambien decir que existen programas en modo grafico donde se puede conseguir lo mismo que aqui se explica a golpe de raton.

Lo primero que hay que decir es que para conseguir toda la información sobre los comandos involucrados en el tema de permisos podeis consultar los comandos man chmod, man chown y man chgrp

Información de un fichero/directorio

Cuando obtienes información sobre un fichero/directorio con el comando ls, existen diferentes campos que te dicen que clase de permisos el fichero/directorio tiene.
Ejemplo:

[user@localhost]# ls -l
-rwxr-x---   1 pepito depart1     4348 Nov 24 16:19 test
En la primera columna se pueden ver una serie de letras y guiones -rwxr-x---, estas letras nos dicen quien en el sistema, y que clases de permisos tiene el fichero test.
Estas letras están agrupadas en tres grupos con tres posiciones cada uno, más una primera posición que nos dice de que clase de archivo se trata (los mas normales (d) directorios, o (-) archivos de datos). En nuestro ejemplo la primera posición es (-) con lo cual el archivo test, es un archivo de datos (binario/ejecutable en este ejemplo).
El primer grupo de tres (rwx en nuestro caso) nos dice que clase de permisos tiene el dueño del fichero (u)(user/owner)
El segundo grupo de tres (r-x en nuestro caso) nos dice que clase de permisos tiene el grupo del fichero (g)(group).
Y el último grupo de tres (--- en nuestro caso) nos dice que clase de permisos tienen todos los demás usuarios del sistema sobre este
fichero (o)(others).
r :significa permiso para leer
w :significa permiso para escribir 
x :significa permiso para ejecutar 
La segunda columna pepito, nos dice quien es el dueño del fichero,(pepito en este caso).
La tercera columna depart1, nos dice cual es el grupo del fichero (depart1 en este caso).
La cuarta columna 4348, nos dice el tamaño del fichero.
La quinta columna Nov 24 16:19, nos dice cual es la fecha y hora de la última modificación.
La sexta columna test, nos dice cual es el nombre del fichero/directorio.
Asi pues, el fichero test de nuestro ejemplo tiene los siguientes permisos:
  • pepito puede leer, escribir/modificar, y ejecutar el fichero test.
  • Los usuarios pertenecientes al grupo depart1 puede leer, y ejecutar pero no escribir/modificar.
  • Los demás usuarios no pueden hacer nada, ni leerlo, ni escribir/modificar, ni ejecutarlo.

Como cambiar los permisos/dueño/grupo de un fichero/directorio?

Para cambiar el dueño del fichero se utiliza el comando : chown usuario fichero
Para cambiar el grupo del fichero se utiliza el comando: chgrp grupo fichero
Para cambiar los permisos se utiliza el comando: chmod permisos fichero
Los permisos se pueden especificar de diferentes maneras, una serie de ejemplos, es lo mejor para comprenderlo:
chmod ugo+rwx test (da permisos rwx a todos, user,group,others)
chmod ugo-x test (quita permiso x (ejecucion) a todos, user,group,others)
chmod o-rwx test (quita permisos rwx a others)
chmod u=rwx,g=rx test (da permisos rwx a user, rx a group y ninguno a others)
Asi podriamos continuar con todas las posibles combinaciones de letras, es cuestión de usar la imaginación ;-)
Existe otro metodo que utiliza numeros, en vez de letras para asignar permisos, la siguiente tabla nos puede ayudar un poco a comprender esta manera:
r w x  VALOR DECIMAL

0 0 0  0 (000 binario es 0 en decimal)
0 0 1  1  .........
0 1 0  2  .........
0 1 1  3  .........
1 0 0  4 (100 binario es 4 en decimal)
1 0 1  5  .........
1 1 0  6  .........
1 1 1  7 (111 binario es 7 en decimal)
1 significa activado y 0 desactivado, o sea 101, activa r y x, y desactiva w. Sabiendo esto solo tenemos que usar el valor decimal para dar solo permisos de lectura y ejecucion, un ejemplo aclarara esto.
chmod 750 test

da permisos rwx al usuario (7=111) 
da permisos r-x al grupo (5=101) 
da permisos --- a los demas (0=000) 
Esto es todo por hoy, esperamos que tengais un poco mas claro lo de los permisos de ficheros en Linux y que le vayais perdiendo el miedo a la linea de comandos

Otro manual sobre este tema:
Fuente: linuxcentro.net

¿COMO SE CAMBIAN LOS PERMISOS?

Para cambiar los permisos se puede hacer de 2 maneras:
  1. Utilizando taquigrafía basada en caracteres, o
  2. Utilizando números.

1. CAMBIO DE PERMISOS UTILIZANDO TAQUIGRAFÍA DE CARACTERES

Para poder utilizar la taquigrafía basada en caracteres tomemos en cuenta la siguiente lista con su respectiva correspondencia:

Símbolo
Descripción
Identidades
u
Es el usuario propietario del archivo o directorio
g
Es el grupo al que pertenece el archivo o directorio
o
Otros usuarios, el resto del mundo, ni el propietario ni su grupo
a
Todo el mundo – propietario, grupo y otros
Permisos
r
Acceso de lectura
w
Acceso de escritura
x
Acceso de ejecución
Acciones
+
Añade los permisos
-
Elimina los permisos
=
el único permiso
Vamos a practicar con el comando chmod, para ello lo primero que haremos será crear el archivo foto1.png para ver los cambios de permisos, así que les recomiendo seguir la secuencia:
Ejemplo
Descripción
Resultado
$ touch foto1.png
creamos el archivo foto1.png
foto1.png
$ chmod a-rwx foto1.png
quitamos todos los permisos al archivo foto1.png
---------
$ chmod u+rwx foto1.png
añadimos todos los permisos para el propietario
rwx------
$ chmod g+x foto1.png
añadimos el permiso de ejecución para el grupo
rwx—x---
$ chmod o+r foto1.png
añadimos el permiso de lectura para los otros usuarios
rwx—xr--
$ chmod u-rw foto1.png
eliminamos los permisos de lectura y escritura para el propietario
--x—xr--
$ chmod a=r foto1.png
establecemos como unico permiso de lectura para los 3 grupos
r—r—r--
$ chmod a=rx foto1.png
establecemos los permisos de lectura y ejecución para los 3 grupos
r-xr-xr-x
$ chmod a=- foto1.png
quitamos todos los permisos
----------
$ chmod u+rx,o+x foto1.png
añadimos los permisos de lectura y ejecución al propietario y ejecución a otros
r-x-----x
$ chmod g+rx,o-x foto1.png
añadimos permiso de lectura y ejecución al grupo y eliminamos permiso de ejecución a otros
r-xr-x---
$ chmod ug+wx,o-x foto1.png
añadimos permiso de escritura y ejecución al propietario y grupo, y eliminamos permiso de ejecución a otros
rwxrwx---
$ chmod a=rw foto1.png
permite a cualquiera modificar el contenido e incluso eliminar el archivo
rw-rw-rw-
Si cambiamos los permisos a un directorio y deseamos que estos permisos tengan efecto sobre todos sus subdirectorios y archivos sólo deberemos añadir la opción –R. Ejemplo:
$ chmod a=rw DIRECTORIO –R

2. CAMBIO DE PERMISOS UTILIZANDO NÚMEROS

Cada permiso tienen asignado un valor, incluso cuando el permiso no está activo. Para poder utilizar los números tendremos que tener en cuenta la siguiente tabla con sus respectivos valores:
r = 4 (lectura)
w = 2 (escritura)
x = 1 (ejecucion)
- = 0 (sin permisos)

Cuando asignamos los permisos utilizando números debemos tener en cuenta que primero se sumarán los valores y dicho resultado será el que se coloque, aquí una tabla que muestra dichos valores:
Valor
Permisos
Descripción
0
---
El valor cero significa  que no se han asignado permisos
1
--x
sólo se ha asignado el de ejecución
2
-w-
sólo permiso de escritura
3
-wx
permisos de escritura y ejecución
4
r--
sólo permiso de lectura
5
r-x
permisos de lectura y ejecución
6
rw-
permisos de lectura y escritura
7
rwx
permisos: lectura, escritura y ejecución
Los permisos por números se asignan en grupos de 3, es decir, para el propietario-grupo-otros, no es factible asignar solo para uno o dos de ellos.
Ejemplos:
  • rw------- (600) — Sólo el propietario tiene el derecho de leer y escribir.
  • rw-r--r-- (644) — Sólo el propietario tiene los permisos de leer y escribir; el grupo y los demás sólo pueden leer.
  • rwx------ (700) — Sólo el propietario tiene los derechos de leer, escribir y ejecutar el archivo.
  • rwxr-xr-x (755) — El propietario tiene los derechos de leer, escribir y ejecutar; el grupo y los demás sólo pueden leer y ejecutar.
  • rwx--x--x (711) — El propietario tiene los derechos de lectura, escritura y ejecución; el grupo y los demás sólo pueden ejecutar.
  • rw-rw-rw- (666) — Todo el mundo puede leer y escribir en el archivo. ¡No es una buena elección!
  • rwxrwxrwx (777) — Todo el mundo puede leer, escribir y ejecutar. ¡Tampoco es buena elección!
Utilizaremos el mismo ejercicio anterior para poder practicar con los permisos utilizando números, el único cambio que haremos será utilizar otro archivo llamado foto2.png:
Ejemplo
Descripción
Resultado
$ touch foto2.png
creamos el archivo foto2.png
foto2.png
$ chmod 000 foto2.png
quitamos todos los permisos al archivo foto2.png
----------
$ chmod 700 foto2.png
añadimos todos los permisos para el propietario
-rwx------
$ chmod 710 foto2.png
añadimos el permiso de ejecución para el grupo
-rwx—x---
$ chmod 714 foto2.png
añadimos el permiso de lectura para los otros usuarios
-rwx—xr--
$ chmod 114 foto2.png
eliminamos los permisos de lectura y escritura para el propietario
---x—xr--
$ chmod 444 foto2.png
establecemos como unico permiso de lectura para los 3 grupos
-r—r—r--
$ chmod 555 foto2.png
establecemos los permisos de lectura y ejecución para los 3 grupos
-r-xr-xr-x
$ chmod 000 foto2.png
quitamos todos los permisos
-----------
$ chmod 501 foto2.png
añadimos los permisos de lectura y ejecución al propietario y ejecución a otros
-r-x-----x
$ chmod 550 foto2.png
añadimos permiso de lectura y ejecución al grupo y eliminamos permiso de ejecución a otros
-r-xr-x---
$ chmod 770 foto2.png
añadimos permiso de escritura y ejecución al propietario y grupo, y eliminamos permiso de ejecución a otros
-rwxrwx---
$ chmod 666 foto2.png
permite a cualquiera modificar el contenido e incluso eliminar el archivo
-rw-rw-rw-

 

CAMBIANDO PROPIETARIOS Y GRUPOS

Otra de los puntos a la hora de establecer permisos es la necesidad de poder cambiar el propietario y grupo del archivo o directorio, para hacer esta operación debe estar como root y los usuarios y grupos que utilizará deben haber sido creados previamente.

Cambiando el propietario

Utilizamos el comando chown explicado líneas arriba:
# chown clases foto1.png     # estamos cambiando el propietario del archivo, ahora el usuario clases será el propietario del archivo foto1.png
# chown raul foto2.png       # el usuario raul será el propietario del archivo foto2.png
Si vamos a cambiar el propietario de un directorio y con todos sus subdirectorios y archivos en forma recursiva utilizaremos la opción –R:
# chown clases datos/ –R         # el usuario clases sera el nuevo propietario de todos los archivos y subdirectorios que estén dentro del directorio datos/

Cambiando el grupo

Utilizamos el comando chgrp explicado líneas arriba:
# chgrp clases foto1.png    # estamos cambiando el propietario del archivo, ahora el archivo foto1.png será del grupo clases
# chgrp raul foto2.png      # el archivo foto2.png será del grupo raul
Si vamos a cambiar el grupo de un directorio y con todos sus subdirectorios y archivos en forma recursiva utilizaremos la opción –R:
# chgrp clases datos/ –R    # todos los archivos y sub directorios del directorio datos/ serán del grupo clases

sábado, 8 de mayo de 2010

Configuración de usuarios desde la línea de comandos

Configuración de usuarios desde la línea de comandos
Si prefiere las herramientas de línea de comandos o no tiene el sistema X Window instalado, use este capítulo para configurar usuarios y grupos.

Añadir un usuario

Para añadir un usuario al sistema:

  1. Emita el comando useradd para crear una cuenta de usuario bloqueada:
    useradd 

  2. Desbloquee la cuenta ejecutando el comando passwd para asignar una contraseña y configurar el vencimiento de la misma:
    passwd 
Las opciones de línea de comandos para useradd están en la Tabla 25_1.

OpciónDescripción
_c comentarioComentario para el usuario
_d home_dirDirectorio principal a ser usado en vez del directorio predeterminado /home/nombredeusuario
_e fechaFecha en que la cuenta será desactivada usando el formato de fecha YYYY_MM_DD
_f díasNúmero de días que pasarán después que la contraseña ha caducado hasta que la cuenta se desactivará (Si se especifica 0, la cuenta será desactivada inmediatamente después que la contraseña expire. Si se especifica _1, la cuenta no se desactivará después que la contraseña caduque.)
_g nombredegrupoNombre o número del grupo para el grupo predeterminado del usuario (El grupo debe existir.)
_G listadegrupoLista de nombres de los grupos adicionales (además del predeterminado), separados por comas, de los cuales el usuario es miembro (Los grupos deben existir.)
_mCrea el directorio principal si no existe
_MNo crea el directorio principal
_nNo crea un grupo de usuario privado para el usuario
_rCrea una cuenta de sistema con un UID menor que 500 y dentro del directorio principal.
_p contraseñaLa contraseña encriptada con crypt
_sLínea de comando de conexión del usuario, predeterminada a /bin/bash
_u uidID de usuario, el cual debe ser único y mayor que 499
Tabla 25_1. Opciones de línea de comandos para useradd

25.5.2. Añadir un grupo

Para agregar un grupo al sistema, use el comando groupadd:
groupadd 
Las opciones de línea de comando para groupadd están en la Tabla 25_2.

OpciónDescripción
_g gidID para el grupo, el cual debe ser único y mayor que 499.
_rCrea un grupo de sistema con un GID menor que 500.
_fSale con un error si el grupo ya existe. (El grupo no es alterado.) Si se especifica _g y _f, pero el grupo ya existe, la opción _g es ignorada.
Tabla 25_2. Opciones de línea de comando para groupadd

25.5.3. Vencimiento de la contraseña

Si las contraseña dentro de la organización son creadas centralmente por el administrador, al agregar nuevos usuarios significa que el administrador debe configurar la cuenta del usuario de manera que cuando el usuario se conecte por primera vez, el sistema le pedirá que cree una contraseña. Esto se puede hacer cuando se añade o modifica un usuario en la pestaña Información de contraseña del Administrador de usuarios.
Para configurar el vencimiento de la contraseña para un usuario desde el intérprete de comandos, use el comando chage, seguido de una opción desde la Tabla 25_3, seguido por el 'nombredeusuario' del usuario.
ImportanteImportante

La contraseña oculta debe estar activada para poder usar el comando chage.

OpciónDescripción
_m díasEspecifica el número mínimo de días entre los cuales el usuario debe cambiar su contraseña. Si el valor es 0, la contraseña no caduca.
_M díasEspecifica el número máximo de días durante los cuales la contraseña es válida. Cuando el número de días especificado por esta opción más el número de días especificado con la opción _d es menor que el día actual, el usuario debe cambiar su contraseña antes de usar la cuenta.
_d díasEspecifica el número de días desde Enero 1, 1970 que la contraseña fué cambiada.
_I díasEspecifica el número de días inactivos después de la expiración de la contraseña antes de bloquear la cuenta. Si el valor es 0, la cuenta no es bloqueada después que la contraseña caduca.
_E fechaEspecifica la fecha en la cual la cuenta es bloqueada, en el formato YYYY_MM_DD. También se puede usar el número de días transcurridos desde Enero 1, 1970 en lugar de la fecha.
_W díasEspecifica el número de días antes de la fecha de expiración de la contraseña para advertir al usuario.
Tabla 25_3. Opciones de línea de comando de change
SugerenciaSugerencia

Si el comando chage está seguido directamente por un nombre de usuario (sin opciones), se visualizará los valores de vencimiento de la contraseña actual y le permite cambiar estos valores.
Si el administrador del sistema desea que un usuario configure su contraseña la primera vez que éste se conecte, la contraseña del usuario puede ser configurada a que expire de inmediato, obligando al usuario a cambiarla inmediatamente después de conectarse la primera vez.
Para obligar al usuario a configurar su contraseña la primera vez que se conecte en la consola, siga los pasos siguientes. Este proceso no funciona si el usuario se conecta usando el protocolo SSH.

  1. Bloquear la contraseña del usuario — Si el usuario no existe, use el comando useradd para crear la cuenta del usuario, pero no le de la contraseña para que así permanezca bloqueada.
    Si la contraseña ya está activa, bloquéela con el comando:
    usermod _L nombredeusuario

  2. Obligar el vencimiento inmediato de la contraseña — Escriba el comando siguiente:
    chage _d 0 nombredeusuario
    Este comando coloca el valor para la fecha en que la contraseña fué cambiada la última vez (Enero 1, 1970). Este valor obliga a la expiración inmediata de la contraseña sin tomar en cuenta la política de vencimiento, si existe alguna.

  3. Desbloquear la cuenta — Hay dos formas comunes para realizar este paso. El administrador puede asignar una contraseña inicial o puede asignar una contraseña nula.
    AvisoAviso

    No use passwd para configurar una contraseña porque desactivará el vencimiento inmediato que se acaba de configurar.
    Para asignar una contraseña inicial, siga los pasos siguientes:

    • Arranque el intérprete de línea de comandos python con el comando python. Se mostrará lo siguiente:
      Python 2.2.2 (#1, Dec 10 2002, 09:57:09)
      [GCC 3.2.1 20021207 (Red Hat Linux 8.0 3.2.1_2)] on linux2
      Type "help", "copyright", "credits" or "license" for more information.
      >>>

    • En la línea de comandos, escriba lo siguiente (sustituyendo contraseña con la contraseña a encriptar y salt con una combinación de exáctamente 2 caracteres en mayúsculas o minúsculas, números, y el caractes punto (.) o la barra (/)):
      import crypt; print
      crypt.crypt("password","salt")
      La salida es la contraseña encriptada similar a 12CsGd8FRcMSM.

    • Presione [Ctrl]_[D] para salir del intérprete Python.

    • Corte o pegue la salida exacta de la contraseña encriptada, sin dejar espacios en blanco al principio o final, en el siguiente comando:
      usermod _p "contraseña_encriptada"
      nombredeusuario
    En vez de asignar una contraseña inicial, se puede asignar una contraseña nula con el comando:
    usermod _p "" username

jueves, 18 de marzo de 2010

Gestión Remota en Linux

Cada vez mas Linux tiende a la simplificación y al manejo de uso para los nuevos usuarios y cada distribución ofrece su propia herramienta de configuración del sistema, como por ejemplo Yast para Suse o Mandriva Control Center para Mandriva. En este tutorial vamos a ofrecer al usuario un nuevo modelo de configuración de su máquina, esta vez basada en web: Webmin.

Webmin es una cómoda herramienta mediante la cual vamos a poder configurar todo aquello que podríamos configurar con un programa hecho para estos menesteres, pero ayudados de nuestro navegador favorito y a golpe de ratón igual que estuviéramos navegando, con la seguridad de que solo nosotros vamos a poder usarlo y de que todos los cambios que hagamos en el sistema mediante él van a ser tan válidos como si se hubieran hecho con otra herramienta.

Bien, lo primero que haremos es bajarnos Webmin e instalarlo, por supuesto también podemos instalarlo desde los cds de nuestra distribución, pero en este manual veremos el primer caso por ser mas potente a la hora de configurarlo inicialmente.

Para su descarga iremos a la web oficial www.webmin.com y, en nuestro caso, nos descargamos la versión de “debian” que en estos momentos va por la 1.510.

Tendremos que cambiar la clave de Webmin, para ello ejecutaremos desde consola los siguientes comandos:

sudo /usr/share/webmin/chngepass.pl /etc/webmin root nueva_clave

Donde pone root lo podéis dejar o cambiarlo por otro usuario, lo mismo para la clave.

Luego debemos iniciar el servicio si no lo esta ya:

/etc/init.d/webmin start

Ahora ya solo nos queda ingresar desde el navegador (https://IPDEMIPC:10000) o, si lo preferís: https://localhost:10000

Cuando estéis a punto de entrar aun os va ha surgir otro problema relacionado con https (web segura cifrada), solo tenéis que añadir una excepción de seguridad (siguiendo las instrucciones del navegador) y listo.

Al principio todo esta en ingles, para cambiar el idioma vais a “webmin” “changes language and themes” en el menú de a izquierda y elegís el que queráis.

image

jueves, 4 de marzo de 2010

Recuperación del sistema de archivos

Normalmente con el sistema de ficheros ext3 no debe haber demasiados problemas porque todo debería resolverse de forma automática. Además no es necesario defragmentar las particiones porque Linux no fragmenta la información en el disco.

Si ocurriese un apagado indebido del ordenador sin haber cerrado el sistema y Linux solicitase una recuperación manual del sistema de ficheros, entonces deberá ejecutar el siguiente comando desde un terminal:

/sbin/fsck/ /dev/hda1

Para arreglar la primera partición primaria del primer disco duro, suponiendo que contenga a Lenix.

/sbin/fsck -a /dev/hda2

Realiza el proceso sobre la segunda partición del disco y evita las preguntas en el proceso (-a)


martes, 2 de marzo de 2010

Cambiar idioma de teclado en Linex

Si por alguna extraña razón la configuración de idioma de tu teclado ha cambiado (por ejemplo, al instalar driver de nVIDIA) puedes volver a ponerlo en español de la siguiente forma:

“Inicio – Otras – Disposición del Teclado”  y elegir el idioma que prefieras.

teclado

Editar el Arranque (GRUB)

Para editar los tiempos e inclusive elegir qué OS se iniciará primero, simplemente ve al Synaptic e instálate "startup manager".

Es una solución gráfica muy sencilla.

Una vez instalado tienes que ir (en Linex) a “inicio – sistema – administración – administrador de arranque”. y configurarlo a tu gusto.

image

Conocer información del sistema

Tenemos varios métodos para conocer la información de nuestro sistema, tanto de tipo grafico como en consola.

  • Consola: abrir una consola y tipear “uname”, si a uname le sigue –a nos devuelve la versión que tenemos, en mi caso: “Linux debianLinex 2.6.2-686 #1”. Si escribís uname –man os da información sobre este comando.
  • Método gráfico: Panel de Control (abajo, en la barra de tareas, el icono con forma de ruedas dentadas) – Sistema – Monitor del Sistema, de donde obtenemos mucha más información y de forma más cómoda.

image

Instalando Driver nVIDIA en Debian Lenny (Linex) – Intento 2 y definitivo

El driver de NVIDIA busca o crea un controlador del kernel precompilado para el sistema SO, en la mayoría de los casos no lo encuentra, ojo pero puede crearlo por sí mismo (en realidad de eso se trata). Para ello utilizamos el compilador de c y los headers del kernel, por ello los instalamos.

1.- El compilador ya viene incluido en lenny, caso contrario lo instalamos, además no basta con instalarlo ahí q indicarle a lenny que utilice el compilador q nosotros queramos en este caso 4.1 o el q necesite el driver.

$su
#apt-get install install gcc-4.1
#export CC=gcc-4.1

2.- Los headers casi siempre están instalados, de todas maneras un apt, no nos viene mal, El paquete build-essential es un metapaquete que engloba a varios, se suele utilizar para instalar controladores de fuente abierta.

#apt-get install build-essential linux-headers-`uname -r`

3.- Descargamos el driver de la pagina oficial nvidia, una recomendacion es si tienes un Intel Itanium o Itanium2, es el IA64. o Intel de 64bits que no es ninguno de los dos anteriores, o un AMD también de 64bits, es el AMD64/EMT64T(este es mi caso AMD 64 bits).Si es un procesador de 32bits, es el IA32.

4.- Instalamos el driver. es necesario hacerlo de la terminal control+F1, o detener el servidos Xorg. en nuestro caso, detendremos el servidor Xorg (/etc/init.d/gdm stop), y luego lo instalaremos. ojo si, utilizas KDE solamente cambia gdm por kdm.

#/etc/init.d/gdm stop
#sh NVIDIA-Linux-version-pkg1.run

5.- El proceso de instalación:

Aceptamos la licencia, “Acept”

Puede ocurrir que no encuentre la interfaz precompilada para nuestro kernel. por eso nos pregunta si queremos conectarnos a su web y buscarlo ahí. damos “Ok” en ese caso.

El instalador tampoco encuentra la interface en su pagina, por ello empezara a crearla. le Damos “Ok”.

Comienza el compilado, (en mi caso llego a compilar al 100 %), luego nos dirá si queremos que configure el servidor X, le damos “ok”, y nos devolverá la consola.

6.- Nos aseguramos que haya configurado el servidor X11,, sea no el caso, lo hacemos manualmente:

#nano /etc/X11/xorg.conf

Colocamos “nvidia” en la parte “driver” de la seccion “Device” si no esta ya echo.

En este punto a mi me aprecio todo bien, pero luego no supe salir de “nano” y reinicie todo el sistema.

7.- Ya esta todo, reiniciamos el servidor Xorg

#/etc/init.d/gdm start

Mis problemas:

Se supone que al iniciar el sistema debe aparecer un logo de nVIDIA, pero en mi caso no fue así. No tiene mayor importancia pues los dirvers si que quedaron cargados.

Para configurarlos debemos ir a inicio (gnuLinEx en mi caso) – Sistema – Preferencias – NVIDIA X Server Settings y se nos abrirá en modo grafico la configuración de la gráfica. Ahora ya tengo funcionando el Compiz a pleno rendimiento.

Mi “otro” problema y que fue el que más dolores de cabeza me dio:

Resulta que tengo la pantalla (plana de 17”) conectada al pc a través de un Switch KVM para controlar varios equipos, siempre lo había usado con Windows y no tenia problemas, pero al  parecer, desde Linex, el sistema no reconoce el monitor y me lo dejaba con una resolución de 640x480 y de 800x600 en el mejor de los casos sin posibilidad de cambiarlo. La solución fue conectar la pantalla directamente.

Webs de referencia: