3. Permisos y Propiedades
Propietarios y Grupos
-
Propietario de un archivo:
- Cada archivo o directorio en un sistema Unix/Linux tiene un propietario, que generalmente es el usuario que lo creó. El propietario tiene control sobre los permisos del archivo.
-
Grupo de un archivo:
- Además del propietario, cada archivo pertenece a un grupo. Los usuarios que forman parte de este grupo pueden tener permisos especiales sobre el archivo.
-
chown
- Cambiar propietario:- Cambia el propietario y, opcionalmente, el grupo de un archivo.
- Ejemplo:
chown usuario:grupo archivo.txt
-
chgrp
- Cambiar grupo:- Cambia el grupo de un archivo.
- Ejemplo:
chgrp grupo archivo.txt
Permisos de Archivos y Directorios
-
Lectura (
r
):- Permite leer el contenido de un archivo o listar el contenido de un directorio.
-
Escritura (
w
):- Permite modificar el contenido de un archivo o crear, renombrar y eliminar archivos en un directorio.
-
Ejecución (
x
):- Permite ejecutar un archivo como un programa o acceder al contenido de un directorio.
-
ls -l
- Listar permisos:- Lista los archivos en un directorio con detalles de permisos.
- Ejemplo:
ls -l
- Salida típica:
-rwxr-xr-- 1 usuario grupo 1234 Jun 18 10:00 archivo.txt
-
chmod
- Cambiar permisos:-
Cambia los permisos de un archivo utilizando modos simbólicos y numéricos.
-
Modo simbólico:
- Ejemplo:
chmod u+rwx,g+rx,o+r archivo.txt
u
: usuario (propietario)g
: grupoo
: otros+
: añade permisos-
: quita permisos=
: establece permisos exactos
- Ejemplo:
-
Modo numérico:
- Ejemplo:
chmod 755 archivo.txt
755
en binario:rwxr-xr-x
(propietario:7
=rwx
, grupo:5
=r-x
, otros:5
=r-x
)
- Ejemplo:
-
Permisos Especiales
-
Setuid (Set User ID):
- Permite que un archivo ejecutable se ejecute con los permisos del propietario del archivo, no con los permisos del usuario que lo ejecuta.
- Ejemplo:
chmod u+s archivo
-
Setgid (Set Group ID):
- Permite que un archivo ejecutable se ejecute con los permisos del grupo del archivo, no con los permisos del usuario que lo ejecuta.
- Cuando se aplica a un directorio, los archivos creados dentro del directorio heredan el grupo del directorio.
- Ejemplo:
chmod g+s directorio
-
Sticky Bit:
- Cuando se aplica a un directorio, solo el propietario de un archivo dentro de ese directorio puede renombrar o eliminar el archivo, independientemente de los permisos del directorio.
- Comúnmente usado en directorios como
/tmp
. - Ejemplo:
chmod +t directorio
Máscara de Creación de Archivos
-
Umask (User File Creation Mask):
- Determina los permisos predeterminados que se eliminan cuando se crea un nuevo archivo o directorio.
- La umask se substrae de los permisos máximos posibles (
666
para archivos,777
para directorios). - Ejemplo:
umask 022
- Permisos resultantes para archivos:
644
(rw-r--r--) - Permisos resultantes para directorios:
755
(rwxr-xr-x)
- Permisos resultantes para archivos:
-
Visualización de Umask:
- Comando:
umask
- Muestra la umask actual en formato octal
- Comando:
-
Modificación de Umask:
- Comando:
umask <valor>
- Ejemplo:
umask 027
- Configura la umask para eliminar permisos de escritura y ejecución para otros
- Comando:
Ejercicios de Permisos y Propiedades
Ejercicio 1: Propietarios y Grupos
1.1 Cambio de propietario
- Cambia el propietario de un archivo llamado
archivo.txt
a un usuario diferente.
1.2 Cambio de grupo
- Cambia el grupo de un archivo llamado
archivo.txt
a un grupo diferente.
Ejercicio 2: Permisos de Archivos y Directorios
2.1 Visualización de permisos
- Lista los archivos en un directorio con detalles de permisos.
2.2 Modificación de permisos (simbólico)
- Cambia los permisos de un archivo llamado
script.sh
para que el propietario tenga permisos de lectura y escritura, el grupo tenga permisos de lectura y los demás no tengan permisos.
2.3 Modificación de permisos (numérico)
- Cambia los permisos de un archivo llamado
data.txt
a755
.
Ejercicio 3: Permisos Especiales
3.1 Aplicación de Setuid
- Aplica el permiso Setuid a un archivo ejecutable llamado
programa
.
3.2 Aplicación de Setgid
- Aplica el permiso Setgid a un directorio llamado
shared
.
3.3 Aplicación de Sticky Bit
- Aplica el Sticky Bit a un directorio llamado
tmp
.
Ejercicio 4: Máscara de Creación de Archivos
4.1 Visualización de umask
- Muestra la configuración actual de
umask
.
4.2 Modificación de umask
- Cambia la máscara de creación de archivos a
027
.
Ejercicios con soluciones para Permisos y Propiedades
Ejercicio 1: Propietarios y Grupos
1.1 Cambio de propietario
- Cambia el propietario de un archivo llamado
archivo.txt
a un usuario diferente. - Solución:
chown nuevo_usuario archivo.txt
1.2 Cambio de grupo
- Cambia el grupo de un archivo llamado
archivo.txt
a un grupo diferente. - Solución:
chgrp nuevo_grupo archivo.txt
Ejercicio 2: Permisos de Archivos y Directorios
2.1 Visualización de permisos
- Lista los archivos en un directorio con detalles de permisos.
- Solución:
ls -l
2.2 Modificación de permisos (simbólico)
- Cambia los permisos de un archivo llamado
script.sh
para que el propietario tenga permisos de lectura y escritura, el grupo tenga permisos de lectura y los demás no tengan permisos. - Solución:
chmod u+rw,g+r,o-rwx script.sh
2.3 Modificación de permisos (numérico)
- Cambia los permisos de un archivo llamado
data.txt
a755
. - Solución:
chmod 755 data.txt
Ejercicio 3: Permisos Especiales
3.1 Aplicación de Setuid
- Aplica el permiso Setuid a un archivo ejecutable llamado
programa
. - Solución:
chmod u+s programa
3.2 Aplicación de Setgid
- Aplica el permiso Setgid a un directorio llamado
shared
. - Solución:
chmod g+s shared
3.3 Aplicación de Sticky Bit
- Aplica el Sticky Bit a un directorio llamado
tmp
. - Solución:
chmod +t tmp
Ejercicio 4: Máscara de Creación de Archivos
4.1 Visualización de umask
- Muestra la configuración actual de
umask
. - Solución:
umask
4.2 Modificación de umask
- Cambia la máscara de creación de archivos a
027
. - Solución:
umask 027