Hola a todos Esta es una traducción de un artículo de RedHat RHCSA RHCE 7 RedHat Enterprise Linux 7 EX200 y EX300.
Por mi parte: espero que el artículo sea útil no solo para principiantes, sino que también ayudará a los administradores más experimentados a organizar sus conocimientos.
Entonces vamos.

Para acceder a archivos en Linux, se utilizan permisos. Estos permisos se asignan a tres objetos: un archivo, un grupo y otro objeto (es decir, todos los demás). En este artículo, aprenderá cómo aplicar permisos.
El artículo comienza con una revisión de los conceptos básicos, luego de lo cual se discuten los permisos especiales y las listas de control de acceso (ACL). Al final de este artículo, aprenderá a configurar permisos predeterminados a través de umask, así como a administrar atributos de usuario avanzados.
Gestión de propiedad de archivos
Antes de analizar los permisos, debe tener en cuenta la función del propietario del archivo y el directorio. Poseer archivos y directorios es vital para trabajar con permisos. En esta sección, primero aprenderá cómo puede ver al propietario. Luego aprenderá cómo cambiar el propietario y el usuario del grupo para archivos y directorios.
Mostrar propietario de un archivo o directorio
En Linux, cada archivo y cada directorio tiene dos propietarios: un usuario y un grupo.
Estos propietarios se establecen cuando se crea el archivo o directorio. El usuario que crea el archivo se convierte en el propietario de este archivo, y el grupo principal, que incluye al mismo usuario, también se convierte en el propietario de este archivo. Para determinar si usted como usuario tiene derechos de acceso a un archivo o directorio, el shell verifica su propiedad.
Esto sucede en el siguiente orden:- El shell verifica si posee el archivo al que desea acceder. Si usted es este propietario, obtiene permisos y el shell deja de verificar.
- Si no es el propietario del archivo, el shell verificará si usted es miembro de un grupo que tiene permisos en este archivo. Si es miembro de este grupo, obtiene acceso al archivo con los permisos establecidos para el grupo, y el shell dejará de comprobar.
- Si no eres el usuario ni el propietario del grupo, obtienes los derechos de otros usuarios (Otros).
Para ver las asignaciones de propietarios actuales, puede usar el
comando ls -l . Este comando muestra el grupo de usuarios y propietarios. A continuación puede ver la configuración del propietario de los directorios en el directorio / home.
[root@server1 home]
Con el
comando ls, puede mostrar el propietario de los archivos en este directorio. A veces puede ser útil obtener una lista de todos los archivos del sistema en los que el usuario o grupo se especifica como el propietario. Puedes usar
find para esto . El
argumento find -user puede usarse para este propósito. Por ejemplo, el siguiente comando muestra todos los archivos que tienen el usuario linda especificado como propietario:
find / -user linda
También puede usar
buscar para buscar archivos en los que un grupo particular los posee.
Por ejemplo, el siguiente comando busca todos los archivos que pertenecen al grupo de
usuarios :
find / -group users
Cambio de titularidad
Para aplicar permisos, lo primero a considerar es la propiedad. Hay un
comando chown para esto. La sintaxis de este comando es fácil de entender:
chown
Por ejemplo, el siguiente comando cambia el propietario del directorio / home / account al usuario linda:
chown linda /home/account
El
comando chown tiene varias opciones, una de las cuales es especialmente útil:
-R . Puedes adivinar lo que hace, porque esta opción también está disponible para muchos otros equipos. Esto le permite establecer el propietario de forma recursiva, lo que le permite establecer el propietario del directorio actual y todo lo que se muestra a continuación. El siguiente comando cambia el propietario del directorio / home y todo lo que está debajo a lisa:
Ahora los propietarios se ven así:
[root@localhost ~]
Ejecutar:
[root@localhost ~]
Ahora Lisa se ha convertido en la propietaria del directorio de la cuenta:
[root@localhost ~]
Cambio de propietario del grupo
Hay dos formas de cambiar la propiedad del grupo. Puede hacer esto usando
chown , pero hay un comando especial llamado
chgrp que hace el trabajo. Si desea usar el
comando chown , use
. o
: antes del nombre del grupo.
El siguiente comando cambia a cualquier propietario del grupo / home / account al grupo de cuentas:
chown .account /home/account
Puede usar
chown para cambiar el propietario de un usuario y / o grupo de varias maneras. Aquí hay algunos ejemplos:
- chown lisa myfile1 configura a lisa como propietaria de myfile1.
- chown lisa.sales myfile establece el usuario de lisa en el propietario del archivo myfile y también establece el grupo de ventas en el propietario del mismo archivo.
- chown lisa: sales myfile es el mismo que el comando anterior.
- chown .sales myfile establece el grupo de ventas como el propietario del archivo myfile sin cambiar el propietario del usuario.
- chown: sales myfile es el mismo que el comando anterior.
Puede usar el comando
chgrp para cambiar el propietario del grupo. Considere el siguiente ejemplo, donde puede usar
chgrp para establecer el grupo de ventas como el propietario del directorio de la cuenta:
chgrp .sales /home/account
Al igual que con
chown , puede usar la opción
-R con
chgrp y también cambiar el propietario del grupo de forma recursiva.
Comprender al propietario predeterminado
Puede notar que cuando el usuario crea el archivo, se aplica la propiedad predeterminada.
El usuario que crea el archivo se convierte automáticamente en el propietario de este archivo, y el grupo principal de este usuario se convierte automáticamente en el propietario de este archivo. Este suele ser un grupo que se especifica en el archivo / etc / passwd como el grupo principal del usuario. Sin embargo, si el usuario es miembro de varios grupos, puede cambiar el grupo central efectivo.
Para mostrar el grupo primario efectivo actual, el usuario puede usar el comando
grupos :
[root@server1 ~]
Si el usuario actual linda quiere cambiar el grupo primario efectivo, usará el comando
newgrp seguido del nombre del grupo que desea establecer como el nuevo grupo primario efectivo. Después de usar el comando
newgrp , el grupo primario estará activo hasta que el usuario emita el
comando de salida o cierre la sesión.
A continuación se muestra cómo Lisa utiliza este comando para que el grupo de ventas se convierta en el grupo principal:
lisa@server1 ~]$ groups lisa account sales [lisa@server1 ~]$ newgrp sales [lisa@server1 ~]$ groups sales lisa account [lisa@server1 ~]$ touch file1 [lisa@server1 ~]$ ls -l total 0 -rw-r--r--. 1 lisa sales 0 Feb 6 10:06 file1
Después de cambiar el grupo principal actual, todos los archivos nuevos creados por el usuario recibirán este grupo como el grupo propietario. Para volver a la configuración inicial del grupo primario, use
exit .
Para poder usar el comando
newgrp , el usuario debe ser miembro del grupo que quiere usar como primario. Además, la contraseña del grupo se puede usar para el grupo usando el comando
gpasswd . Si el usuario usa el comando
newgrp pero no es miembro del grupo objetivo, el shell solicita la contraseña del grupo. Después de ingresar la contraseña de grupo correcta, se establecerá un nuevo grupo primario efectivo.
Gestión de derechos fundamentales
El sistema de permisos de Linux fue inventado en la década de 1970. Como las necesidades informáticas eran limitadas en esos años, el sistema básico de permisos era bastante limitado. Este sistema de permisos utiliza tres permisos que se pueden aplicar a archivos y directorios. En esta sección, aprenderá a usar y cambiar estos permisos.
Comprender los derechos de lectura, escritura y ejecución
Tres permisos básicos le permiten leer, escribir y ejecutar archivos. El efecto de estos permisos difiere cuando se aplica a archivos o directorios. Para un archivo, el permiso de lectura le da derecho a abrir el archivo para leerlo. Por lo tanto, puede leer su contenido, pero eso significa que su computadora puede abrir el archivo para hacer algo con él.
Un archivo de programa que necesita acceso a una biblioteca debe, por ejemplo, tener acceso de lectura a esa biblioteca. Se deduce que el permiso de lectura es el permiso más básico que necesita para trabajar con archivos.
Para un directorio, la lectura le permite mostrar el contenido de ese directorio. Debe saber que este permiso no le permite leer archivos en un directorio. Los permisos de Linux no conocen la herencia, y la única forma de leer un archivo es usar permisos de lectura para ese archivo.
Como probablemente pueda adivinar, el permiso de escritura, si se aplica al archivo, le permite escribir en el archivo. En otras palabras, le permite modificar el contenido de los archivos existentes. Sin embargo, no permite crear o eliminar nuevos archivos o cambiar los permisos de los archivos. Para hacer esto, debe otorgar permiso de escritura al directorio donde desea crear el archivo. En los directorios, este permiso también le permite crear y eliminar nuevos subdirectorios.
El permiso de ejecución es lo que necesita para ejecutar el archivo. Nunca se instalará de manera predeterminada, lo que hace que Linux sea casi completamente inmune a los virus. Solo alguien con permisos de escritura en el directorio puede solicitar permiso para ejecutar.
A continuación se resume el uso de permisos básicos:
Usando chmod
Para administrar los derechos, use el
comando chmod . Al usar
chmod, puede establecer permisos para el usuario (usuario), grupo (grupo) y otros (otros). Puede usar este comando en dos modos: modo relativo y modo absoluto. En modo absoluto, se utilizan tres dígitos para establecer los permisos básicos.

Al establecer permisos, calcule el valor que necesita. Si desea establecer lectura, escritura y ejecución para el usuario, lectura y ejecución para el grupo, y lectura y ejecución para otros en el archivo / somefile, utilice el siguiente
comando chmod :
chmod 755 /somefile
Cuando usa
chmod de esta manera, todos los permisos actuales se reemplazan por los permisos que establece.
Si desea cambiar los permisos en relación con los permisos actuales, puede usar
chmod en modo relativo. Cuando usa
chmod en modo relativo, está trabajando con tres indicadores para indicar lo que desea hacer:
- Primero, indica para quién desea cambiar los permisos. Para hacer esto, puede elegir entre usuario ( u ), grupo ( g ) y otros ( o ).
- Luego, utiliza el operador para agregar o eliminar permisos del modo actual, o configurarlos por completo.
- Al final, usa r , wyx para indicar qué permisos desea establecer.
Al cambiar los permisos en modo relativo, puede omitir la parte "a" para agregar o eliminar permisos para todos los objetos. Por ejemplo, este comando agrega permiso de ejecución para todos los usuarios:
chmod +x somefile
Cuando trabaje en modo relativo, también puede usar comandos más complejos. Por ejemplo, este comando agrega permiso de escritura a un grupo y elimina las lecturas para otros:
chmod g+w,or somefile
Cuando utiliza
chmod -R o + rx / data, configura el permiso de ejecución para todos los directorios, así como para los archivos en el directorio / data. Para establecer el permiso para ejecutar solo para directorios, no para archivos, use
chmod -R o + rX / data .
La mayúscula X garantiza que los archivos no obtengan permiso para ejecutarse si el archivo aún no ha establecido el permiso de ejecución para algunos objetos. Esto hace que X sea una forma más inteligente de trabajar con permisos de ejecución; esto evitará instalar este permiso en archivos donde no es necesario.
Derechos extendidos
Además de los permisos básicos sobre los que acaba de leer, Linux también tiene un conjunto de permisos avanzados. Estos no son los permisos predeterminados que establece, pero a veces proporcionan una adición útil. En esta sección, aprenderá qué son y cómo configurarlos.
Comprender los permisos extendidos de SUID, GUID y bits fijos
Hay tres permisos avanzados. El primero de ellos es el permiso para establecer un identificador de usuario (SUID). En algunos casos especiales, puede aplicar este permiso a archivos ejecutables. Por defecto, el usuario que ejecuta el ejecutable ejecuta el archivo con sus propios permisos.
Para los usuarios comunes, esto generalmente significa que el uso del programa es limitado. Sin embargo, en algunos casos, el usuario requiere permisos especiales solo para realizar una tarea específica.
Considere, por ejemplo, una situación en la que el usuario necesita cambiar la contraseña. Para hacer esto, el usuario debe escribir su nueva contraseña en el archivo / etc / shadow. Sin embargo, este archivo no puede ser escrito por usuarios no root:
root@hnl ~]
Resolución SUID ofrece una solución a este problema. En la utilidad / usr / bin / passwd, este permiso se usa de manera predeterminada. Esto significa que cuando se cambia la contraseña, el usuario obtiene temporalmente privilegios de root, lo que le permite escribir en el archivo / etc / shadow. Puede ver la resolución SUID con
ls -l como
s en la posición donde generalmente espera ver
x para los permisos de usuario:
[root@hnl ~]
Los permisos SUID pueden parecer útiles (y en algunos casos lo son), pero al mismo tiempo son potencialmente peligrosos. Si se usa incorrectamente, puede otorgar accidentalmente permisos de acceso a la raíz. Por lo tanto, recomiendo usarlo solo con extrema precaución.
La mayoría de los administradores nunca tendrán que usarlo; solo lo verá en algunos archivos donde el sistema operativo debería configurarlo de manera predeterminada.
El segundo permiso especial es el identificador de grupo (SGID). Esta resolución tiene dos efectos. Cuando se aplica a un archivo ejecutable, otorga al usuario que está ejecutando el archivo los permisos del propietario del grupo de este archivo. Por lo tanto, el SGID puede hacer más o menos lo mismo que el SUID. Sin embargo, SGID prácticamente no se usa para este propósito.
Al igual que con el permiso SUID, SGID se aplica a algunos archivos del sistema como la configuración predeterminada.
Cuando se aplica a un directorio, el SGID puede ser útil porque puede usarlo para establecer el propietario del grupo predeterminado para los archivos y subdirectorios creados en este directorio. De manera predeterminada, cuando un usuario crea un archivo, su grupo primario efectivo se establece como el propietario del grupo para este archivo.
Esto no siempre es muy útil, especialmente porque los usuarios de Red Hat / CentOS tienen un grupo con el mismo nombre que el usuario, y del cual el usuario es el único miembro. Por lo tanto, de forma predeterminada, los archivos que crea el usuario se compartirán.
Imagine una situación en la que los usuarios de linda y lori trabajan en contabilidad y son miembros del grupo de
cuentas . Por defecto, estos usuarios son miembros del grupo privado del cual son el único miembro. Sin embargo, ambos usuarios son miembros del grupo de cuentas, pero también como un parámetro del grupo secundario.
La situación predeterminada es que cuando cualquiera de estos usuarios crea un archivo, el grupo principal se convierte en el propietario. Por lo tanto, por defecto, linda no puede acceder a los archivos creados por lori, y viceversa. Sin embargo, si crea el directorio compartido de un grupo (digamos / grupos / cuenta) y se asegura de que el permiso SGID se aplica a este directorio y que la cuenta del grupo se establece como el propietario del grupo para este directorio, todos los archivos creados en este directorio y en todos sus subdirectorios , también obtenga grupos de cuentas como el propietario de grupo predeterminado.
Por esta razón, el permiso SGID es un permiso muy útil para instalar en directorios de grupos compartidos.
El permiso SGID se muestra en la salida
ls -ld como
s en la posición donde generalmente encuentra permiso para ejecutar el grupo:
[root@hnl data]
El tercero de los permisos especiales es un poco difícil. Este permiso es útil para proteger los archivos de la eliminación accidental en un entorno donde varios usuarios tienen permisos de escritura en el mismo directorio. Si se utiliza un bit fijo, un usuario puede eliminar un archivo solo si es el propietario del archivo o directorio en el que se encuentra el archivo. Por este motivo, se utiliza como el permiso predeterminado para el directorio / tmp y también puede ser útil para los directorios de grupos compartidos.
Sin un bit fijo, si un usuario puede crear archivos en un directorio, también puede eliminar archivos de este directorio. En un entorno de grupo público, esto puede ser molesto. Imagine a los usuarios linda y lori, quienes tienen permisos de escritura en el directorio / data / account y reciben estos permisos a través de la membresía en el grupo de cuentas. Por lo tanto, linda puede eliminar archivos creados por lori y viceversa.
Cuando utiliza un bit fijo, el usuario puede eliminar archivos solo si se cumple una de las siguientes condiciones:
- El usuario es el propietario del archivo;
- El usuario es el propietario del directorio en el que se encuentra el archivo.
Al usar
ls -ld , puede ver un bit
fijo como
t en la posición en la que normalmente ve permiso de ejecución para otros:
[root@hnl data]
Derechos mejorados
Para aplicar SUID, SGID y sticky bit, también puede usar
chmod . SUID tiene un valor numérico de 4, SGID tiene un valor numérico de 2 y el bit fijo tiene un valor numérico de 1.
Si desea aplicar estos permisos, debe agregar un argumento de cuatro dígitos a
chmod , cuyo primer dígito se refiere a permisos especiales. La siguiente línea, por ejemplo, agregará el permiso SGID al directorio y establecerá rwx para el usuario y rx para el grupo y otros:
chmod 2755 /somedir
Esto es poco práctico si necesita mirar los permisos actuales que se establecen antes de trabajar con
chmod en modo absoluto. (Corre el riesgo de sobrescribir permisos si no lo hace). Por lo tanto, le recomiendo trabajar en modo relativo si necesita aplicar alguno de los permisos especiales:
- Para SUID, use chmod u + s .
- Para SGID, use chmod g + s .
- Para bits fijos, use chmod + t y luego el nombre del archivo o directorio para el que desea establecer permisos.
La tabla resume todo lo que es importante saber sobre la administración de permisos especiales.

Ejemplo de trabajo con derechos especiales.
En este ejemplo, utiliza permisos especiales para facilitar que los miembros del equipo compartan archivos en un directorio de grupo compartido. Usted asigna el bit ID del identificador de grupo establecido, así como el bit fijo, y ve que después de que se instalan, se agregan funciones que facilitan el trabajo conjunto de los miembros del grupo.
- Abra el terminal donde es un usuario lindo. Puede crear un usuario usando useradd linda , agregue la contraseña passwd linda .
- Cree un directorio / datos y un subdirectorio / datos / ventas en la raíz con el comando mkdir -p / data / sales . Ejecute cd / data / sales para ir al directorio de ventas. Ejecute touch linda1 y toque linda2 para crear dos archivos vacíos propiedad de linda.
- Ejecute su - lisa para cambiar el usuario actual a lisa, que también es miembro del grupo de ventas.
- Ejecute cd / data / sales y desde este directorio, ejecute ls -l . Verá dos archivos creados por linda y que pertenecen al grupo linda. Ejecute rm -f linda * . Esto eliminará ambos archivos.
- Ejecute touch lisa1 y touch lisa2 para crear dos archivos que pertenecen al usuario lisa.
- Ejecute su - para elevar sus privilegios al nivel raíz.
- Ejecute chmod g + s, o + t / data / sales para establecer el bit de identificador de grupo (GUID), así como el bit fijo en el directorio de grupo compartido.
- Ejecute su - linda . Luego toque linda3 y toque linda4 . Ahora debería ver que los dos archivos que creó pertenecen al grupo de ventas, que es el propietario del grupo de directorio / data / sales.
- Ejecute rm -rf lisa * . Sticky bit evita que estos archivos se eliminen en nombre de linda, ya que no es el propietario de estos archivos. Tenga en cuenta que si linda es la propietaria del directorio / data / sales, ¡puede eliminar estos archivos de todos modos!
Gestión de ACL (setfacl, getfacl) en Linux
Incluso si los derechos extendidos mencionados anteriormente agregan funcionalidades útiles a cómo Linux funciona con permisos, esto no le permite otorgar permisos a más de un usuario o un grupo en un solo archivo.Las listas de control de acceso ofrecen esta característica. Además, permiten a los administradores establecer permisos predeterminados de una manera compleja, en la que los permisos establecidos pueden variar en diferentes directorios.Comprender las ACL
Aunque el subsistema ACL agrega una gran funcionalidad a su servidor, tiene un inconveniente: no todas las utilidades lo admiten. Por lo tanto, puede perder la configuración de ACL al copiar o mover archivos, y es posible que el software de respaldo no realice una copia de seguridad de la configuración de ACL.La utilidad tar no admite ACL. Para asegurarse de que la configuración de ACL no se pierda al realizar una copia de seguridad, use asterisco en lugar de alquitrán. star funciona con los mismos parámetros que tar; solo agrega soporte para la configuración de ACL.También puede hacer una copia de seguridad de la ACL con getfacl , que se puede restaurar con el comando setfacl. Para crear una copia de seguridad, usegetfacl -R / directorio> archivo.acls . Para restaurar la configuración desde el archivo de respaldo, use setfacl --restore = file.acl .La falta de soporte con algunas herramientas no debería ser un problema. Las ACL a menudo se aplican a directorios como una medida estructural, en lugar de a archivos individuales.Por lo tanto, no habrá muchos, sino solo unos pocos, aplicados en lugares inteligentes del sistema de archivos. Por lo tanto, restaurar las ACL originales con las que trabajó es relativamente fácil, incluso si su software de respaldo no las admite.Preparación del sistema de archivos para una ACL
Antes de comenzar a trabajar con ACL, es posible que deba preparar un sistema de archivos para admitir ACL. Debido a que los metadatos del sistema de archivos deben expandirse, no siempre hay soporte predeterminado para las ACL en el sistema de archivos. Si recibe el mensaje "operación no admitida" cuando configura ACL para el sistema de archivos, es posible que su sistema de archivos no sea compatible con ACL.Para solucionar esto, debe agregar la opción de montaje acl en el archivo / etc / fstab para que el sistema de archivos se monte con soporte ACL de forma predeterminada.Cambie y vea la configuración de ACL con setfacl y getfacl
Para configurar la ACL, necesita el comando setfacl . Para ver la configuración actual de ACL, necesita getfacl . El comando ls -l no muestra ninguna ACL existente; simplemente muestra + después de la lista de permisos, lo que indica que las ACL también se aplican al archivo.Antes de configurar ACL, siempre es útil mostrar la configuración actual de ACL usando getfacl . A continuación, con un ejemplo, puede ver los permisos actuales, como se muestra con ls -ld , así como con getfacl . Si observa con suficiente cuidado, verá que la información que se muestra es exactamente la misma. [root@server1 /]
Como resultado del comando getfacl , puede ver a continuación que los permisos se muestran para tres objetos diferentes: usuario, grupo y otros. Ahora agreguemos una ACL para otorgar permisos de lectura y ejecución al grupo de ventas. El comando para esto es setfacl -mg: sales: rx / dir . En este comando, -m indica que se debe cambiar la configuración actual de ACL. Después de eso, g: sales: rx le dice al equipo que configure la ACL para leer y ejecutar ( rx ) para las ventas del grupo ( g ). A continuación puede ver cómo se ve el comando, así como la salida del comando getfacl después de cambiar la configuración actual de ACL. [root@server1 /]
Ahora que comprende cómo configurar una ACL grupal, es fácil comprender la ACL para los usuarios y otros usuarios. Por ejemplo, el comando setfacl -mu: linda: rwx / data otorga permisos al usuario linda en el directorio / data, sin convertirlo en el propietario y sin cambiar el destino del propietario actual.El comando setfacl tiene muchas características y opciones. Una opción es especialmente importante, la opción -R . Si se usa, esta opción configura la ACL para todos los archivos y subdirectorios que existen actualmente en el directorio donde instala la ACL. Se recomienda que siempre use esta opción cuando modifique ACL para directorios existentes.Trabajar con ACL predeterminadas
Una de las ventajas de usar ACL es que puede otorgar permisos a múltiples usuarios o grupos en un directorio. Otra ventaja es que puede habilitar la herencia trabajando con la ACL predeterminada.Al establecer la ACL predeterminada, usted define los permisos que se establecerán para todos los elementos nuevos creados en el directorio. Tenga en cuenta que la ACL predeterminada no cambia los permisos para los archivos y subdirectorios existentes. Para cambiarlos, debe agregar una ACL normal.Esto es importante saberlo. Si desea utilizar la ACL para configurar el acceso de múltiples usuarios o grupos al mismo directorio, debe configurar la ACL dos veces. Primero use setfacl -R -m para cambiar la ACL para los archivos actuales. Luego usasetfacl -md: para cuidar todos los elementos nuevos que también se crearán.Para establecer la ACL predeterminada, solo necesita agregar la opción d después de la opción -m (¡el orden importa!). Por lo tanto, use setfacl -md: g: sales: rx / data si desea que el grupo de ventas tenga acceso de lectura y ejecución a todo lo que alguna vez se creará en el directorio / data.Cuando se usan ACL predeterminadas, también puede ser útil establecer ACL para otros. Esto generalmente no tiene mucho sentido, porque también puede cambiar los permisos para otros que usan chmod . Sin embargo, lo que no puedes hacer con chmod, esto indica los derechos que se deben otorgar a otros usuarios para cada archivo nuevo que se creará. Si desea que otros no obtengan ningún permiso para nada creado en / data, por ejemplo, use setfacl -md: o :: - / data .Las ACL y los permisos regulares no siempre están bien integrados. Pueden surgir problemas si aplica la ACL predeterminada a un directorio, después de lo cual se han agregado elementos a este directorio, y luego intenta cambiar los permisos normales. Los cambios que se aplican a los permisos regulares no se reflejarán bien en la descripción general de ACL. Para evitar problemas, primero configure los permisos normales, luego configure las ACL predeterminadas (y luego intente no cambiarlas nuevamente).Ejemplo de gestión de derechos avanzada utilizando ACL
En este ejemplo, continuará trabajando con los directorios / data / account y / data / sales que creó anteriormente. En los ejemplos anteriores, garantizó que el grupo de ventas tiene permisos para / data / sales y que el grupo de cuentas tiene permisos para / data / account.Primero, asegúrese de que el grupo de cuentas obtenga permisos de lectura en el directorio / data / account y que el grupo de ventas obtenga permisos de lectura en el directorio / data / account.Luego establezca las ACL predeterminadas para asegurarse de que todos los archivos nuevos tengan permisos establecidos correctamente para todos los elementos nuevos.- Abre una terminal.
- Ejecute setfacl -mg: cuenta: rx / data / sales y setfacl -mg: sales: rx / data / account .
- getfacl , , , .
- setfacl -md:g:account:rwx,g:sales:rx /data/sales , ACL sales.
- ACL /data/account, setfacl -md:g:sales:rwx,g:account:rx /data/account .
- , ACL , /data/sales. touch /data/sales/newfile getfacl /data/sales/newfile .
umask
Arriba, aprendió a trabajar con ACL de forma predeterminada. Si no está utilizando una ACL, hay un parámetro de shell que define los derechos predeterminados que recibirá: umask (máscara hacia atrás). En esta sección, aprenderá a cambiar los permisos predeterminados con umask .Probablemente haya notado que cuando crea un nuevo archivo, se establecen algunos permisos predeterminados. Estos permisos están determinados por la configuración de umask . Esta opción de shell se aplica a todos los usuarios al iniciar sesión. El parámetro umask usa un valor numérico que se resta de los permisos máximos que se pueden establecer automáticamente para el archivo; la configuración máxima para archivos es 666 y para directorios: 777.Sin embargo, se aplican algunas excepciones a esta regla. Puede encontrar una descripción completa de la configuración de umask en la tabla a continuación.De los dígitos utilizados en umask , como en el caso de los argumentos numéricos para el comando chmod , el primer dígito se refiere a los permisos del usuario, el segundo dígito se refiere a los permisos del grupo y el último se refiere a los permisos predeterminados establecidos para otros. El valor predeterminado de umask de 022 proporciona 644 para todos los archivos nuevos y 755 para todos los directorios nuevos creados en su servidor.Una descripción completa de todos los valores numéricos de umask y sus resultados en la tabla a continuación.
Una manera fácil de ver cómo funciona el parámetro umask es la siguiente: comience con los permisos predeterminados para el archivo establecido en 666 y reste umask para obtener permisos válidos. Haga lo mismo para el directorio y sus permisos predeterminados de 777.Hay dos formas de cambiar la configuración de umask: para todos los usuarios y para usuarios individuales. Si desea instalar umask para todos los usuarios, debe asegurarse de que la opción umask se tenga en cuenta al ejecutar archivos de entorno de shell, como se especifica en / etc / profile. El enfoque correcto es crear un script de shell llamado umask.sh en el directorio /etc/profile.d y especificar el umask que desea usar en este script de shell. Si se cambia umask en este archivo, se aplica a todos los usuarios después de iniciar sesión en el servidor.Una alternativa a la configuración de umask a través de / etc / profile y archivos relacionados, donde se aplica a todos los usuarios del sistema, es cambiar la configuración de umask en un archivo llamado .profile, que se crea en el directorio de inicio de cada usuario.La configuración aplicada en este archivo se aplica solo a un usuario individual; por lo tanto, este es un buen método si necesita más detalles. Personalmente, me gusta que esta característica cambie el valor predeterminado de umask para el usuario raíz a 027, mientras que los usuarios normales trabajan con el umask predeterminado 022.Trabajando con atributos de usuario avanzados
Esta es la sección final sobre los derechos de Linux.Cuando se trabaja con permisos, siempre hay una relación entre un usuario u objeto de grupo y los permisos que estos objetos de usuario o grupo tienen para el archivo o directorio. Un método alternativo para proteger archivos en un servidor Linux es trabajar con atributos.Los atributos hacen su trabajo independientemente del usuario que accede al archivo.Al igual que con las ACL, los atributos de archivo pueden necesitar incluir la opción de montaje .Esta es la opción user_xattr . Si recibe un mensaje de "operación no admitida" cuando trabaja con atributos de usuario avanzados, asegúrese de establecer el parámetro de montaje en el archivo / etc / fstab.Muchos atributos están documentados. Algunos atributos están disponibles pero aún no están implementados. No los uses; no te traerán nada.Los siguientes son los atributos más útiles que puede aplicar:A Este atributo garantiza que el tiempo de acceso al archivo no cambie.Por lo general, cada vez que se abre un archivo, el tiempo de acceso al archivo debe escribirse en los metadatos del archivo. Esto afecta negativamente el rendimiento; por lo tanto, para los archivos a los que se accede regularmente, el atributo A se puede usar para deshabilitar esta función.a Este atributo le permite agregar, pero no eliminar, un archivo.cSi utiliza un sistema de archivos que admite compresión de nivel de volumen, este atributo de archivo asegura que el archivo se comprimirá la primera vez que se habilite el mecanismo de compresión.D Este atributo garantiza que los cambios en los archivos se escriban en el disco de inmediato, y no se almacenan en caché en primer lugar. Este es un atributo útil en los archivos importantes de la base de datos, asegurándose de que no se pierdan entre la caché del archivo y el disco duro.d Este atributo asegura que el archivo no se guardará en las copias de seguridad donde se utiliza la utilidad de volcado.YoEste atributo habilita la indexación para el directorio en el que está incluido. Esto proporciona un acceso más rápido a los archivos para sistemas de archivos primitivos como Ext3, que no utilizan la base de datos del árbol B para un acceso rápido a los archivos.i Este atributo hace que el archivo no cambie. Por lo tanto, no puede realizar cambios en el archivo, lo cual es útil para los archivos que necesitan protección adicional.j Este atributo asegura que en el sistema de archivos ext3, el archivo se escribe primero en el registro y luego en los bloques de datos del disco duro.s Sobrescriba los bloques en los que se guardó el archivo durante 0 s después de eliminar el archivo. Esto garantiza que la recuperación de archivos no sea posible después de que se haya eliminado.tuEste atributo almacena información de eliminación. Esto le permite desarrollar una utilidad que funciona con esta información para guardar archivos eliminados.Si desea aplicar atributos, puede usar el comando chattr . Por ejemplo, use chatf + s somefile para aplicar atributos a somefile. ¿Necesita eliminar un atributo? Luego use chattr -s somefile y se eliminará. Para obtener una descripción general de todos los atributos que se utilizan actualmente, use el comando lsattr .Resumen
En este artículo, aprendiste a trabajar con permisos. Leyó acerca de tres permisos básicos, permisos avanzados y cómo aplicar ACL al sistema de archivos. También aprendió a usar el parámetro umask para aplicar permisos predeterminados. Al final de este artículo, aprendió a usar atributos avanzados por el usuario para aplicar una capa adicional de seguridad del sistema de archivos.Si le gustó esta traducción, escríbala en los comentarios. Habrá más motivación para hacer traducciones útiles.. .
« - .» « - .», .
berez .
:
, , , .
:
, , , . , , , .
CryptoPirate