LINUX

Cómo cambiar los permisos en Linux

cambiar permisos en linux

En Linux y Unix, la seguridad comienza con los permisos de archivo. En un nivel muy básico, los permisos de archivos y directorios juegan un papel vital en la seguridad de un sistema. Cuando crea un archivo o directorio en sistemas Linux, viene con permisos predeterminados.

Los permisos de archivo se aplican en tres niveles: owner, group members y others. El comando chmod se usa en Linux para cambiar estos permisos.

En este tutorial, discutiremos cómo cambiar los permisos de archivos en Linux usando el comando chmod.

1) Cambie los permisos usando el método numérico (octal)

Los permisos (modos de acceso) se pueden cambiar con el comando chmod usando algunos operadores (-, + o =) para asignar permisos (r, w o x) a un usuario específico (u, g, o o a). El comando acepta especificaciones de modo de acceso numérico (octal) o simbólico.

El método numérico es la forma más utilizada de establecer permisos para archivos y directorios. Para hacer esto, ingrese chmod numeric_permission filename.

Cada permiso está representado por un número y el permiso para una entidad específica finalmente está representado por un conjunto de tres columnas.

permisos de linux

En el diagrama anterior,

El ‘Usuario’ recibe el permiso (4 2 1) donde el usuario ha leído, escrito y ejecutado.

Al ‘Grupo’ se le otorga (4 2 0) permiso para que los miembros del grupo puedan leer y escribir.

El ‘Otro (mundo)’ recibe el permiso (4 0 0) donde otros solo pueden leer.

En el método numérico, todos los permisos se cambian a la vez.

Por ejemplo,

755 : establezca el permiso de lectura + escritura + ejecución para el user, establezca el permiso de lectura + ejecución en el group y establezca el permiso de lectura + ejecución para el others.

# chmod 755 asciiquarium.tar.gz
# ls -l asciiquarium.tar.gz 
-rwxr-xr-x 1 linoadmin linoadmin 15436 Mar 9 2013 asciiquarium.tar.gz

476 : establece solo el permiso de lectura para el user, establezca el permiso de lectura + escritura + ejecución en el group y establezca el permiso de lectura + escritura en el others.

# chmod 476 bootstrap
# ls -l bootstrap
-r--rwxrw- 1 root root 5747 Apr 25 01:45 bootstrap

500 : establezca el permiso de lectura + ejecución para el user, no establezca permisos para group y no establezca permisos para others.

# chmod 500 asciiquarium_1.1/
# ls -ld asciiquarium_1.1/
dr-x------ 2 linoadmin linoadmin 4096 Mar 9 2013 asciiquarium_1.1/

Cuando utilice el método numérico, siempre debe especificar tres valores (propietario, grupo y otros).

2) Cambiar permisos usando el modo simbólico

La mayoría de los usuarios de Linux prefieren el modo de acceso numérico. Sin embargo, algunas personas prefieren usar formas simbólicas porque generalmente modifican un modo existente en lugar de reemplazarlo por completo.

El modo simbólico se utiliza como chmod entity=permissions filename. Las especificaciones del modo simbólico tienen tres partes, compuestas por caracteres individuales y utilizan una letra para identificar la parte:

  • Entity: Propietario del usuario = tu, propietario del grupo = gramo, otro = o, y todo = a
  • Operation: + para agregar, para eliminar, o = asignar (eliminar los otros permisos existentes)
  • Permissions to set: r = leer, w = escribir y X = ejecutar

Algunos ejemplos para hacerte entender.

chmod +x  : Agregue permiso de ejecución para todos los usuarios, grupos y otros de la entidad. Se utiliza para hacer un script o un programa ejecutable para poder ejecutarlo.

# chmod +x hello.sh
# ls -l hello.sh 
-rwxr-xr-x 1 root root   66 May 15 20:12 hello

Ahora puede ejecutar su script como se muestra a continuación

# ./hello 
Hello... How are you ?

u+x : Agregue permiso de ejecución solo para el usuario

# chmod u+x backupdb.sh
# ls -l backupdb.sh 
-rwxr--r-- 1 linoadmin linoadmin 15436 Mar 9 2013 backupdb.sh

go-w : Elimina el permiso de escritura del grupo y otras clases únicamente.

# chmod go-w script-test/
# ls -ld script-test/
drwxr-xr-x 3 root root 4096 Apr 25 02:21 script-test/

a=rw : Establezca permisos de lectura y escritura, pero no de ejecución, para todos.

# chmod a=rw bootstrap
# ls -l bootstrap
-rw-rw-rw- 1 root root 5747 Apr 25 01:45 bootstrap

g-x,o-rx : Elimina el permiso de ejecución para group y elimine el permiso de lectura + ejecución para el other.

Nota: No use espacio después de la coma (,)

# chmod g-x,o-rx baba/

Verifiquemos el permiso usando el comando ls:

# ls -ld baba/
drwxr----- 2 root root 4096 Apr 13 01:35 baba/

Cuando usa el método simbólico, es posible hacer combinaciones para manipular algunas entidades al mismo tiempo.

Tenga en cuenta que, al usar el modo simbólico, los permisos que no está especificando permanecen como estaban antes de ejecutar el comando chmod

3) Cambiar los permisos de forma recursiva

Cuando usa el comando chmod en un directorio sin ninguna opción, no afecta los permisos en sus subdirectorios. Significa que los permisos solo se aplican en el directorio en sí.

Para cambiar los permisos de un directorio con sus subdirectorios (recursivamente), podemos usar -R opción.

Por ejemplo, mire nuestro directorio ‘asciiquarium_1.1’ en el que aplicamos 500 permisos.

Cuando enumeramos el permiso para archivos y directorios dentro del directorio ‘asciiquarium_1.1’, no podemos establecerlo en ‘500’.

# ls -l asciiquarium_1.1/
total 60
-rw-rw-r-- 1 linoadmin linoadmin 27679 Mar  9  2013 asciiquarium
-rw-rw-r-- 1 linoadmin linoadmin   228 Mar  9  2013 CHANGES
-rw-rw-r-- 1 linoadmin linoadmin 18092 Mar  9  2013 gpl.txt
-rw-rw-r-- 1 linoadmin linoadmin    45 Mar  9  2013 MANIFEST
-rw-rw-r-- 1 linoadmin linoadmin  1060 Mar  9  2013 README

Ahora usemos chmod -R comando con los mismos permisos en el directorio ‘asciiquarium_1.1’ usando el siguiente comando:

# chmod -R 500 asciiquarium_1.1/

Ahora verifiquemos los permisos de archivos y directorios de la siguiente manera:

# ls -l asciiquarium_1.1/
total 60
-r-x------ 1 linoadmin linoadmin 27679 Mar  9  2013 asciiquarium
-r-x------ 1 linoadmin linoadmin   228 Mar  9  2013 CHANGES
-r-x------ 1 linoadmin linoadmin 18092 Mar  9  2013 gpl.txt
-r-x------ 1 linoadmin linoadmin    45 Mar  9  2013 MANIFEST
-r-x------ 1 linoadmin linoadmin  1060 Mar  9  2013 README

Puede ver que se han establecido permisos en archivos y subdirectorios.

4) Permisos de bits especiales

La mayoría de las tareas que completará con permisos serán con los permisos de lectura, escritura y ejecución. Sin embargo, existen otros permisos especiales que puede asignar a archivos y directorios en su sistema de archivos. Se hace referencia a estos permisos especiales como un dígito adicional agregado al comienzo del modo de archivo o directorio.

Los siguientes bits especiales están disponibles para el uso del sistema de archivos de Linux:

  • SUID: el permiso Establecer ID de usuario permite a los usuarios ejecutar un programa como si fueran el usuario propietario del programa; en la mayoría de los casos, el propietario del usuario es el usuario root. El valor numérico de este conjunto de permisos es 4XXX (donde “XXX” se reemplaza por los valores numéricos del conjunto de tres mencionados anteriormente).
  • SGID: Cuando se establece en un directorio, el permiso Establecer ID de grupo otorga automáticamente la propiedad del grupo de todos los archivos nuevos creados en el directorio al propietario del grupo del directorio (numérico = 2XXX). Cuando se configura en un archivo, el SGID permite a los usuarios ejecutar un programa como si fueran el propietario del grupo del archivo.
  • Pedazo pegajoso: tEste conjunto de permisos se usa para evitar que los «no propietarios» eliminen archivos en un directorio común (numérico = 1XXX). En un directorio de bits adhesivos, solo el propietario del archivo o el propietario del directorio puede eliminar el archivo (la raíz siempre puede eliminar archivos también).

Para entender, déjame darte un ejemplo:

Aplicaremos el permiso SUID en un archivo usando el siguiente comando:

# chmod 4755 bootstrap
# ls -l bootstrap
-rwsr-xr-x 1 root root 5747 Apr 25 01:45 bootstrap

Conclusión

Al cambiar los permisos, siempre puede utilizar el método numérico o el método simbólico. Los permisos numéricos son los que se utilizan con más frecuencia y aparecen siempre. Como regla general, recomiendo usar el modo numérico para establecer o forzar permisos en un objeto, en lugar de realizar pequeños cambios en los permisos. Debe tener acceso de usuario root o sudo para cambiar los permisos de los archivos y directorios que pertenecen a otros; de lo contrario, solo es posible cambiar los permisos de los archivos y directorios de su propiedad.

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba
Cerrar