GNU/Linux >> Tutoriales Linux >  >> Linux

Linux chmod y chown:cómo cambiar los permisos y la propiedad de los archivos en Linux

Linux es un sistema operativo multiusuario, lo que significa que admite varios usuarios a la vez.

Como muchas personas pueden acceder al sistema simultáneamente y algunos recursos son compartidos, Linux controla el acceso a través de la propiedad y los permisos.

Propiedad de archivos de Linux

En Linux, hay tres tipos de propietarios:user , group y others .

Usuario de Linux

Un usuario es el propietario y creador predeterminado del archivo. Entonces, este usuario también se llama propietario.

Grupo Linux

Un grupo de usuarios es una colección de usuarios. Los usuarios que pertenezcan a un grupo tendrán los mismos permisos de grupo de Linux para acceder a un archivo/carpeta.

Puede usar grupos para asignar permisos de forma masiva en lugar de asignarlos individualmente. Un usuario también puede pertenecer a más de un grupo.

Otro

Todos los usuarios que no forman parte de las clases de usuario o grupo pertenecen a esta clase.

Permisos de archivo de Linux

Los permisos de archivo se dividen en tres categorías:read , write y execute .

Permiso de lectura

Para archivos normales, los permisos de lectura permiten a los usuarios abrir y leer solo el archivo. Los usuarios no pueden modificar el archivo.

De manera similar para los directorios, los permisos de lectura permiten la lista del contenido del directorio sin ninguna modificación en el directorio.

Permiso de escritura

Cuando los archivos tienen permisos de escritura, el usuario puede modificar (editar, borrar) el archivo y guardarlo.

Para las carpetas, los permisos de escritura permiten a un usuario modificar su contenido (crear, eliminar y renombrar los archivos dentro de ella) y modificar el contenido de los archivos para los que el usuario tiene permisos de escritura.

Permiso de ejecución

Para los archivos, los permisos de ejecución permiten al usuario ejecutar un script ejecutable. Para los directorios, el usuario puede acceder a ellos y acceder a detalles sobre los archivos en el directorio.

A continuación se muestra la representación simbólica de permisos para usuarios, grupos y otros.

Tenga en cuenta que podemos encontrar permisos de archivos y carpetas usando una lista larga (ls -l ) en una terminal Linux.

En el resultado anterior, d representa un directorio y - representa un archivo normal.

Cómo cambiar permisos en Linux usando chmod Comando

Ahora que conocemos los conceptos básicos de propiedad y permisos, veamos cómo podemos modificar los permisos usando chmod comando.

Sintaxis de chmod :

chmod permissions filename

donde,

  • permissions se puede leer, escribir, ejecutar o una combinación de ellos.
  • filename es el nombre del archivo para el que se deben cambiar los permisos. Este parámetro también puede ser una lista de archivos para cambiar los permisos de forma masiva.

Podemos cambiar los permisos usando dos modos:

  1. Modo simbólico :este método usa símbolos como u , g , o para representar a usuarios, grupos y otros. Los permisos se representan como r, w, x para lectura, escritura y ejecución, respectivamente. Puede modificar los permisos usando +, - y =.
  2. Modo absoluto :este método representa los permisos como números octales de 3 dígitos que van del 0 al 7.

Ahora, veámoslos en detalle.

Cómo cambiar permisos usando el modo simbólico

La siguiente tabla resume la representación de los usuarios:

Podemos usar operadores matemáticos para agregar, eliminar y asignar permisos. La siguiente tabla muestra el resumen:

Representación de usuarios Descripción
u usuario/propietario
g grupo
o otro

Ejemplo:

Supongamos que tengo un script y quiero que sea ejecutable para el propietario del archivo zaira .

Los permisos de archivo actuales son los siguientes:

Dividamos los permisos así:

Para agregar derechos de ejecución (x ) al propietario (u ) usando el modo simbólico, podemos usar el siguiente comando:

chmod u+x mymotd.sh

Salida:

Ahora podemos ver que se han agregado los permisos de ejecución para el propietario zaira .

Ejemplos adicionales para cambiar permisos mediante un método simbólico:

  • Eliminando read y write permiso para group y others :chmod go-rw .
  • Eliminando read permisos para others :chmod o-r .
  • Asignar write permiso para group y anulando el permiso existente:chmod g=w .

Cómo cambiar permisos usando el modo absoluto

El modo absoluto usa números para representar permisos y operadores matemáticos para modificarlos.

La siguiente tabla muestra cómo podemos asignar permisos relevantes:

Operador Descripción
+ Agrega un permiso a un archivo o directorio
Elimina el permiso
= Establece el permiso si no está presente antes. También anula los permisos si se establecieron antes.

Los permisos se pueden revocar mediante sustracción. La siguiente tabla muestra cómo puede eliminar los permisos relevantes.

Permiso Proporcionar permiso
leer añadir 4
escribir añadir 2
ejecutar añadir 1

Ejemplo :

  • Establecer read (añadir 4) para user , read (añadir 4) y execute (añadir 1) para el grupo, y solo execute (añadir 1) para otros.

chmod 451 file-name

Así es como realizamos el cálculo:

Tenga en cuenta que esto es lo mismo que r--r-x--x .

  • Eliminar execution derechos de other y group .

Para eliminar la ejecución de other y group , reste 1 de la parte de ejecución de los últimos 2 octetos.

  • Asignar read , write y execute a user , read y execute a group y solo read a otros.

Esto sería lo mismo que rwxr-xr-- .

Cómo cambiar la propiedad usando el chown Comando

A continuación, aprenderemos cómo cambiar la propiedad de un archivo. Puede cambiar la propiedad de un archivo o carpeta usando el chown dominio. En algunos casos, cambiar la propiedad requiere sudo permisos.

Sintaxis de chown :

chown user filename

Cómo cambiar la propiedad del usuario con chown

Transfiramos la propiedad al usuario zaira al usuario news .

chown news mymotd.sh

Comando para cambiar la propiedad:sudo chown news mymotd.sh

Salida:

Cómo cambiar la propiedad del usuario y del grupo simultáneamente

También podemos usar chown para cambiar de usuario y grupo simultáneamente.

chown user:group filename

Cómo cambiar la propiedad del directorio

Puede cambiar la propiedad de forma recursiva para los contenidos de un directorio. El siguiente ejemplo cambia la propiedad de /opt/script carpeta para permitir al usuario admin .

chown -R admin /opt/script

Cómo cambiar la propiedad del grupo

En caso de que solo necesitemos cambiar el propietario del grupo, podemos usar chown precediendo el nombre del grupo por dos puntos :

chown :admins /opt/script

Ejercicio guiado de permisos de Linux

Hasta ahora hemos explorado los permisos, las propiedades y los métodos para cambiarlos. Ahora reforzaremos nuestro aprendizaje con un ejercicio guiado.

Objetivo :Para crear grupos y asignar permisos relevantes a sus miembros. Verifica el acceso accediendo desde usuarios no autorizados.

Tarea :Cree un grupo llamado dev-team y agréguele dos miembros (John y Bob). Crea una carpeta /home/dev-team y cambie la propiedad al grupo dev-team . Verifique que ambos usuarios en el dev-team el grupo ha leído y escribir acceso a la carpeta.

Crear otro grupo project-manager y agrega un usuario Fatima lo. Verifique si la carpeta /home/dev-team es accesible por Fatima .

Visualización del problema

Podemos visualizar el problema así:

Paso 1:Cambiar a usuario root.
Cambie a usuario raíz para que tengamos los derechos para crear nuevos usuarios y grupos.

Mostrar pista

Usa el sudo comando con bandera i .

Si tiene la contraseña raíz, también puede iniciar sesión con ella.

Mostrar solución

Introduce sudo -i para cambiar al usuario root.

Introduce whoami para saber si eres el usuario root:

Si no tiene root acceda, use los comandos agregando sudo .

Paso 2:Cree un grupo dev-team

Mostrar pista

Usa el groupadd comando.

Sintaxis:groupadd group-name

Mostrar solución

Introduce groupadd dev-team para crear el dev-team grupo

Verificar:cat /etc/group | grep dev-team

Paso 3:Cree dos nuevos usuarios John y Bob y agréguelos al dev-team grupo

Mostrar pista

Utilice el comando useradd .

useradd crea un nuevo usuario y lo agrega al grupo especificado.

Sintaxis:useradd -G groupname username

Donde -G especifica el grupo.

Mostrar solución

useradd -G dev-team John

useradd -G dev-team Bob

Verificar:cat /etc/group | grep dev-team

Paso 4:Proporcione contraseñas para los usuarios John y Bob

Mostrar pista

Usa el comando passwd

passwd crea una contraseña para los usuarios.

Sintaxis:passwd username

Mostrar solución

passwd John

passwd Bob

Paso 5:Cree un directorio en /home y asígnele el nombre dev-team

Mostrar pista

Usa el comando mkdir

mkdir crea un directorio.

Sintaxis:mkdir directory-name

Mostrar solución

mkdir /home/dev-team

Verificar:

Paso 6:cambie la propiedad del grupo de la carpeta dev-team para agrupar dev-team

Mostrar pista

Usa el comando chown

Sintaxis:chown :group-name folder

Mostrar solución

chown :dev-team /home/dev-team/

Paso 7:Asegúrese de que los permisos de la carpeta dev-team permitir que los miembros del grupo creen y eliminen archivos.

Mostrar pista

Usa el comando chmod

Los permisos de escritura permiten a los usuarios y grupos crear y eliminar archivos.

Sintaxis:chmod permissions folder

Mostrar solución

chmod g+w /home/dev-team/

Paso 8:Asegúrese de que 'otros' no tengan acceso a los archivos de dev-team carpeta.

Mostrar pista

Usa el comando chmod

Elimine los permisos de lectura, escritura y ejecución de 'otros' si existen.

Sintaxis:chmod permissions folder

Mostrar solución

chmod o-rx dev-team

Paso 9:Salga de la root sesión y cambiar a John

Mostrar pista

Usa el comando exit para cerrar la sesión del usuario root.

Usa su para cambiar de usuario.

Sintaxis:su - user

Para confirmar el usuario actual, use el comando whoami .

Mostrar solución

exit

su - John

Verificar con el comando whoami .

Paso 10:navegue a la carpeta:/home/dev-team

Mostrar pista

Usa el comando cd para cambiar de carpeta.

Sintaxis:cd /path/to/folder

Confirme la ruta actual con pwd .

Mostrar solución

cd /home/dev-team

Paso 11:Cree un archivo vacío en la carpeta:/home/dev-team

Mostrar pista

Usa el comando touch para crear un archivo vacío.

Sintaxis:touch filename

Mostrar solución

touch john-file.txt

Verificar:ls -lrt

Paso 12:cambie la propiedad del grupo del archivo creado a dev-team y verificar.

Mostrar pista

Usa el comando chown para cambiar la propiedad.

Sintaxis:chown :group file-name

Mostrar solución

chown :dev-team john-file.txt

Una vez que se modifica la propiedad del grupo, todos los miembros del grupo pueden acceder a este archivo.

Verificar ls -lrt

Paso 13:Salga del shell y cambie al usuario Bob's

Mostrar pista

Usa el comando exit para salir de la terminal.

Usa su para cambiar de usuario.

Sintaxis:su - user

Para confirmar el usuario actual, use el comando whoami .

Mostrar solución

exit

su - Bob

Verifica el usuario actual con el comando whoami .

Paso 14:Vaya a la ruta /home/dev-team

Mostrar pista

Usa el comando cd para cambiar de carpeta.

Sintaxis:cd /path/to/folder

Confirme la ruta actual con pwd .

Mostrar solución

cd /home/dev-team

Paso 15:Descubra Bob's privilegios para acceder a john-file.txt

Mostrar pista

Usa el comando ls -l para lista larga.

Sintaxis:ls -l | grep file-name

¿El grupo tiene rw- permisos?

Mostrar solución

ls -l | grep john-file.txt

Paso 16:Modifique el archivo john-file.txt mientras está conectado como Bob's

Mostrar pista

Usa el comando echo para agregar algo de texto al archivo.

Sintaxis:echo "Some text" >>file-name

Esto redirigiría el texto citado al final del archivo.

Mostrar solución

echo "This is Bob's comment" > john-file.txt

Si todos los permisos están configurados correctamente, Bob's se le permitiría editar y guardar este archivo. De lo contrario, obtendrías un error como este:Permission denied .

Verifique cat john-file.txt

Paso 17:Crea otro grupo project-manager y asigna un miembro Fatima a eso

Mostrar pista

Usa el comando groupadd para agregar un nuevo grupo.

Sintaxis:groupadd group-name

Crea un nuevo usuario con el comando useradd .

Usa la bandera -G para asignarle un usuario.

Mostrar solución
groupadd project-manager
useradd -G project-manager Fatima
passwd Fatima

Paso 18:Vaya a la carpeta /home/dev-team y verifica si Fatima puede acceder a ella

Mostrar pista

Usa cd para navegar a /home/dev-team .

Mostrar solución

cd /home/dev-team .

Obtenemos este error:

Esto se debe a que, others no tiene ningún acceso a la carpeta dev-team .

Si recordamos, a continuación se encuentran los derechos del dev-team carpeta.

Resumiendo

Los permisos y las propiedades son conceptos útiles para reforzar la seguridad en los sistemas operativos multiusuario. Espero que haya podido obtener más información sobre cómo cambiar los permisos y las propiedades.

¿Cuál es tu cosa favorita que aprendiste de este tutorial? ¡Házmelo saber en Twitter!

También puedes leer mis otras publicaciones aquí.

Gracias a Tom Mondloch por su ayuda con el ejercicio guiado.


Linux
  1. Cómo copiar permisos y propiedad de archivos a otro archivo en Linux

  2. Cómo usar el comando chown para cambiar la propiedad en Linux

  3. Cómo usar el comando chmod (Modo de cambio) en Linux

  4. Cómo administrar permisos/propiedades de archivos y directorios en Linux

  5. ¿Cómo chmod y chown archivos ocultos en Linux?

Cómo cambiar permisos en Linux

¿Qué es UID en Linux, cómo encontrarlo y cambiarlo?

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

Aprenda el uso del comando chown (Cambiar propiedad) en Linux

Cómo cambiar de usuario en Linux

Comprender los permisos básicos de archivos y la propiedad en Linux

    Permiso Revocar permiso
    leer restar 4
    escribir restar 2
    ejecutar restar 1