¿Por qué el montaje de un nfs compartido desde linux requiere el uso de un puerto privilegiado?

10

Exporto un directorio en una caja de linux y puedo montarlo desde otra caja de linux usando

# mount -t nfs kurush:/media/lynk /mnt/kurush/

El mismo comando falla en Mac OS X:

$ sudo mount -t nfs kurush:/media/lynk /Volumes/lynk
mount_nfs: can't mount /media/lynk from kurush onto /Volumes/lynk: Operation not permitted

Al mismo tiempo, kurush:/var/logs/syslog registra esta línea:

rpc.mountd[7943]: authenticated mount request from sds-MacBook-Pro.home:1009 for /media/lynk (/media/lynk)

Cuando intento pasar por la GUI (buscador-> conectar al servidor- > nfs://kurush/media/lynk - > conectar), obtengo un error inmediato (no se puede conectar & c ) y el cuadro de linux syslog registra el authenticated mount request .

El problema se resuelve utilizando un puerto privilegiado :

Línea de comando:

sudo mount -o resvport -t nfs kurush:/media/lynk /Volumes/lynk

Para habilitar GUI:

sudo vifs

luego agrega una línea

kurush:/media/lynk /Volumes/lynk nfs resvport,ro,user,noauto

Las preguntas son :

  • ¿Por qué necesito usar un puerto privilegiado? ¿Es algo que hago en el lado de linux? Me parece recordar que una vez monté esa parte sin la magia mencionada.

  • ¿Cómo le digo a MacOSX que use el puerto privilegiado sin usar la línea de comandos? Pensé que Apple era para el público "no técnico", ¡por lo que debe ser posible!

pregunta sds 21.08.2014 - 05:23

1 respuesta

7

¿Por qué tienes que hacerlo? Tradición, en su mayoría. Una vez, la restricción de NFS a puertos privilegiados (< 1023) se consideró una medida de seguridad. Cuando los usuarios usaban computadoras mainframe, esto aseguraba que el software NFS en el lado del cliente era parte del sistema operativo / aprobado por el administrador, ya que un programa solo puede usar un puerto privilegiado si es ejecutado por el usuario root. Hoy en día, esto no tiene sentido porque cualquier persona puede tener una computadora y tener acceso a la raíz, por lo que esto no significa nada en términos de seguridad.

De forma predeterminada, muchos servidores NFS no permiten puertos de origen sin privilegios. Algunos clientes NFS (como el de Ubuntu), utilizan de forma predeterminada un puerto de origen con privilegios, a menos que se especifique lo contrario, por lo que su cliente Linux funciona sin problemas. Claramente, el cliente OS X no hace esto. No sé si fue una elección de diseño de Apple o algo heredado de BSD. Sé que Solaris también utiliza por defecto un puerto no privilegiado.

Las dos formas de evitar este problema son: decirle al cliente OS X que use un puerto privilegiado, como lo descubrió, o configurar su servidor NFS para permitir puertos no privilegiados (busque en la documentación de su servidor).

¿Cómo consigues que OS X use un puerto privilegiado usando una GUI? Por lo que sé, no puedes con las versiones > 10.6. Uno solía poder montar recursos compartidos de NFS en la Utilidad de Discos y escribir opciones adicionales, pero eso se eliminó. ( details ) Nunca fue un simple botón ni nada. NFS no es algo que la mayoría de la gente "no tecnológica" necesite, así que supongo que no era una prioridad y hay razones por las que el uso de puertos privilegiados no es una gran idea.

No lo he probado, pero enlace parece permitir la configuración de las funciones NFS de OS X sin el comando línea.

    
respondido por el Michael D. M. Dryden 22.08.2014 - 09:29

Lea otras preguntas en las etiquetas