Dic 13
2007TODO SOBRE EL SISTEMA DE FICHEROS…
Asignado a: (MANUALES DEL SISTEMA, SOLO UBUNTU) por Michael Garcia en 13-12-2007
Si vienes del mundo de Windows lo primero que te sorprenderá es que no está la unidad C:. La distribución de los discos y particiones en Linux es diferente. Ya en la instalación te puedes dar cuenta cómo se nombran los discos en Linux:
- El primer disco duro es /dev/hda (Hard Disk ide A)
- El segundo disco duro es /dev/hdb (Hard Disk ide B)
El disco tendrá una o varias particiones, así las del primer disco duro (/dev/hda) serán /dev/hda1, /dev/hda2, … Éstas tiene el equivalente a lo que en Windows se llama C:, D:, …etc.
En Linux todo es un archivo, y cuando digo todo es todo. Desde los archivos de datos hasta las particiones de los discos pasando por el ratón y la tarjeta de sonido. Los directorios también son archivos. Existe un directorio raiz (/) del que cuelga todo. Los dispositivos cuelgan del directorio /dev.
Referencias
Algunos de los directorios más interesantes:
- /: Raíz.
- /usr: Aquí se encuentra la gran mayoría de los archivos existentes en un sistema Linux, tales como documentación, casi la totalidad de los comandos de usuario, juegos, librerías, etc.
- /bin: Aquí están los comandos que pueden usar todos los usuarios (incluido el administrador o root).
- /sbin: Aquí están los comandos que sólo puede usar el administrador o root.
- /dev: Ahí están todos los dispositivos de nuestra máquina.
- /home: Lugar donde se almacenan las cuentas de usuarios.
- /lib: Enlaces a las librerías que se necesitan para el sistema.
- /var: Contiene información variable, como por ejemplo los logs del sistema (/var/log), correo local, etc.
- /tmp: Directorio temporal.
- /etc: Configuración global de los programas.
- /root: Cuenta del administrador.
- /boot: Aquí está todo lo necesario para arrancar el sistema.
- /media: Punto de montaje para sistemas de archivos montados localmente.
- /mnt: Antiguo punto de montaje para sistemas de archivos montados localmente. Hoy en día está en desuso y se conserva por razones históricas.
- /proc: Sistema de archivos virtual de información de procesos y del kernel.
Algunas referencias de Archivos conocidos:
- /etc/apt/sources.list: Este archivo configura la lista de repositorios para Añadir aplicaciones, ver Activar universe y multiverse para más detalles.
- /etc/X11/xorg.conf: Este archivo define y configura el entorno gráfico a cargar.
- /etc/fstab: Este archivo configura el acceso a los diferentes sistemas de archivos que hay en nuestro sistema.
- /etc/passwd: Este archivo controla el uso de usuarios, en contraseñas, con permisos y grupos que pertenecen a cada usuario, archivo muy importante si uno quiere tener un usario root más que el ya conocido root.
- /etc/readahead/boot y /etc/readahead/desktop: Estos archivos contienen la lista de rutas de todos los archivos que se van a cargar en la memoria caché durante el Inicio_del_sistema.
Permisos
El sistema de permisos de Linux es simple y efectivo. Existen tres tipos de permisos:
- Ejecución: Si es para un archivo será ejecutable y si es para un directorio significa que podemos pasar por él. Es representado por una X.
- Lectura: Si es para un archivo significa que podemos leerlo y si es un directorio es que podemos leerlo también. Es representado por una R.
- Escritura: Si es para un archivo será que podemos escribir en él y si es para un directorio significa que podemos crear ficheros dentro de él. Es representado por una W
También existen tres tipos de roles sobre los que se aplican estos permisos. Un archivo pertenece a un usuario y a un grupo:
- Usuario: El propietario del archivo.
- Grupo: Grupo al que pertenece el archivo.
- Otros: Los demás usuarios.
Veamos un ejemplo:
$ ls -l pg_backup.sh -rwxr-x--- 1 pepito usuarios 453 2005-02-17
09:35 pg_backup.sh
El archivo pg_backup.sh pertenece al usuario pepito y al grupo usuarios. Los permisos que tiene para el usuario son rwx lo que significa que el usuario pepito puede leer el archivo, escribir en él y ejecutarlo. Por la extensión vemos que es un script, por lo que es normal que se pueda ejecutar. Para el grupo tiene los permisos r-x. Eso significa que los miembros del grupo usuarios pueden leer el archivo y ejecutarlo, pero no modificarlo. Los permisos para los demás usuarios (otros) son —, por lo que un usuario que no sea pepito ni pertenezca al grupo usuarios no podrá leer, escribir ni ejecutar el archivo.
Cambio de permisos
Consola
El comando chmod se usa para designar los permisos de un archivo. Sólo el dueño del archivo y el root pueden cambiar los permisos. La sintaxis de chmod es:
chmod {a, u, g, o} {+, -} {r, w, x} nombre del archivo
donde:
u: corresponde al dueño del archivo g: corresponde al grupo o o a: corresponde al resto de los usuarios, a para todos
(all) y o para otros (others)
Para autorizar o desautorizar el permiso:
+: autoriza -: desautoriza =: resetea los permisos
Los tipos de permisos son:
r: lectura w: escritura x: ejecución
El comando chmod también acepta otros valores para cambiar los permisos. Es probable que hayas visto algo como:
sudo chmod 751 [nombre del archivo]
Es otro modo de gestionar los permisos; de forma binaria. El sistema es muy simple y cómodo: se considera un bit para lectura (r) otro para escritura (w) y otro para ejecución (x). Las combinaciones posibles son ocho y se muestran en la tabla siguiente:
| Decimal | r w x |
|---|---|
| 0 | 0 0 0 |
| 1 | 0 0 1 |
| 2 | 0 1 0 |
| 3 | 0 1 1 |
| 4 | 1 0 0 |
| 5 | 1 0 1 |
| 6 | 1 1 0 |
| 7 | 1 1 1 |
Un uno equivale a activar y un cero a desactivar los permisos. El equivalente decimal de los permisos se aplica en orden: dueño, grupo y cualquiera (u,g,a). Entonces en el ejemplo anterior el valor 751 actúa:
- Cediendo todos los permisos al dueño.
- Cediendo permiso de lectura y ejecución al grupo.
- Cediendo permiso de ejecución a cualquiera.
Interfaz gráfica
También podrás cambiar los permisos de forma gráfica; sólo tienes que darle con el botón derecho del ratón sobre el directorio o el archivo al que quieras cambiar el permiso y seleccionar la pestaña permisos.
Cambio de propietario
El cambio de propietario se hace empleando el comando chown :
chown (propietario):(grupo) (archivo)
Pondremos un ejemplo, supongamos que el usuario gaccardo desea darle una copia del archivo test.sxw al usuario pigu, el usuario pigu debe ser propietario de su copia para poder modificarla. Para esto debe cambiar el propietario y el grupo utilizando el comando chown.
Haciendo “ls -l” nos encontramos con un fichero asi:
-rwx-rw-r-- gaccardo gaccardo 435 sep 4 11:38 test.sxw
Por lo que en este caso el usuario gaccardo (actual propietario) deberá hacer :
[gaccardo@servidor priv]chown pigu:pigu test.sxw
Si vuelve a hacer “ls -l” encuentra que ha cambiado el actual propietario
-rwx-rw-r-- pigu pigu 435 sep 4 11:38 test.sxw


(5 votes, average: 4.6 out of 5)





ACERCA DE:

Exelente, años atras, por no leer articulos como estos me la pase dias buscando archivos de programa
realmente muy bueno el articulo. es una informacion mas que fundamental para todos los usuarios que estamos iniciando, o para los que ya iniciamos y todavia no le dimos mucha bola a esto. es muy util y fundamental.
supongo que no es informacion dificil de conseguir, pero asi ordenada y toda junta queda realmente muy buena para tener a mano, y no es necesario ahcer todo un rejunte.
muchisimas gracias!
Muy bien explicado, enhorbuena.
Una duda, si quieres hacer que un fichero sea rw para el propietario, luego quieres que un grupo de usuarios tengan también permiso de rw, y otro grupo solo de lectura, y que el resto no tengan acceso a nada. ¿Cómo se hace?
Estos mini-tutoriales me rejuvenecen por lo menos 5 años y este en concreto, por lo menos 10 años.
Gracias a el he resuelto una duda que ningun otro tutorial me solventaba. Con lo facil que es decir “esto, es esto y para esto”. Ya esta! Sin mas rodeos.
Muchisimas gracias.
Te he dejado un comentario hace un rato, donde preguntaba cómo podía hacer para poner determinados permisos en un fichero, ¿qué ha pasado?
Perdón, pero no había visto lo “pendiente de revisión”. Por favor, deja el comentario (borra este y el anterior si quieres), para que me puedan ayudar tus lectores. Gracias
si lo deje sin revisar dado que no tenia tiempo para responderlo, bueno dame un segundo y te lo explico
cambiar los permisos a un fichero es tan fácil como poner sudo chmod 777 [nombre del archivo] esto daría permisos totales sobre el archivo, ósea lectura escritura y ejecución, al dueño, al grupo y a otros, en cambio lectura y escritura seria 666 pero si lo que quieres es darle el mismo valor a todos pero por ejemplo — si quieres dar solo lectura y escritura a el dueño seria 600, únicamente podría leer y escribir el fichero el dueño, para que el dueño y el grupo lean y escriban y lo demás no tengan acceso seria 660 creo que con eso aclaro tus dudas usa los permisos binarios son mas fáciles imprime la tabla que puse y listo
si quieres cambiar el propietario y el grupo de un archivo tienes que poner chown [propietario]:[grupo] [nombre de fichero] y ya esta
Gracias por la respuesta pero no aclara mis dudas. Lo explicaré mejor, con un ejemplo:
Tengo los usuarios: ana, bea, cris, dora, eva y fani.
Quiero que ana y bea tengan permiso ‘rw’ sobre un fichero. cris y dora de ‘r’, y que eva y fani no puedan acceder.
(A lo mejor es obvio pero yo no lo veo, que alguien me ayude)
¿como dejo los permisos?
Claro bueno lo que tienes es que entrar en /etc/passwd con gedit ósea sudo gedit /etc/passwd y cambiar los grupos donde están agregadas esas personas, por ejemplo ana y bea seria propietarias cris y dora serian del grupo de la propietarias y eva y fani de otro grupo entonces con poner 640 como permisos del fichero tendrás el caso que pones como ejemplo, ahora no me he planteado ver si un fichero puede tener 2 propietarios en un rato de aviso voy a ver…
bueno por lo que veo… solo puede existir un propietario para un mismo archivo un grupo que tenga acceso y “otros” que seria el tratamiento para los que estén fuera del grupo de acceso así que darle permisos a un grupo de gente y otros a otro grupo de gente no se podría definir a un archivo, de todas formas preguntare a mis superiores el casi seguro que se puede pero no lo veo claro….
Gracias, pues a ver si veo la solución, si no: XFS
Michael, no se si lo habrás averiguado ya, de momento he encontrado media solución , que es poner los archivos en carpetas diferentes segun las combinaciones de ‘rw’ y ‘r’ con los usuarios, que necesite. Pero es que eso me va a ser difícil porqué me tocará enseñar a los usuarios a organizarse los archivos de determinada forma, o hacerlo yo que va a ser que no.
no tio yo vere a mi profe el lunes pero te digo le he preguntado a tios que saben y me han dicho que el sistema basico de permisos es simple y que tu quieres dar permisos distintos a varios grupos sobre un directorio o fichero esto se hace ya con servidores de autenticicacion y otros cosas que te complicaran la vida lo mas facil es que el dueño tenga un permiso alto los del grupo un estandar y los demas otro, 764 esto daria un juego parecido a lo que quieres, Sino te va a tocar montar un servidor LDAP
Eh Michael, háblales a tus amigos de los ACL’s. Gracias por tu ayuda. ánimo
Muy útil. Más de uno lo debería poner en PDF y colgárselo en su blog/página.
Editar el fstab ayudó a un amigo a no reinstalar Ubuntu (pues no indicó que /home lo quería en otra partición); esa fue la primera prueba de la superioridad de GNU/Linux.
Sin duda en la lista falta el archivo que más suelo editar: GRUB
/boot/grub/menu.lst
Ahí configuro el tiempo, si se debe mostrar el menú, hacer retoques, cambiar passwords…
Por otro lado, para ayudar a Gerard, se me ocurre un simple enlace. Pero por favor, todavía no os tireis de los pelos… un enlace duro -hard link- (exclusivo del mundo UNIX). Tengo entendido que un hard link direcciona directamente a la posición del archivo en el disco duro, por lo que si el archivo es modificado, los cambios se ven reflejados por igual (lo comprobé). Como “aparentemente” son dos archivos diferentes, se le podrán dar diferentes permisos a cada uno.
El documento se borra cuando se borran todos los enlaces.
Hard link:
#cd /home/ana/
#ln privado.txt /home/bea/
#ln privado.txt /home/cris/
#ln privado.txt /home/dora/
#chmod 600 privado.txt
#chmod 600 /home/bea/privado.txt
#chmod 400 /home/cris/privado.txt
#chmod 400 /home/dora/privado.txt
Si te he ayudado, ¡Bien por tí!. Si te he servido de ayuda, ¡Bien por mí!
Un saludo. Lo pondré en mi blog. [Y con el permiso de Michael: de paso haré un pdf con su interesante post del blog y lo colgaré en mi web]
No hay problema con tal y pongas una referencia a el blog en el pdf o post… gracias por colaborar en los comentarios
–gracias Michael
Las referencias nunca están de más.
Gerard, si no tuvieras dos propietarios con +rw todo sería más fácil, aunque si ese caso no fuera ficticio le pondría contraseña o usaría google docs y punto.
La contraseña es para quien lo pueda usar, conservando +rw para el dueño y el grupo y +r para otros.
Un saludo!!
[...] Lo Que Querias Saber Sobre El Sistema De Ficheros De Linux 4 01 2008 En “Linux Para Seres Humanos” he visto la siguiente informacion muy util para el Linuxero novato, tambien si vienen de [...]
[...] “Linux Para Seres Humanos” he visto la siguiente informacion muy util para el Linuxero novato, tambien si vienen de [...]
muyyy bueno mm hoy aprendi algo bueno grax
[...] “Linux Para Seres Humanos” he visto la siguiente información muy útil para el Linuxero novato, también si vienen de [...]