curso de linux desde cero,. Comando umask
Tabla de contenido:
En los sistemas operativos Linux y Unix, todos los archivos nuevos se crean con un conjunto predeterminado de permisos. La utilidad
umask
permite ver o configurar la máscara de creación del modo de archivo, que determina los bits de permisos para los archivos o directorios recién creados.
Es utilizado por mkdir, touch, tee y otros comandos que crean nuevos archivos y directorios.
Permisos de Linux
Antes de continuar, expliquemos brevemente el modelo de permisos de Linux.
En Linux, cada archivo está asociado con un propietario y un grupo y se le asignan derechos de acceso de permiso para tres clases diferentes de usuarios:
- el propietario del archivo, los miembros del grupo, todos los demás.
Hay tres tipos de permisos que se aplican a cada clase:
- el permiso de lectura, el permiso de escritura, el permiso de ejecución.
Este concepto le permite especificar qué usuarios pueden leer el archivo, escribir en el archivo o ejecutar el archivo.
Para ver los permisos de archivo, use el comando
ls
:
ls -l dirname
drwxr-xr-x 12 linuxize users 4.0K Apr 8 20:51 dirname | | | | | | | | | | | | +-----------> Group | | | | +-------------------> Owner | | | +----------------------------> Others Permissions | | +-------------------------------> Group Permissions | +----------------------------------> Owner Permissions +------------------------------------> File Type
El primer carácter representa el tipo de archivo que puede ser un archivo normal (
-
), un directorio (
d
), un enlace simbólico (
l
) o cualquier otro tipo especial de archivo.
Los siguientes nueve caracteres representan los permisos, tres conjuntos de tres caracteres cada uno. Los primeros conjuntos muestran los permisos del propietario, el segundo grupo de permisos y el último conjunto muestra los permisos de todos los demás.
El carácter
r
con un valor octal de
4
significa lectura,
w
con un valor octal de
2
para escritura,
x
con un valor octal de
1
para permiso de ejecución y (
-
) con valor octal de
0
para ningún permiso.
También hay otros tres tipos de permisos de archivos especiales:
setuid
,
setgid
y
Sticky Bit
.
En el ejemplo anterior (
rwxr-xr-x
) significa que el propietario tiene permisos de lectura, escritura y ejecución (
rwx
), el grupo y otros tienen permisos de lectura y ejecución.
Si representamos los permisos del archivo usando una notación numérica, llegaremos al número
755
:
- Propietario:
rwx
=4+2+1 = 7
Grupo:rx
=4+0+1 = 5
Otro:rx
=4+0+1 = 5
Cuando se representa en notación numérica, los permisos pueden tener tres o cuatro dígitos octales (0-7). El primer dígito representa los permisos especiales y, si se omite, significa que no se establecen permisos especiales en el archivo. En nuestro caso,
755
es igual a
0755
. El primer dígito puede ser una combinación de
4
para
setuid
,
2
para
setgid
y
1
para
Sticky Bit
.
Los permisos de archivo se pueden cambiar con el comando
chmod
y la propiedad con el comando
chown
.
Entendiendo umask
De manera predeterminada, en los sistemas Linux, los permisos de creación predeterminados son
666
para archivos, lo que otorga permisos de lectura y escritura para usuarios, grupos y otros, y
777
para directorios, lo que significa permisos de lectura, escritura y ejecución para usuarios, grupos y otros. Linux no permite que se cree un archivo con permisos de ejecución.
Los permisos de creación predeterminados se pueden modificar con la utilidad
umask
.
umask
afecta solo al entorno actual de shell. En la mayoría de las distribuciones de Linux, el valor predeterminado de umask para todo el sistema se establece en el
pam_umask.so
o
/etc/profile
.
Para ver el valor de la máscara actual, simplemente escriba
umask
sin ningún argumento:
umask
La salida incluirá el
022
El valor de
umask
contiene los bits de permiso que NO se establecerán en los archivos y directorios recién creados.
Como ya hemos mencionado, los permisos de creación predeterminados para los archivos son
666
y para los directorios
777
. Para calcular los bits de permiso de los nuevos archivos, reste el valor de umask del valor predeterminado.
Por ejemplo, para calcular cómo
uname 022
afectará a los archivos y directorios recién creados, use:
- Archivos:
666 - 022 = 644
. El propietario puede leer y modificar los archivos. Group y otros solo pueden leer los archivos. Directorio:777 - 022 = 755
El propietario puede cd en el directorio y enumerar leer, modificar, crear o eliminar los archivos en el directorio. Group y otros puedencd
en el directorio y listar y leer los archivos.
También puede mostrar el valor de la máscara en notación simbólica utilizando la opción
-S
:
umask -S
u=rwx, g=rx, o=rx
A diferencia de la notación numérica, el valor de notación simbólica contiene los bits de permiso que se establecerán en los archivos y directorios recién creados.
Establecer el valor de la máscara
La máscara de creación de archivos se puede establecer mediante notación octal o simbólica. Para que los cambios sean permanentes, establezca el nuevo valor de
umask
en un archivo de configuración global como
/etc/profile
que afectará a todos los usuarios o en los archivos de configuración de shell de un usuario como
~/.profile
,
~/.bashrc
o
~/.zshrc
que afectará solo al usuario. Los archivos de usuario tienen prioridad sobre los archivos globales.
Antes de realizar cambios en el valor de
umask
, asegúrese de que el nuevo valor no represente un riesgo de seguridad potencial. Los valores menos restrictivos que
022
deben usarse con gran precaución. Por ejemplo,
umask 000
significa que cualquiera tendrá permiso de lectura, escritura y ejecución para todos los archivos recién creados.
Digamos que queremos establecer permisos más restrictivos para los archivos y directorios recién creados para que otros no puedan
cd
a los directorios y leer archivos. Los permisos que queremos son
750
para directorios y
640
para archivos.
Para calcular el valor de
umask
simplemente resta los permisos deseados del predeterminado:
Valor de máscara:
777-750 = 027
El valor de
umask
deseado representado en notación numérica es
027
.
Para establecer permanentemente el nuevo valor en todo el sistema, abra el
/etc/profile
con su editor de texto:
sudo nano /etc/profile
y cambie o agregue la siguiente línea al comienzo del archivo:
/ etc / profile
umask 027
Para que los cambios surtan efecto, ejecute el siguiente comando de
source
o cierre la sesión e inicie sesión:
source /etc/profile
Para verificar la nueva configuración, crearemos un nuevo archivo y directorio usando
mkdir
y
mkdir
:
mkdir newdir
touch newfile
mkdir newdir
drwxr-x--- 2 linuxize users 4096 Jul 4 18:14 newdir -rw-r----- 1 linuxize users 0 Jul 4 18:14 newfile
Otra forma de configurar la máscara de creación de archivos es mediante la notación simbólica. Por ejemplo,
umask u=rwx, g=rx, o=
es igual que
umask 027
.
Conclusión
En esta guía, hemos explicado los permisos de Linux y cómo usar el comando
umask
para establecer los bits de permisos para archivos o directorios recién creados.
Para obtener más información, escriba
man umask
en su terminal.
Comando Chmod en Linux (permisos de archivo)
En Linux, el acceso a los archivos se gestiona a través de los permisos, atributos y propiedad del archivo. Este tutorial cubre cómo usar el comando chmod para cambiar los permisos de acceso de archivos y directorios.
Comando chgrp en linux (cambiar grupo)
En Linux, cada archivo está asociado con un propietario y un grupo y tiene permisos que determinan qué usuarios pueden leer, escribir o ejecutar el archivo. El comando chgrpc cambia la propiedad del grupo de los archivos dados.
Comando cp en linux (copiar archivos)
cp es una utilidad de línea de comandos para copiar archivos y directorios en sistemas Unix y Linux.