GNU/Linux >> Tutoriales Linux >  >> Cent OS

Cómo hacer que la cuenta de usuario sea de solo lectura en CentOS/RHEL 7

Pregunta :¿Cómo crear una cuenta de usuario que no pueda escribir en ningún archivo del sistema? En otras palabras, ¿cómo crear una cuenta de usuario de solo lectura en CentOS/RHEL 7?

Linux no proporciona una clasificación de cuentas a nivel de rol. El permiso de acceso se controla a nivel de nodo I, lo que implica permisos para cada archivo o directorio individual por separado.

Si podemos reformular un poco el problema, hay al menos dos técnicas que pueden dar la operación deseada. En lugar de pensar en términos de cuenta de usuario, piense en términos de archivos y directorios. Esto nos permite algunos métodos alternativos para lograr el mismo resultado. Cada elemento a continuación muestra una implementación alternativa que proporciona una protección ligeramente diferente que puede ser útil en algunos casos de uso.

Cree una cuenta anónima sin privilegios

Cada archivo o directorio en Linux tiene tres conjuntos de permisos de lectura/escritura/ejecución, uno para el propietario del archivo, otros usuarios en el mismo grupo que el propietario original y todos los demás. Se puede crear una nueva cuenta con una identificación de usuario y una identificación de grupo únicas y esta nueva cuenta se puede usar como cuenta de solo lectura. Dado que la cuenta no poseería archivos fuera de su directorio de inicio, el único permiso de acceso serían los "otros" permisos, que normalmente omiten permitir el acceso de escritura.

# useradd -c 'Mostly R/O Account' roaccount

La cuentaro tendrá asignada una ID de usuario y una ID de grupo únicas, lo que obliga a que cualquier archivo fuera de su directorio de inicio sea controlado por los "otros" permisos de acceso. El sistema operativo ya tiene una cuenta de privilegios mínimos, pero el sistema trata esta cuenta de forma especial. Se recomienda una cuenta separada para el uso de R/O.

La falla en este esquema es que se basa en que cada archivo y cada directorio en el servidor y el almacenamiento tengan sus "otros" permisos configurados correctamente. Esto se puede hacer manualmente o configurando la umask del proceso de creación en al menos 0002 (lo que bloquea la configuración de los "otros" permisos de escritura).

Reciba una notificación cuando se escriban ciertos archivos.

Si el objetivo es determinar todos los archivos escritos por un usuario determinado, la herramienta auditctl puede ser útil. Se puede configurar un reloj en la llamada al sistema de escritura que se activa cuando lo hace un usuario en particular. Por ejemplo, una configuración:

# auditctl -a always,exit -S write -F auid=1000

activaría una entrada de seguimiento de auditoría cada vez que el ID de usuario 1000 escriba en cualquier archivo. El subsistema de seguimiento de auditoría es bastante expresivo en las condiciones que se pueden expresar.

Encuentre más documentación en la página man de audit.rules.

# man audit.rules

Utilice listas de control de acceso (ACL) para anular los permisos.

Algunos controladores de sistemas de archivos admiten listas de control de acceso (ACL) que son permisos más detallados que los que permiten el propietario/grupo/otras divisiones. Los archivos o directorios individuales pueden usar una ACL para seleccionar un determinado conjunto de usuarios, no necesariamente en el mismo grupo, y otorgarles a esos usuarios los permisos de acceso a archivos deseados.

Por ejemplo, queremos otorgar a usuarioA, usuarioB y usuarioC acceso de solo lectura al directorio /secret-files/ y por debajo. Podemos hacerlo así:

# setfacl -Rd -m u:userA:rx -m u:userB:rx -m u:userC:rx /secret-files
# setfacl -R  -m u:userA:rx -m u:userB:rx -m u:userC:rx /secret-files

La primera línea establece una ACL predeterminada que se aplicará a cualquier archivo o directorio nuevo creado en /secret-files en el futuro. El segundo archivo aplica la ACL a cualquier contenido existente en el árbol /secret-files y por debajo.

Para obtener más detalles sobre esta función, consulte la página de aclman.

# man acl


Cent OS
  1. Cómo reducir el sistema de archivos raíz en CentOS / RHEL 6

  2. Cómo ejecutar rsyslog como usuario no root en CentOS/RHEL 7

  3. Cómo hacer que CentOS/RHEL 7 FIPS 140-2 sea compatible

  4. CentOS / RHEL:Cómo agregar un archivo de intercambio

  5. Cómo agregar una configuración regional en CentOS/RHEL 8

Cómo habilitar Kdump en RHEL 7 y CentOS 7

Cómo iniciar el servidor RHEL 7/CentOS 7 en modo de usuario único

Cómo iniciar el servidor CentOS 8 / RHEL 8 en modo de usuario único

Cómo instalar y usar Fail2ban en RHEL 8 / CentOS 8

Cómo crear un usuario de Sudo en RHEL, CentOS, Rocky y AlmaLinux

Cómo instalar Parallels Plesk Panel en CentOS y RHEL 8