GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo 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:el 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 archivo en Linux usando el comando chmod.

1) Cambiar 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, ingresa 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.

En el diagrama anterior,

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

El 'Grupo' tiene permiso (4 2 0) donde los miembros del grupo pueden leer y escribir.

El 'Otro (mundo)' tiene 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 :establecer permisos de lectura+escritura+ejecución para el user , establezca permiso de lectura+ejecución para el group y establecer permiso de lectura+ejecución para los 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 :establecer solo permiso de lectura para el user , establezca permiso de lectura+escritura+ejecución para el group y establecer permisos de lectura y escritura para los others .

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

500 :establecer permiso de lectura+ejecución para el user , no establezca permisos para el group y no establecer permisos para los 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

El modo de acceso numérico es el preferido por la mayoría de los usuarios de Linux. 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 usa como chmod entity=permissions filename . Las especificaciones del modo simbólico tienen tres partes, compuestas de caracteres individuales y usan una letra para identificar la parte:

  • Entity :Propietario del usuario =u , propietario del grupo =g , otro =o , y todos =a
  • Operation :+ para agregar, - para eliminar, o = para asignar (eliminar los otros permisos existentes)
  • Permissions to set :r =leer, w =escribe, y x =ejecutar

Algunos ejemplos para que lo entiendas.

chmod +x  :Agregue permiso de ejecución para todos los usuarios de entidades, grupos y otros. Se utiliza para hacer ejecutable un script o un programa 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 secuencia de comandos como se muestra a continuación

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

u+x :Agregar 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 solamente.

# 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 el group y elimine el permiso de lectura y ejecución para el other .

Nota:No utilice espacios 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 permisos recursivamente

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 propio directorio.

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', podemos que no esté configurado 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 el permiso 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 permisos de lectura, escritura y ejecución. Sin embargo, hay varios otros permisos especiales que puede asignar a archivos y directorios en su sistema de archivos. Estos permisos especiales se mencionan 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 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 para el 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 establece en un archivo, el SGID permite a los usuarios ejecutar un programa como si fueran el propietario del grupo del archivo.
  • Pedacito adhesivo:t su conjunto de permisos se usa para evitar que los "no propietarios" eliminen archivos en un directorio común (numérico =1XXX). En un directorio sticky bit, 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 usar el método numérico o el método simbólico. Los permisos numéricos son los más utilizados 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 son propiedad de otros; de lo contrario, solo es posible cambiar los permisos de los archivos y directorios que posee.


Linux
  1. Cómo cambiar un nombre de host en Linux

  2. Cómo cambiar un nombre de usuario en Linux

  3. Cómo cambiar el nombre de host en Linux

  4. Cómo cambiar el puerto SSH en Linux

  5. Cómo cambiar Shell en Linux

Comando Chmod:cómo cambiar los permisos de archivo en Linux

Cómo cambiar la dirección MAC en Linux

Cómo cambiar un Shell de usuario en Linux

Cómo cambiar de usuario en Linux

Cómo cambiar la dirección IP en Linux

Cómo cambiar los permisos de archivo