En general, un clúster de Hadoop realiza seguridad en muchas capas. El nivel de protección depende de los requisitos de la organización. En este artículo, aprenderemos sobre el primer nivel de seguridad de Hadoop. Contiene principalmente dos componentes. Ambas funciones forman parte de la instalación predeterminada.
1. Permiso de archivo
2. ACL (Lista de control de acceso)
1. Permiso de archivo
HDFS (Sistema de archivos distribuidos de Hadoop) implementa POSIX (Interfaz de sistema operativo portátil) como un modelo de permisos de archivos. Es similar al modelo de permisos de archivos en Linux . En Linux, usamos Propietario, Grupo y Otros, que tiene permiso para cada archivo y directorio disponible en nuestro entorno Linux.
Owner/user Group Others rwx rwx rwx
De manera similar, el sistema de archivos HDFS también implementa un conjunto de permisos para este Propietario, Grupo y Otros . En Linux, usamos -rwx para otorgar permisos al usuario específico donde r se lee, w es para escribir o agregar y x es para ejecutable. Pero en HDFS para un archivo, tenemos r para leer, w para escribir y agregar y no tiene sentido x , es decir, para permiso de ejecución, porque en HDFS se supone que todos los archivos son archivos de datos y no tenemos ningún concepto de ejecutando un archivo en HDFS. Dado que no tenemos un concepto ejecutable en HDFS, no tenemos setUID ni setGID para HDFS.
Del mismo modo, podemos tener permiso para un directorio en nuestro HDFS. Donde r se usa para enumerar el contenido de un directorio, w se usa para crear o eliminar un directorio y el permiso x se usa para acceder al elemento secundario de un directorio. Aquí tampoco tenemos setUID y setGID para HDFS.
¿Cómo puede cambiar el permiso de este archivo HDFS?
-chmod , que significa comando de modo de cambio, se usa para cambiar el permiso de los archivos en nuestro HDFS. La primera enumera los directorios disponibles en nuestro HDFS y echa un vistazo a los permisos asignados a cada uno de estos directorios. Puede enumerar el directorio en su raíz HDFS con el siguiente comando.
hdfs dfs -ls /
Aquí, / representa el directorio raíz de su HDFS.
Permítanme primero enumerar los archivos presentes en mi directorio Hadoop_File.
hdfs dfs -ls /Hadoop_File
En la imagen de arriba, puede ver que para file1.txt , solo tengo permiso de lectura y escritura para el usuario propietario . Así que estoy agregando permiso de escritura al grupo y a otros también.
Requisito previo:
Debe estar familiarizado con el uso del comando -chmod en Linux, lo que significa cómo usar el interruptor para los permisos de los usuarios. Para agregar permiso de escritura al grupo y otros, use el siguiente comando.
hdfs dfs -chmod go+w /Hadoop_File/file1.txt
Aquí, go significa grupo y otro y w significa escribir, y el signo + muestra que estoy agregando permiso de escritura para grupo y otro. Luego enumere el archivo nuevamente para verificar si funcionó o no.
hdfs dfs -ls /Hadoop_File
Y lo hemos hecho, de igual forma, puedes cambiar el permiso de cualquier archivo o directorio disponible en nuestro HDFS (Hadoop Distributed File System).
Del mismo modo, puede cambiar el permiso según sus requisitos para cualquier usuario. también puede cambiar el grupo o propietario de un directorio con -chgrp y -chown respectivamente.
2. ACL (Lista de control de acceso)
ACL proporciona una forma más flexible de asignar permisos para un sistema de archivos. Es una lista de permisos de acceso para un archivo o un directorio. Necesitamos el uso de ACL en caso de que haya creado un usuario separado para su configuración de clúster de un solo Node de Hadoop, o si tiene una configuración de clúster de varios Nodes donde hay varios Nodes presentes y desea cambiar el permiso para otros usuarios.
Porque si desea cambiar el permiso para los diferentes usuarios, no puede hacerlo con el comando -chmod . Por ejemplo, para el clúster de un solo Node de Hadoop, su usuario principal es root y ha creado un usuario separado para la configuración de Hadoop con un nombre, digamos Hadoop . Ahora, si desea cambiar el permiso del usuario raíz para los archivos que están presentes en su HDFS, no puede hacerlo con el comando -chmod . Aquí viene ACL (Lista de control de acceso) en la imagen. Con ACL puede establecer permisos para un usuario con nombre específico o un grupo con nombre .
Para habilitar ACL en HDFS, debe agregar la siguiente propiedad en el archivo hdfs-site.xml .
<property> <name>dfs.namenode.acls.enabled</name> <value>true</value> </property>
Nota: No olvide reiniciar todos los demonios; de lo contrario, los cambios realizados en hdfs-site.xml no se reflejarán.
Puede verificar las entradas en su lista de control de acceso (ACL) con el comando -getfacl para un directorio como se muestra a continuación.
hdfs dfs -getfacl /Hadoop_File
Puede ver que tenemos 3 entradas diferentes en nuestra ACL. Supongamos que desea cambiar el permiso de su usuario raíz para cualquier directorio HDFS, puede hacerlo con el siguiente comando.
Sintaxis:
hdfs dfs -setfacl -m user:user_name:r-x /Hadoop_File
Puede cambiar el permiso de cualquier usuario agregándolo a la ACL de ese directorio. A continuación se muestran algunos de los ejemplos para cambiar el permiso de diferentes usuarios designados para cualquier archivo o directorio HDFS.
hdfs dfs -setfacl -m user:root:r-x /Hadoop_File
Otro ejemplo, para el usuario raj:
hdfs dfs -setfacl -m user:raj:r-x /Hadoop_File
Aquí rx denota solo permiso de lectura y ejecución para el directorio HDFS para ese usuario raíz y raj .
En mi caso, no tengo ningún otro usuario, así que estoy cambiando el permiso para mi único usuario, es decir , dikshant.
hdfs dfs -setfacl -m user:dikshant:rwx /Hadoop_File
Luego enumere la ACL con el comando -getfacl para ver los cambios.
hdfs dfs -getfacl /Hadoop_File
Aquí, puede ver otra entrada en ACL de este directorio con usuario: dikshant: rwx para el nuevo permiso del usuario dikshant . Del mismo modo, en caso de que tenga varios usuarios, puede cambiar su permiso para cualquier directorio HDFS. Este es otro ejemplo para cambiar el permiso del usuario dikshant desde el modo rx .
Aquí puede ver que he cambiado el permiso de usuario de dikshant de rwx a rx .
Publicación traducida automáticamente
Artículo escrito por dikshantmalidev y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA