Hay muchas herramientas para compartir archivos en Linux. Sin embargo, NFS (Network File System) es sin duda el más exitoso hasta el momento. Con el sistema de archivos de la red, el directorio compartido en el servidor de archivos se puede montar en el sistema operativo local a través de la red. En este caso, el usuario puede operar el directorio compartido del servidor remoto en el sistema operativo local como si fuera una partición local.
Entonces, ¿cuál es el uso de NFS al final? Hasta ahora, el autor tiene al menos dos funciones a través del sistema de archivos de la red NFS, una es construir un servidor de archivos para empresas y la segunda es implementar una plataforma de compilación y desarrollo de Linux.
Al usar el sistema de archivos de red NFS, es fácil crear una plataforma para compartir archivos para usuarios empresariales. Simplemente despliegue un servidor Linux y configure el sistema de archivos NFS. A continuación, configure algunas carpetas compartidas en el servidor de acuerdo con el departamento u otras reglas, y configure los permisos relevantes. Por ejemplo, puede configurar un usuario y una carpeta compartida para cada departamento, y luego dejar que cada departamento lea y escriba las carpetas de su propio departamento. Para otros departamentos, la carpeta solo tiene acceso de lectura. Luego, en el cliente, puede montar la carpeta compartida del servidor en el host local al igual que una partición montada. Si un empleado de la empresa necesita operar en un archivo compartido en un servidor de archivos, puede ser tan fácil como operar una partición local. También puede configurar el archivo de inicio para que monte automáticamente el directorio compartido en el servidor de archivos cada vez que se inicie el equipo cliente. Además, el sistema operativo de Microsoft ahora es compatible con este sistema de archivos de red NFS, por lo que el sistema operativo de Microsoft también puede colgar en archivos compartidos de NFS mediante la creación de "accesos directos". Por lo tanto, el uso del sistema de archivos de red NFS para lograr compartir archivos no está limitado por el cliente. Además, el administrador del sistema no tiene que configurar un directorio de inicio en todos los sistemas operativos Linux. El directorio de inicio se puede colocar en un servidor NFS y está disponible en cualquier lugar de la red.
El sistema de archivos de red NFS también se puede utilizar para implementar una plataforma de desarrollo cruzado para el desarrollo de sistemas Linux. En el proceso de desarrollo de incrustar el sistema operativo Linux, el desarrollador del programa debe realizar todo el trabajo de desarrollo de software en el servidor de desarrollo de Linux. Una vez que se complete el desarrollo, compile de forma cruzada y luego descargue el archivo ejecutable al sistema integrado mediante FTP. Sin embargo, este método es ineficiente y no se puede depurar en línea. Por esta razón, este método de desarrollo del sistema Linux se está eliminando gradualmente. Los desarrolladores de programas ahora pueden compartir una partición específica en un servidor Linux con el sistema de destino incorporado para ser depurado creando un sistema de archivos de red NFS. En este punto, el usuario puede operar directamente el directorio compartido del servidor Linux en el sistema de destino integrado, y también puede depurar y modificar el programa en línea, lo que facilita enormemente el desarrollo del software. Por lo tanto, el sistema de archivos de red NFS ahora es una parte importante del desarrollo del sistema operativo Linux incorporado. Con la ayuda del sistema de archivos NFS, la eficiencia del desarrollo del sistema operativo Linux puede mejorarse enormemente.
Sin embargo, para usar este sistema de archivos de red NFS, los administradores de sistemas de Linux aún necesitan pasar algo de tiempo. Específicamente, al implementar un sistema de archivos de red NFS, debe prestar atención a los siguientes aspectos.
Primero, tenga cuidado con los riesgos de seguridad causados por el sistema de archivos de red NFS.
De la descripción anterior, podemos ver que la esencia del sistema de archivos de red NFS es compartir algunos directorios en el servidor y luego montarlos en el cliente. En otras palabras, se implementa en base a un directorio compartido. Sin embargo, es bien sabido que compartir un directorio representa un riesgo de seguridad relativamente grande para el servidor. Para hacer esto, cuando el administrador necesita compartir el directorio en el servidor a través de la tecnología NFS, por razones de seguridad, debe configurar el archivo /etc /exports en el servidor para limitar los derechos de acceso del archivo compartido. Si no permite el acceso de escritura al directorio raíz, no use comodines, no puede eliminar el directorio compartido, etc.
La imagen de arriba es un ejemplo de la configuración del archivo de exportaciones. En el ejemplo anterior, significa que solo 192.168.0.5 clientes pueden acceder a esta carpeta compartida y solo tienen permisos de solo lectura para las carpetas compartidas. Además, el parámetro root_squash indica que el directorio raíz no está permitido escribir. La configuración específica de este documento se explicará en detalle en la última parte. La razón por la que el autor publicó este problema de permiso aquí es para dejar en claro que todos pueden prestar atención a la seguridad del sistema de archivos compartidos de la red NFS.
Segundo, configure el archivo /etc /exports.
Para implementar un sistema de archivos compartidos de red en Linux, principalmente mediante la configuración del archivo /etc /exports en el sistema. Cuando se reinicia el servidor Linux, el sistema operativo leerá automáticamente este archivo, y le indicará al núcleo del sistema operativo que genere el sistema de archivos y el control de acceso relacionado. Como puede ver en el diagrama anterior, este archivo de configuración establece principalmente el directorio compartido, los visitantes, los derechos de acceso y otras partes.
La primera parte del contenido es definir el directorio de archivos a compartir. Tenga en cuenta que las rutas absolutas se deben usar aquí, no los enlaces simbólicos. Por ejemplo, si hay una carpeta en el sistema Linux, la ruta de guardado real es /dir /share. Pero para mayor comodidad administrativa, los usuarios crearán un acceso directo (/home /user /Desktop /share) en su escritorio. Este acceso directo se denomina enlace simbólico en el sistema operativo Linux. Aunque en realidad son equivalentes, también puede acceder a esta carpeta Compartir a través de un acceso directo, todos apuntan a la misma carpeta. Sin embargo, cuando se usa un sistema de archivos de red para compartir un directorio, se debe usar una ruta absoluta. De lo contrario, el sistema no podrá encontrar el directorio compartido correctamente.
La segunda parte es la restricción de acceso al host. Aquí, el administrador del sistema puede permitir que todos los hosts de la LAN accedan al directorio compartido, o establecer un segmento de red o algunas IP específicas para acceder. Las necesidades específicas de la configuración requieren que el administrador del sistema juzgue de acuerdo con la situación real de la empresa. Si el sistema de archivos de la red NFS se utiliza principalmente para implementar un servidor de archivos, en general, todos los empleados de la empresa necesitan acceder al servidor NFS. En este caso, se puede definir mediante una red IP, como 192.168.1.0. Si el sistema de archivos de red NFS se utiliza para implementar el desarrollo y la compilación de una plataforma Linux, entonces solo se puede acceder a ciertas direcciones IP específicas. En este punto, puede especificar una dirección IP específica o usar un comodín.
La tercera parte es el tema del permiso específico. La importancia de la autoridad se ha explicado en el primer punto, y el autor no ha explicado mucho aquí. Aquí hablaré sobre los problemas específicos de la configuración de permisos de directorio compartido. El autor cree que al configurar los permisos del directorio compartido, debe tratarse por separado. Primero debe considerar los permisos del directorio compartido normal. Si el directorio compartido es de solo lectura para el usuario, también se le permite escribir archivos en el directorio compartido. El parámetro rw indica que el usuario tiene permisos de lectura y escritura en el directorio compartido, y ro indica que el usuario tiene acceso de solo lectura al archivo compartido. Usé NFS para implementar un servidor de archivos para la empresa. Al configurar este privilegio, el autor les permite a los empleados de otros departamentos acceder al directorio compartido que no es el departamento en un formato de solo lectura; para los usuarios de este departamento, pueden acceder a él en forma de lectura-escritura.
Segundo, debes prestar atención a la raíz de la cuenta especial. Por defecto, la raíz está bajo control de acceso. Si está en esta máquina, el propietario del archivo instantáneo tiene permiso para controlar la cuenta raíz, pero la cuenta raíz todavía puede tener control total sobre este archivo. Por esta razón, el administrador del sistema debe considerar qué hacer si el usuario que accede al directorio compartido del servidor NFS es root. Por ejemplo, si se agrega el parámetro no_root_squash, el usuario que inicia sesión en el host NFS utilizando el directorio compartido es root. Cuando lo sea, sus permisos se convertirán en usuarios anónimos. Si usa root_squash, significa que si el usuario que inicia sesión en el servidor NFS utilizando el directorio compartido es root, entonces tiene privilegios de root para este directorio compartido. También se dirá que incluso si este directorio compartido tiene restricciones estrictas de permisos (como que todos los usuarios son de solo lectura en este directorio compartido), el visitante aún tiene control total sobre el directorio compartido. Por lo general, recomiendo usar el parámetro no_root_squash para limitar los permisos de la cuenta raíz del cliente.
El tercero puede configurar el modo de trabajo del directorio compartido. Por ejemplo, la sincronización del parámetro indica que el archivo se escribe sincrónicamente en la memoria y en el disco duro cuando el usuario crea un archivo en el directorio compartido del cliente. El parámetro async significa que el archivo se almacenará temporalmente en la memoria y luego se escribirá en el disco duro cuando sea apropiado. El método utilizado se basa principalmente en el rendimiento y la seguridad. La escritura sincrónica en la memoria y la seguridad del disco duro será mayor si el servidor NFS se apaga repentinamente o si no se pierden otras razones inesperadas para reiniciar el archivo, pero como la eficiencia de la memoria y del disco duro es diferente, su rendimiento será ligeramente más lento Un poco Si almacena los datos en la memoria en lugar de escribir directamente en el disco duro, puede mejorar el rendimiento del servidor NFS, pero si el servidor NFS se cierra inesperadamente o se reinicia, los datos se perderán. El método que se use específicamente requiere que el administrador del sistema evalúe los pros y los contras y elija el método de procesamiento adecuado.