Aprenda Linux, 302 (Entornos mixtos): Servicios de archivos

Aprenda cómo crear y configurar intercambios de archivos en un entorno mixto

En preparación para tomar el examen de Linux Professional Institute Certification LPI-302 para administradores de sistemas, aprenda cómo configurar Samba y estructurar su archivo de configuración. También, aprenda cómo Samba interactúa con la red, cómo configurar el registro cronológico y cómo depurar problemas con Samba.

Sean A. Walberg, Senior Network Engineer

Photo of Sean WalbergSean Walberg es un ingeniero en redes y el autor de dos libros sobre las redes. Ha trabajado en varias industrias, incluyendo el cuidado de la salud y los medios de comunicación



16-04-2012

Sobre esta serie

Esta serie de artículos le ayuda a aprender la administración de sistema Linux. También puede usar el material en estos artículos para prepararse para los exámenes de Linux Professional Institute Certification nivel 3 (LPIC-3).

Vea nuestro roadmap de developerWorks para LPIC-3 para obtener una descripción y un enlace de cada artículo en esta serie. El roadmap está en progreso y refleja los objetivos actuales (noviembre de 2010) para los exámenes de LPIC-3. A medida que cada artículo es completado, es añadido al roadmap.

En este artículo, aprenda a:

  • Crear y configurar el intercambio de archivos
  • Planificar una migración de servicio de archivos
  • Ocultar el intercambio administrativo, IPC$
  • Crear scripts para el manejo de intercambios de archivos de usuario y grupo
  • Usar herramientas de línea de comandos relacionadas con los intercambios de archivo

Este artículo le ayuda a prepararse para el Objetivo 312.2 en el Tema 312 del examen de Especialidad en Entorno Mixto de Linux Professional Institute (302). El objetivo tiene un peso de 4.

Requisitos Previos

Para obtener el máximo de los artículos en esta serie, debe tener un conocimiento avanzado de Linux y un sistema Linux funcional en el cual pueda practicar los comandos cubiertos en este artículo. Además, debe tener acceso a un entorno de Windows que pueda usar para probar el acceso al archivo y de impresión.

Creando intercambios de archivos

Recuerde del artículo anterior que Samba entiende cualquier sección dentro de smb.conf que no sea homes, printers y global para que sea un nombre de intercambio. Además del nombre del intercambio, correlacionar el nombre de intercambio a una ubicación en el disco es la otra pieza importante de información. Este es el intercambio útil más simple:

[tmpdir]
path = /var/tmp

Sobre el examen optativo LPI-302

Linux Professional Institute Certification (LPIC) es como muchas otras certificaciones en las que se ofrecen distintos niveles, con cada nivel requiriendo más conocimiento y experiencia que el anterior. El examen LPI-302 es un examen de especialidad optativo en el tercer nivel de la jerarquía de LPIC y requiere un nivel avanzado de conocimiento de administración del sistema Linux.

Para obtener su certificación de LPIC nivel 3 (LPIC-3), debe pasar los dos exámenes de primer nivel (101 y 102), los dos exámenes de segundo nivel (201 y 202) y el examen principal de LPIC-3 (301). Después de que haya obtenido este nivel, puede tomar los exámenes de especialidad optativos, tales como LPI-302.

Este código define un intercambio llamado tmpdir que se correlaciona con /var/tmp en el servidor de Samba. Por ejemplo, si el servidor se llamara phoenix, entonces los usuarios podrían acceder a ese intercambio de archivo con la ruta de Universal Naming Convention (UNC) \\phoenix\tmpdir. Sin embargo, esta escasa configuración no es útil: el valor predeterminado para un intercambio debe ser de sólo lectura, por lo que el intercambio anterior no es escribible.

Usando parámetros de seguridad

Samba tiene muchos parámetros relacionados con la seguridad que controlan qué puede ser accedido por quién y desde dónde. Muchos de estos parámetros afectan la interacción entre Samba y los permisos de archivo de UNIX subyacentes y no son discutidos en este artículo. Sin embargo, algunos otros parámetros generales son discutidos aquí.

Los servidores de Server Message Block (SMB), incluyendo implementaciones nativas de Microsoft, tienen un intercambio llamado IPC$, que es el intercambio de comunicación entre procesos y es usado para ejecutar funciones de software en una red. Un intercambio que termina en un signo de dólar ($) es considerado oculto y no es mostrado en clientes de Microsoft, aunque el servidor anunciará la existencia del intercambio.

Samba crea el intercambio de IPC$ aunque puede no existir en smb.conf. Si crea el intercambio, puede controlar el acceso a él. Este es u ejemplo de un intercambio de IPC$ restringido:

[IPC$]
  hosts allow = 192.168.1.0/255.255.255.0
  browsable = no

Construya su propio feed

Puede construir un feed personalizado de RSS, Atom o HTML, de forma que sea notificado a medida que añadimos nuevos artículos o actualizamos el contenido. Vaya a los feeds RSS de developerWorks. Seleccione Linux para la zona y Articles para el tipo, y escriba Linux Professional Institute para las palabras clave. Después, elija su tipo de feed preferido.

Este fragmento define el intercambio de IPC$ y lo marca como sólo accesible para las personas en la red 192.168.1.0. El ejemplo desactiva más el dispositivo Explorable, que le dice a Samba que el intercambio no puede ser mostrado cuando los clientes lo pidan.

Hace tiempo, era una práctica común ocultar intercambios confidenciales tales como los IPC$ con la esperanza de que un atacante pudiera ignorar el objetivo. Esto es una tontería con relación al intercambio de IPC$. Por ejemplo, pedir a un servidor una lista de intercambios depende de conectarse al intercambio de IPC$. Si observa las depuraciones de Samba y los rastreos de paquete, verá que esta opción Explorable no tiene efecto. La razón por la que menciono esto es porque es mencionado en el esquema del examen. Es mucho mejor restringir los hosts que puede conectarse que intentar ocultar el intercambio de IPC$.

Un usuario puede conectarse a un intercambio sin un nombre de usuario, lo que convierte a ese usuario en un invitado. De forma predeterminada, un intercambio no permite usuarios invitados pero puede habilitar esta cuenta con guest ok = yes en el nivel de intercambio. El usuario invitado predeterminado es nobody, pero puede cambiar este usuario con el parámetro global guest account .

Los enlaces simbólicos son usados extensivamente en sistemas de UNIX para enlazar dos áreas de un sistema de archivos. Por ejemplo, en su directorio de inicio, puede crear un enlace simbólico para el directorio temporal de todo el sistema y usarlo como si fuera parte de su directorio de inicio. Samba sigue estos enlaces simbólicos, lo que puede permitir a las personas acceder a áreas fuera del intercambio de archivos. Si no desea que esto suceda, use follow symlinks = no en su intercambio.

Si desea restringir los usuarios que pueden acceder a un intercambio, use el parámetro valid users . Por ejemplo, valid users = sean, jon, isaac permite que sólo esos tres usuarios accedan al intercambio en el cual ese parámetro es usado. Puede usar este parámetro en adición a los permisos de nivel de archivo como un nivel extra de seguridad para intercambios confidenciales.

Intercambios de inicio

Es común dar a los usuarios un directorio de inicio para sus archivos personales. Cada usuario en el archivo de contraseña de UNIX tiene un directorio de inicio asignado. Puede exportar fácilmente cualquier número de directorios de inicio mediante Samba sin tener que escribir una sección de configuración separada al usar la sección [homes] . Cuando alguien solicita un intercambio llamado joe, Samba busca un intercambio configurado llamado joe; si Samba no encuentra ese intercambio, busca un usuario con el mismo nombre. Si el usuario es encontrado, Samba entonces usa la configuración en la sección [homes] como una plantilla para este intercambio.

El Listado 1 muestra una sección [homes] típica.

Listado 1. Una plantilla para intercambios de inicio de usuario
[homes]
 comment = Home Directories
 writable = yes
 browsable = yes
 valid users = %S

La configuración en el Listado 1 realiza estas tareas:

  • Comienza la configuración de la sección homes
  • Asigna un comentario, el cual es mostrado a las personas observando los detalles de intercambios de archivos disponibles en ese servidor
  • Marca el intercambio como escribible, de forma que los usuarios puedan hacer cambios en su directorio de inicio
  • Indica que el intercambio puede ser visto cuando los usuarios exploran una lista de intercambios; verán los inicios y un intercambio con su nombre de usuario
  • Limita a los usuarios que pueden conectarse a este intercambio al usuario que posee el intercambio

Note el uso del macro %S en el Listado 1: este macro se expande al nombre del intercambio. Como el nombre de usuario es el mismo que el del intercambio, la restricción valid users obliga a que sólo el propietario del intercambio pueda usarlo.

Ahora, siempre que los usuarios busquen una lista de intercambios, verán su directorio de inicio y podrán conectarse a él. El intercambio será correlacionado con su directorio de inicio de UNIX.

Otra cosa interesante sobre el intercambio de inicios es que si se conecta a \\server\homes directamente, obtendrá su propio intercambio, como si se hubiera conectado a \\server\username. Este es un dispositivo extra que el equipo de Samba estableció para ayudar a las personas en máquinas compartidas y para reducir la confusión.

Scripts para añadir usuarios y grupos

Si busca su lista de usuarios en un dominio de Microsoft, es posible que un usuario conectándose a su servidor no tenga una cuenta de UNIX local. Una solución para este problema es hacer que Samba cree el usuario para usted cuando el usuario se conecta con el parámetro add user script . El macro %u se expande hacia el usuario en cuestión. Puede usar una herramienta de sistema como useradd o escribir sus propios scripts.

Un parámetro similar existe para los grupos—add group script—que usted utiliza al usar herramienta de Microsoft para gestionar la instancia de Samba. Los scripts add user to group y el similar delete también son útiles si usa estas herramientas. La man page smb.conf tiene una lista completa de tareas de scripts.

Hacer que un daemon cree usuarios on demand no siempre es la mejor idea. Tal vez sea mejor usar winbind o un mecanismo de autenticación basado en Lightweight Directory Access Protocol (LDAP), de forma que Samba y Linux puedan compartir una base de datos de usuarios común.

Tratando con mayúsculas y minúsculas mezcladas

Las mayúsculas y minúsculas en un nombre de archivo o directorio no importa en el dominio de Microsoft. Es decir, FILE, file, y FiLe todos se refieren al mismo archivo. Sin embargo, en Linux las mayúsculas y minúsculas sí son importantes, así que esos tres archivos serían todos distintos. Samba necesita saber cómo correlacionar entre estos dos mundos para resolver cualquier conflicto. Este proceso de correlación de mayúsculas y minúsculas es parte de un proceso más grande llamado name mangling.

Algunos parámetros afectan el mangling de las mayúsculas y minúsculas del nombre de archivo. El parámetro más importante es case sensitive, que puede ser yes, no o auto. Si case sensitive está habilitado, Samba usa las mayúsculas y minúsculas que el cliente solicite. Si este valor es inhabilitado, Samba busca en el directorio una coincidencia sin importar las mayúsculas y minúsculas.

Un problema con la distinción entre mayúsculas y minúsculas es que si no se configura correctamente tal vez no pueda acceder a algunos archivos. Considere un directorio con dos archivos—uno llamado test y otro llamado TEST. Si Samba no usa acceso con distinción entre mayúsculas y minúsculas, entonces no podrá diferenciar entre los dos archivos.

El valor predeterminado es auto, que busca un campo de extensión del cliente para indicar que el cliente soporta el acceso con distinción entre mayúsculas y minúsculas. Los clientes de Windows no soportan esta funcionalidad, así que usarán la distinción entre mayúsculas y minúsculas.

Los parámetros default case y preserve case trabajan uno con otro. Si preserve case está establecido como yes, entonces se usa lo que sea que el cliente establezca. Si preserve case está establecido como no, entonces el valor de distinción entre mayúsculas y minúsculas predeterminado es usado para determinar la distinción entre mayúsculas y minúsculas del archivo recién creado.

Habilitando Usershare

Los usuarios pueden crear sus propios intercambios sin tener que modificar smb.conf al usar un dispositivo llamado Usershare. Después de que el administrador habilita el dispositivo Usershare, los usuarios regulares usan una herramienta de línea de comandos para exportar directorios de su elección. Los usuarios también pueden suprimir sus intercambios cuando hayan terminado.

El primer paso para usar Usershare es habilitar el dispositivo a nivel global. El Listado 2 muestra una parte de smb.conf que habilita Usershare.

Listado 2. Habilitando Usershare
[global]
  usershare path = /var/lib/samba/usershares
  usershare max shares = 5
  usershare prefix allow list = /home
  usershare prefix deny list = /var, /usr

El Listado 2 opera en la sección [global] . Primero, usershare path define un directorio que Samba usa para la configuración relacionada con el intercambio de usuarios. Existen varias restricciones en este directorio que serán explicadas más adelante. Después, se impone un límite en el número de intercambios de usuario. Los últimos dos parámetros muestran cómo restringir los directorios que pueden ser compartidos. usershare prefix allow list restringe todos los intercambios para los directorios dados—en este caso, los intercambios deben venir desde /home. usershare prefix deny list toma el enfoque opuesto y permite todo menos los directorios dados.

Samba impone otras dos restricciones en los intercambios de usuario. Primero, usershare path debe ser escribible para el usuario que crea el intercambio y el directorio debe tener el sticky bit establecido (1000 o +t). Después, el usuario debe poseer el directorio que se está compartiendo, a menos que usershare owner only está establecido como false.

La primera restricción con relación a los permisos de archivos significa que se debe tener cuidado al crear usershare path. Si desea restringir los intercambios de usuario para personas en el grupo de usershare, entonces se requiere una serie de comandos como esta:

# mkdir -p /var/lib/samba/usershares
# chown root:usershares /var/lib/samba/usershares
# chmod 1770 /var/lib/samba/usershares

El primer comando crea el directorio y cualquier directorio padre requerido. El siguiente comando establece la propiedad de usuario y grupo del directorio a la raíz y usershares, respectivamente. El comando final establece los permisos de propietario y de grupo del directorio para Leer/Escribir/Ejecutar, niega el acceso a todos los demás y establece el sticky bit. Por lo tanto, sólo la raíz y los miembros del grupo usershares pueden usar este directorio; a causa del sticky bit, sólo el propietario de un archivo puede suprimir el archivo.

Configurar el intercambio es quizá la parte más difícil del ejercicio. Un usuario puede ejecutar:

net usershare add docs /home/me/Documents/ "My docs" Everyone:F

El comando anterior exporta /home/me/Documents como un intercambio llamado docs con Control Total para todos. Otros comandos permitidos son:

  • net usershare list lista los intercambios de usuario que ha creado el usuario.
  • net usershare info docs muestra la configuración del intercambio de docs.
  • net usershare delete docs elimina el intercambio de docs.

Herramientas de línea de comandos

Samba viene con varias herramientas de línea de comandos. A través del libsmbclient que Samba proporciona, otras personas han hecho utilidades de SMB/Common Internet File System (CIFS) que son de uso común.

Una diferencia importante entre UNIX y Windows es que UNIX tiene un gran sistema de archivos, mientras que Windows tiene una serie de letras de unidad. La utilidad smbclient le permite explorar un intercambio remoto de Windows en una interfaz de tipo Protocolo de Transferencia de Archivos (FTP), pero, para ser transparente para aplicaciones, un intercambio remoto de Windows debe ser montable como cualquier otro sistema de archivos.

Samba viene con una utilidad llamada smbmount, que algunas veces es re-empaquetada como mount.cifs. Puede llamar este comando directamente o mediante el comando mount . El Listado 3 muestra un sistema Linux montando un intercambio remoto de CIFS en el sistema de archivos regular.

Listado 3. Montando un intercambio remoto de CIFS
# mount -t cifs '\\192.168.1.134\docs' /mnt -o user=myuser
Password:
# mount
...
\\\\192.168.1.134\\docs on /mnt type cifs (rw)

El primer comando monta un sistema de archivos de CIFS en la ruta dada de UNC y lo coloca en /mnt. Con excepción de la ruta de UNC, esto se ve como una invocación de mount estándar. Las opciones son pasadas con la opción -o . La única opción necesaria aquí es el nombre de usuario. La man page de mount.cifs hace un esquema de las demás opciones, que pueden incluir una contraseña y un dominio. Si no especifica una contraseña, se le solicitará una. Por último, el comando mount muestra el sistema de archivos montado.

Otro comando es smbsh. En lugar de montar un sistema de archivos a través de medios estándar de UNIX, smbsh intercepta llamadas de biblioteca de solicitudes de archivos y, si es necesario, redirecciona la solicitud a un intercambio de CIFS. La mayoría de los sistemas ya no son enviados con este comando, ya que no es tan confiable como montar un sistema de archivos.

Migrando intercambios de archivos

Al mover servicios de archivos de un servidor a otro, los usuarios pueden olvidar acceder al nuevo servidor. Samba le permite hacer que su servidor responda a otro nombre. Por ejemplo, si mueve intercambios de archivos de un servidor llamado phoenix a un servidor llamado fs2, puede hacer que fs2 responda a solicitudes para phoenix. Por supuesto, tendrá que asegurarse de que phoenix no responda, ya sea apagándolo o renombrándolo.

Para añadir un alias a un servidor, use el parámetro global netbios aliases . Si desea cambiar el nombre de un servidor de Samba por algo distinto al nombre de UNIX del servidor, use el parámetro netbios name .

Los comandos que ha aprendido hasta ahora sobre el montaje de sistemas de archivos también serán útiles para copiar archivos de un servidor en otro en preparación para una migración. Tal vez también desee usar utilidades de UNIX como rsync para ayudar.


Avanzando

Este es el final del tema de intercambios de archivos. El siguiente objetivo de examen, 312.3, le hará crear y configurar intercambios de impresión y aprender cómo acceder a estos intercambios desde otros sistemas.

Recursos

Aprender

Obtener los productos y tecnologías

  • Obtenga la versión más reciente de Samba para que esté actualizado con los dispositivos más recientes.
  • Evalúe productos de IBM de la forma que mejor se ajuste a usted: Descargue una prueba de producto, ensaye un producto en línea, use un producto en un entorno en nube, o pase algunas horas en el SOA Sandbox aprendiendo a implementar la Arquitectura Orientada a Servicios con eficiencia.

Comentar

  • Participe en la Comunidad My developerWorks. Conéctese con otros usuarios developerWorks mientras explora los blogs, foros, grupos y wikis dirigidos a desarrolladores.

Comentarios

developerWorks: Ingrese

Los campos obligatorios están marcados con un asterisco (*).


¿Necesita un IBM ID?
¿Olvidó su IBM ID?


¿Olvidó su Password?
Cambie su Password

Al hacer clic en Enviar, usted está de acuerdo con los términos y condiciones de developerWorks.

 


La primera vez que inicie sesión en developerWorks, se creará un perfil para usted. La información en su propio perfil (nombre, país/región y nombre de la empresa) se muestra al público y acompañará a cualquier contenido que publique, a menos que opte por la opción de ocultar el nombre de su empresa. Puede actualizar su cuenta de IBM en cualquier momento.

Toda la información enviada es segura.

Elija su nombre para mostrar



La primera vez que inicia sesión en developerWorks se crea un perfil para usted, teniendo que elegir un nombre para mostrar en el mismo. Este nombre acompañará el contenido que usted publique en developerWorks.

Por favor elija un nombre de 3 - 31 caracteres. Su nombre de usuario debe ser único en la comunidad developerWorks y debe ser distinto a su dirección de email por motivos de privacidad.

Los campos obligatorios están marcados con un asterisco (*).

(Por favor elija un nombre de 3 - 31 caracteres.)

Al hacer clic en Enviar, usted está de acuerdo con los términos y condiciones de developerWorks.

 


Toda la información enviada es segura.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=90
Zone=Linux
ArticleID=710730
ArticleTitle=Aprenda Linux, 302 (Entornos mixtos): Servicios de archivos
publish-date=04162012