Módulo 1 — Operación de Sistemas Operativos GNU/Linux
Al finalizar vas a poder:
-rw-r----- 1 ana desarrollo ... informe.txt
La ruta debe ser accesible y las sesiones deben tener los grupos correspondientes.
-r--rw---- 1 ana desarrollo ... informe.txt
| Cuenta | Se aplica | ¿Puede escribir? |
|---|---|---|
| Ana, owner | U: r-- | No |
| Bruno, miembro de desarrollo | G: rw- | Sí |
Los conjuntos no se suman.
La misma letra permite operaciones diferentes.
| Bit | Operación |
|---|---|
| r | Leer contenido |
| w | Modificar contenido |
| x | Ejecutar, si el formato y las demás condiciones lo permiten |
El permiso de escritura no decide por sí solo si podemos borrar el archivo.
| Bit | Operación |
|---|---|
| r | Leer la lista de nombres |
| w | Modificar entradas, junto con x |
| x | Buscar nombres y atravesar el directorio |
Crear, borrar y renombrar requieren normalmente w + x en el directorio padre.
Atravesar un directorio es usarlo como parte de una ruta para llegar a un archivo o subdirectorio. Por ejemplo, abrir /srv/equipo/informe.txt requiere x en /, /srv y /srv/equipo, aunque no entremos antes con cd.
| Permisos disponibles | Qué podemos hacer |
|---|---|
| r sin x | Obtener nombres; no acceder a esos objetos por esa ruta |
| x sin r | Acceder a un nombre conocido, si sus permisos lo permiten; no enumerar el directorio |
| r + x | Listar y buscar; cada archivo conserva sus permisos |
/srv/equipo/informe.txt
Para abrir informe.txt necesitamos:
/, /srv y /srv/equipo.informe.txt para leerlo.Un archivo legible puede quedar inaccesible por un directorio intermedio.
| Operación | Dónde miramos |
|---|---|
| Agregar una línea | Escritura en el archivo y búsqueda en la ruta |
| Crear un archivo | Escritura y búsqueda en el directorio padre |
| Borrar un nombre | Escritura y búsqueda en el padre, más las restricciones aplicables |
Ana puede borrar prueba2.txt de Bruno si tiene w+x en /srv/prueba y no hay una restricción adicional. rm quita el nombre del directorio; el owner del archivo no decide por sí solo.
Para verificarlo: id y ls -ld /srv/prueba. El bit sticky puede limitar el borrado.
Definir quién necesita hacer qué.
chmod +x script.sh # Agregar ejecución
chmod +w informe.txt # Agregar escritura
chmod g+w informe.txt # Agregar escritura al grupo
chmod u=rw,g=r,o= informe.txt
| Parte | Significado |
|---|---|
| u, g, o, a | Owner, grupo, otros, todos |
| + | Agregar |
| - | Quitar |
| = | Establecer |
Sin u, g, o o a, la umask filtra qué bits se modifican. +w no siempre equivale a a+w.
Cada permiso es un bit: 1 = habilitado · 0 = deshabilitado.
Las posiciones de rwx valen 2² = 4, 2¹ = 2 y 2⁰ = 1.
| Permisos | r · 4 | w · 2 | x · 1 | Suma de los valores activos | Octal |
|---|---|---|---|---|---|
--- |
0 | 0 | 0 | 0 | 0 |
--x |
0 | 0 | 1 | 1 | 1 |
-w- |
0 | 1 | 0 | 2 | 2 |
-wx |
0 | 1 | 1 | 2 + 1 | 3 |
r-- |
1 | 0 | 0 | 4 | 4 |
r-x |
1 | 0 | 1 | 4 + 1 | 5 |
rw- |
1 | 1 | 0 | 4 + 2 | 6 |
rwx |
1 | 1 | 1 | 4 + 2 + 1 | 7 |
rw- → 110₂ → 1×4 + 1×2 + 0×1 → 6₈
Tres bits tienen ocho combinaciones: cada grupo U, G u O se representa con un dígito octal de 0 a 7.
r = 4 · w = 2 · x = 1
rw- = 4 + 2 = 6
r-x = 4 + 1 = 5
rwx = 4 + 2 + 1 = 7
--- = 0
Tres dígitos: U · G · O.
chmod 640 informe.txt
Owner: rw- · Grupo: r-- · Otros: ---
| Modo | Permisos | Uso ilustrativo |
|---|---|---|
| 600 | rw------- | Archivo privado |
| 640 | rw-r----- | Archivo legible por el grupo |
| 660 | rw-rw---- | Archivo editable por el grupo |
| 750 | rwxr-x--- | Directorio consultable por el grupo |
| 770 | rwxrwx--- | Directorio modificable por el grupo |
El acceso también depende de la identidad y de la ruta.
Puede hacerlo el owner o un proceso con los privilegios necesarios.
Poder escribir por el grupo no convierte a Bruno en owner.
ls -l informe.txt
chmod g+w informe.txt
ls -l informe.txt
Inspeccionar → cambiar → verificar.
chmod -R g+w proyecto
-R aplica el cambio al directorio y a todo su contenido, incluidos archivos ocultos y subdirectorios.
El ejemplo agrega escritura al grupo; no cambia owner ni grupo.
Un mismo modo numérico puede no servir para todo: 660 deja directorios sin búsqueda; 770 vuelve ejecutables los archivos de datos.
chmod -R g+rwX proyecto
| Objeto | Qué agrega al grupo |
|---|---|
| Directorio | Lectura, escritura y búsqueda (rwx) |
| Archivo sin ejecución | Lectura y escritura (rw) |
| Archivo que ya tiene algún bit de ejecución | Lectura, escritura y ejecución (rwx) |
X no vuelve ejecutables todos los archivos. Este comando agrega permisos; conserva los demás.
Desde la cuenta administradora:
sudo chown ana informe.txt
sudo chgrp desarrollo informe.txt
sudo chown ana:desarrollo informe.txt
chown: cambiar owner; también admite owner y grupo juntos.chgrp: cambiar el grupo.chmod.chmod g+w y chgrp desarrollo?Primero identificar la operación y la sesión.
id
ls -l /srv/equipo/informe.txt
ls -ld /srv/equipo
namei -l /srv/equipo/informe.txt
id: identidad y grupos de esta sesión.ls -l: datos del archivo.ls -ld: datos del directorio mismo.namei -l: componentes y permisos de la ruta.Si Bruno necesita escribir un informe del grupo:
chmod g+w.Dar 777 abre permisos a otros usuarios y puede ocultar la causa del problema.
¿Con qué permisos nace un archivo?
Ana crea un informe nuevo y Bruno necesita editarlo. Si nace con 644, el grupo solo puede leerlo.
Umask permite definir permisos de creación adecuados sin corregir cada archivo después.
umask # Consultar la máscara de esta shell
umask 007 # Quitar los permisos de otros al crear
chmod cambia un archivo existente; umask limita los permisos solicitados para los nuevos.
Para creaciones habituales que solicitan 666 en archivos y 777 en directorios:
| umask | Archivo | Directorio |
|---|---|---|
| 022 | 644 | 755 |
| 002 | 664 | 775 |
| 007 | 660 | 770 |
| 077 | 600 | 700 |
En 007, cada dígito indica qué quitar: U → nada, G → nada, O → todo.
Para nuestro equipo: archivos nuevos 660, con escritura para el grupo adecuado.
En Debian, Ubuntu... por ejemplo con umask, suele verse 0002.
Conservar el grupo y controlar el borrado.
Con el directorio ya creado, desde la cuenta administradora:
sudo chown root:desarrollo /srv/equipo
sudo chmod 2770 /srv/equipo
ls -ld /srv/equipo
Permisos esperados:
drwxrws---
El 2 activa SGID: los objetos nuevos toman el grupo del directorio.
| Configuración | Qué resuelve |
|---|---|
| Grupo desarrollo | Qué grupo comparte el espacio |
| Directorio 2770 | Acceso grupal y grupo de objetos nuevos |
| umask 007 en ambas sesiones | Conserva escritura grupal solicitada y quita permisos a otros |
Con creaciones habituales, los archivos nuevos quedan con grupo desarrollo y modo 660.
SGID no agrega escritura por sí solo.
chmod cambia permisos; chown y chgrp, propiedad.namei -l ayuda a revisar toda la ruta.Objetivo: dejar funcionando un directorio compartido entre Ana y Bruno.
man namei, help umask.