GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo administrar los permisos de Linux para usuarios, grupos y otros

Administrar el acceso a los recursos es una tarea fundamental para los administradores de sistemas. Esta responsabilidad consta de tres componentes:identidades, recursos y permisos. Este artículo cubre varios comandos de administración de archivos, grupos y usuarios para controlar el acceso a los recursos. El artículo utiliza un "¿Cómo puedo...?" formato, y se supone que tiene algunos recursos para trabajar. Específicamente, cubro los siguientes temas:

  • Creación de directorios y archivos
  • Gestionar la propiedad y los grupos asociados
  • Configuración de permisos con modos absolutos y simbólicos

Instalación de un parque infantil

Llevo unos 25 años en TI y la mayor parte de ese tiempo lo pasé como formador técnico. Eso significa que las cosas que escribo generalmente están estructuradas como una especie de laboratorio u otra oportunidad práctica. Así es como cubro el material. Con eso en mente, supondré que tiene un par de identidades y recursos para experimentar mientras lee el resto del artículo. Puede usar los siguientes comandos para configurar un parque infantil. Es mejor hacer esto en una máquina virtual en lugar de en su caja personal de Linux, pero estas tareas son relativamente inofensivas.

Cree dos nuevos usuarios y dos nuevos grupos para trabajar. Tenga en cuenta que no necesita configurar contraseñas para los usuarios en este ejercicio, ya que no iniciará sesión con esas cuentas.

# useradd user01
# useradd user02
# groupadd groupA
# groupadd groupB

Nota :Usarías el passwd user01 comando para establecer la contraseña del usuario.

En su directorio de inicio, cree un nuevo directorio llamado playground :

# mkdir playground

Cambia al ~/playground directorio usando el cd dominio. Está listo para trabajar con los siguientes comandos y conceptos.

Cuando haya completado el artículo y aprendido las técnicas que he cubierto, elimine las dos cuentas de usuario, los grupos y el directorio del patio de recreo. Usa rm -fR /playground , userdel user01 , y groupdel groupA para eliminar los recursos.

¿Cómo creo directorios y archivos?

Usa el mkdir Comando para crear directorios. El touch El comando es una de las muchas formas de crear archivos.

¿Cómo creo un directorio llamado Resources? ?

# mkdir Resources

¿Cómo creo una ruta de directorio (una serie de directorios que aún no existen)?

# mkdir -p Resources/data/2020data

Nota :El objetivo aquí es crear los 2020data directorio, pero los data de la ruta dada directorio aún no existe. El -p La opción crea directorios principales según sea necesario para completar la ruta.

¿Cómo creo un archivo llamado file1? ?

# touch file1

¿Cómo creo varios archivos a la vez?

# touch file2 file3 file4

¿Cómo administro la propiedad y los grupos?

En el directorio del patio de recreo, muestre el propietario actual y el grupo asociado con los Resources directorio y los archivos.

¿Cómo puedo mostrar permisos, propietarios y grupos?

# ls -l

El ls -l El comando muestra el contenido del directorio en formato largo. El formato largo contiene tanto permisos como propiedad. Puede ver que la cuenta de usuario que creó los recursos también posee esos recursos. La asociación del grupo también es el grupo principal de ese usuario.

¿Cómo cambio el usuario/propietario asociado con file1? ?

# chown user02 file1

¿Cómo cambio el grupo asociado con file1? ?

# chown :groupA file1

¿Cómo cambio el propietario y el grupo al mismo tiempo para file2? ?

# chown user02:groupA file2

Hay un chgrp específico comando, pero prefiero memorizar solo un comando (chown ) y aplicarlo a ambas funciones (asociaciones de usuarios y grupos) en lugar de chown para el usuario y luego tener que recordar chgrp para el grupo.

Entonces, ¿cómo uso chgrp? ?

# chgrp groupB file1

¿Cómo cambio el usuario/grupo para un directorio y todo su contenido?

# chown -R user01:groupA Resources

La tarea anterior proporciona un recursivo configuración. Técnicamente, los comandos recursivos se repiten en cada objeto especificado. Efectivamente, recursivo significa "esto y todo lo que hay en él". En el ejemplo anterior, está configurando el usuario/grupo relacionado para los Resources directorio y todo lo que hay en él. Sin el -R opción, solo afectaría a los Resources directorio en sí, pero no su contenido.

[ A los lectores también les gustó: Una introducción a las listas de control de acceso (ACL) de Linux]

¿Cómo administro los permisos?

El modo de cambio o chmod el comando establece los permisos. La sintaxis es directa:

chmod permissions resource-name

Aquí hay dos ejemplos de manipulación de permisos para file2 :

# chmod 740 file2
# chmod u=rwx,g=r,o-rwx file2

¡Pero espera! Esos parecen ser ejemplos radicalmente diferentes (en realidad no lo son). ¿Qué son todas esas letras y números?

Necesitamos discutir el modo absoluto y modo simbólico .

¿Cómo uso el modo absoluto?

El modo absoluto es una de las dos formas de especificar permisos. He visto este modo denominado modo octal o numérico, pero el término que aprendí fue absoluto . Ese término también tiene más sentido para mí porque es una declaración absoluta de los permisos deseados. Siempre les dije a mis alumnos que este parecía el más complejo de los dos modos, pero en realidad es el más simple. Por lo general, estaban de acuerdo.

Cada nivel de acceso (lectura, escritura, ejecución) tiene un valor octal:

Cada identidad (usuario, grupo, otros) tiene una posición:

Nivel de acceso Valor octal
Leer 4
Escribir 2
Ejecutar 1

La sintaxis del modo absoluto indica los permisos deseados de izquierda a derecha.

¿Cómo le doy al usuario (propietario) lectura, escritura y ejecución, al grupo solo lectura y a todos los demás sin acceso a file2? usando el modo absoluto?

# chmod 740 file2

Los tres valores de permisos están asociados con identidades:
    ugo
    740

  • Los 7 se asigna al usuario y es la suma de 4+2+1 o leer+escribir+ejecutar (acceso completo)
  • Los 4 se asigna al grupo y es la suma de 4+0+0 (solo lectura)
  • El 0 se asigna a otros y es la suma de 0+0+0 (sin acceso)

En este ejemplo, el usuario tiene rwx , el grupo tiene r solo, y todos los demás tienen ningún acceso a file2 .

Veamos un ejemplo más.

¿Cómo concedo al usuario (propietario) lectura y escritura, al grupo solo lectura y a todos los demás solo lectura a file2? ?

# chmod 644 file2
  • El usuario tiene 6 (leer y escribir)
  • El grupo tiene 4 (solo lectura)
  • Todos los demás tienen 4 (solo lectura)

Encuentro esto más fácil porque no hay cálculos involucrados. No me preocupa agregar o quitar permisos específicos según la configuración actual. En su lugar, digo "establecer los permisos para que sean estos", y ese es el resultado final que obtengo. Es una declaración absoluta.

¿Cómo establezco permisos para los Resources? directorio y todo su contenido usando el modo absoluto?

# chmod -R 744 Resources

¿Cómo uso el modo simbólico?

El modo simbólico usa más símbolos, pero los símbolos son más simples de entender. Eso es atractivo para los administradores de sistemas que son nuevos en los permisos estándar de Linux.

Cada nivel de acceso tiene un símbolo:

Identidad Puesto
Usuario Primero o más a la izquierda
Grupo Medio
Otros Último o más a la derecha

Cada identidad tiene un símbolo:

Nivel de acceso Símbolo
Leer r
Escribir w
Ejecutar x

También hay operadores para manipular los permisos:

Identidad Símbolo
Usuario u
Grupo g
Otros o

El chmod general la sintaxis del comando es la misma:

command permissions directory/file

Aquí hay un ejemplo:

¿Cómo elimino los permisos de lectura de otros para file2? usando el modo simbólico?

# chmod o-r file2

Este ejemplo elimina (- ) la lectura (r ) permiso de otros (o ) para file2 .

Aquí hay otro ejemplo simple:

¿Cómo otorgo permisos de lectura y escritura al grupo para file2? ?

# chmod g+rw file2

Este da (+ ) leer y escribir (rw ) al grupo (g ) para file2 .

¿Cómo establezco permisos para un directorio y todo su contenido usando el modo simbólico?

# chmod -R o=rwx,g+rw,o-rwx Resources

Permisos especiales y Listas de control de acceso

La discusión anterior cubre los permisos estándar de Linux:aplicar rwx para el usuario, el grupo y todos los demás. Sin embargo, Linux tiene mucha más flexibilidad. Los permisos especiales permiten a los usuarios ejecutar aplicaciones con otras credenciales, controlar la herencia de las asociaciones de grupos y evitar que los archivos se modifiquen accidentalmente. Consulte este excelente artículo sobre permisos especiales.

Linux también tiene una forma de hacer cumplir diferentes permisos para diferentes usuarios y grupos. Las listas de control de acceso (ACL) permiten a los administradores de sistemas definir permisos para más de un usuario y un grupo, lo que agrega mucha más flexibilidad a los permisos estándar. Por ejemplo, user01 se puede otorgar rw- a file1 , mientras que user02 se puede conceder r-- a file1 . Aquí hay un excelente artículo sobre las ACL.

[ Curso gratuito:Resumen técnico de Red Hat Satellite. ] 

Resumir

La creación de recursos, la gestión de usuarios y la configuración de permisos son tareas fundamentales para los usuarios de Linux. Mi objetivo era proporcionar una guía rápida y fácil basada en preguntas o tareas comunes que todos debemos realizar con regularidad. Si es nuevo en Linux, tener una comprensión sólida de los ocho comandos discutidos anteriormente hará que su vida de administrador de sistemas sea mucho más fácil.


Linux
  1. Hoja de trucos para usuarios y permisos de Linux

  2. Cómo crear un directorio compartido para todos los usuarios en Linux

  3. Cómo administrar y enumerar servicios en Linux

  4. Administrar usuarios de Linux y grupos de Linux

  5. Cómo administrar usuarios con useradd en linux

Permisos de Linux:cómo encontrar los permisos de un archivo

Cómo enumerar usuarios y grupos en Linux

Cómo crear y administrar nuevos usuarios en Linux

¿Cómo crear Usuarios y Grupos en CentOS7?

Cómo detectar y administrar dispositivos en Linux

Cómo instalar y configurar el subsistema de Windows para Linux

    Tarea Operador
    Otorgar un nivel de acceso +
    Eliminar un nivel de acceso -
    Establecer un nivel de acceso =