lunes, 1 de diciembre de 2014

samba desde el terminal

Configuracn de SAMBA en modo Comando desde el Terminal:

El archivo de configuración de Samba puede ser encontrado en /etc/samba/smb.conf
Vamos a editar este archivo, para lo cual, primero realizamos una copia de respaldo:

$ sudo cp -p /etc/samba/smb.conf /etc/samba/smb_copia.conf

Siempre es bueno realizar una copia de los archivos de configuración que modifiquemos para que en caso de que cometamos algún error podamos volver a la configuración inicial.



Luego procedemos a modificar el archivo:

$ sudo nano /etc/samba/smb.conf



En el archivo de configuración cambiaremos donde dice workgroup = MSHOME a:
workgroup = CLARETDB

Donde CLARETDB es el nombre de dominio, de donde será parte el servidor Samba. Tienes que configurar el mismo grupo de trabajo en tus computadoras Windows, esto lo puedes hacer en Panel de control>Sistema y seguridad>Mostrar el nombre de este equipoNombre de Equipo>Configuración avanzada del sistema>Nombre de equipo>Cambiar.
O bien, los últimos pasos se ejecutarían desde la opción de Equipo>Propiedades (esto para Windows 7, aunque en el resto de sistemas Windows es similar)

Si quieres también puedes cambiar la nea donde dice server string. Esto es simplemente la descripción que verá tu grupo del servidor, puedes colocar algo como:

server string = %h Servidor de archivos

%h lo que hace es imprimir el nombre de host de tu servidor.

Guardamos los cambios y seguimos.




Crear, editar o eliminar usuarios en Samba:

Los usuarios que queremos que tengan acceso al servidor Samba deben estar creados como usuarios en nuestro servidor Linux; podemos crear un grupo samba y agregar a ese grupo todos los usuarios que tendn acceso al servidor samba:
Para agregar un usuario a linux podemos utilizar el comando:


$ sudo adduser nombre_usuario

Nos pedirá la clave que queremos utilizar para ese usuario y algunos datos que son opcionales, luego podemos cambiar sus privilegios.

Supongamos que  tenemos  un  usuario  ya  creado  llamado  par  y que  lo  queremos agregar a los usuarios de Samba, para esto ejecutamos el siguiente comando:


$ sudo smbpasswd -a par


Nos aparecerá algo como:


smbpasswd -a par
New SMB password:
Retype new SMB password: Added user par


Colocamos la clave que queremos que tenga ese usuario para ingresar al servidor
Samba, la clave puede ser distinta a la clave que tiene el usuario para ingresar a Linux.

Vamos a crear un nuevo archivo donde estarán todos los usuarios autorizados para conectarse al Servidor de Samba, para esto ejecutamos:


$ sudo nano /etc/samba/smbusers
En el nuevo archivo copiamos la siguiente nea:


nombre_enlinux = "Nombre en Windows"


Donde nombre_enlinux es el nombre del usuario que tenemos en Linux en este caso par y Nombre en Windows es el nombre del usuario de red en Windows. Tenemos que agregar una nueva nea por cada usuario que creemos para Samba.
Para poder modificar la contraseña de un usuario ejecutamos:


$ sudo smbpasswd -a nombre_usuario

Para borrar un usuario ejecutamos:


$ sudo smbpasswd -x nombre_usuario

Ahora que ya tenemos a los usuarios creados procedamos a ver como se comparten archivos y directorios.

Compartiendo Archivos con Samba:


Vamos a modificar el archivo de configuración de Samba:


$ sudo nano /etc/samba/smb.conf


Busca la nea que dice:

# security = user

Y la modificamos por:


security = user
username map = /etc/samba/smbusers


Con esto lo que estamos haciendo es diciéndole a Samba que vamos a autenticar por usuario y dónde está la lista de los usuarios permitidos que fue la que creamos anteriormente.

Para darles acceso a los usuarios a sus respectivos directorios home o personales, hacemos lo siguiente:

Buscamos las neas donde dice


#[homes]
#comment = Home Directories;

Y le quitamos el #” para descomentarlos, y añadimos las siguientes neas para que el usuario pueda escribir en el directorio.

[homes]
comment = Home Directories;
browseable = no valid users = %S writable = yes


Siempre que cambiemos la configuración del archivo smb.conf debemos ejecutar el siguiente comando:


$ sudo testparm


Lo que hace este parámetro es verificar que los parámetros del archivo smb.conf estén correctos, luego, cuando nos diga que todo está bien, ejecutamos:


$ sudo /etc/init.d/smbd restart  
para aplicar los cambios.



Un  daemon  o  demonio (nomenclatura usada  en  sistemas  UNIX  y  Linux),  servicio (nomenclatura usada en Windows) o programa residente (nomenclatura usada en Ms- Dos) es un tipo especial de proceso informático no interactivo, es decir, que se ejecuta en segundo  plano  en  vez  de  ser  controlado  directamente  por  el  usuario.  Este  tipo  de programas continua en el sistema, es decir, que puede ser ejecutado en forma persistente o reiniciado si se intenta matar el proceso dependiendo de configuración del demonio y políticas del sistema. La palabra daemon viene de las siglas en ingles D.A.E.M.O.N (Disk And Execution Monitor).



Demonios en Samba y Servicios relacionados:


Lo siguientes es una breve introducción a los demonios individuales y servicios de
Samba, a como también detalles sobre como arrancarlos y detenerlos.


Descripción general de los demonios.

Samba está compuesto por dos demonios (smbd y nmbd) que pueden ser detenidos, arrancados y otras funcionalidades relacionadas a servicios.

El demonio de servidor smbd suministra servicios para compartir archivos e impresión a clientes Windows. Además, es responsable por la autenticación de usuarios, el bloqueo de recursos y compartir datos a través del protocolo SMB. Los puertos predeterminados en los cuales el servidor escucha por tráfico SMB, son los puertos TCP 139 y 445.

El demonio del servidor nmbd entiende y responde a las peticiones de servicio de nombres NetBIOS tales como aquellas producidas por SMB/CIFS en sistemas basados en Windows. Estos sistemas incluyen clientes 95/98/ME, Windows NT, Windows 2000, Windows XP y LanManager. También participa en los protocolos de navegación que forman la vista Entorno de red de Windows. El puerto predeterminado en el que el servidor escucha por tráfico NMB es el puerto UDP 137.


Arrancar, detener y reiniciar el Servidor Samba:

Muchas veces nos surge la necesidad de instalar algún tipo de servicio en nuestra máquina Linux. El inconveniente aparece cuando vemos que una vez instalado y configurado siempre se inicia en el arranque y no queremos eso, bueno, si lo que se quiere es instalar un servicio, pero iniciarlo sólo cuando nosotros queramos o nos haga falta, podemos utilizar las siguientes instrucciones en la consola.

Para arrancar el servidor Samba, escriba el comando siguiente en un intérprete de comandos validándote como root:

$ sudo /etc/init.d/smbd start

O bien:

$ sudo service smbd start
Para detener el servidor Samba, escriba el comando siguiente en un intérprete de comandos validándote como root:

$ sudo /etc/init.d/smbd stop

O bien:

$ sudo service smbd stop

Para reinicar el servidor Samba, escriba el comando siguiente en un intérprete de comandos validándote como root:

$ sudo /etc/init.d/smbd restart

O bien:

$ sudo service smbd restart


Gestionar los Servicios en Linux para el arranque del sistema:

A la mayoría de los administradores de  Linux nos gusta la optimización, que el sistema funcione lo mejor posible consumiendo solo lo justo y necesario. Pero Linux no hará todo el trabajo solo, nosotros debemos ayudar. Esta vez vamos a ayudar habilitando o deshabilitando servicios innecesarios.

Por ejemplo: el bluethoot, mysql, hplip, ssh, son servicios que no siempre usamos, por lo tanto sería mejor tenerlos desactivados, usarlas solo cuando las necesitemos.

Bueno, una forma de habilitar o deshabilitar estos servicios al arranque del equipo seria cambiando los permisos de los archivos en /etc/init.d. También existen herramientas graficas que nos ayudan a hacer lo mismo.

La  herramienta  que  vamos  a  utilizar  se  llama sysv-rc-conf  y  muestra  todos  los servicios que arrancan junto con Linux.

Para  instalar sysv-rc-conf  simplemente  desde  la  nea  de  comando  tecleamos  lo siguiente:

$ sudo apt-get install sysv-rc-conf

Y lo ejecutan con:

$ sudo sysv-rc-conf

El programa se ve así:

Desde esta ventana podremos seleccionar todos aquellos servicios o demonios que queremos que se inicien para cada nivel de ejecución de Linux.




El término runlevel o nivel de ejecución se refiere al modo de operación en los sistemas operativos que implementan el estilo de sistema de arranque de iniciación tipo UNIX System V como es el caso de Linux.

En términos prácticos, cuando el computador entra al runlevel 0, está apagado, y cuando entra al runlevel 6, se reinicia. Los runlevels intermedios (1 a 5) difieren en relación a qué unidades de disco se montan, y qué servicios de red son iniciados. Los niveles más bajos se utilizan para el mantenimiento o la recuperación de emergencia, ya que por lo general no ofrecen ningún servicio de red. Los detalles particulares de configuración del runlevel varían bastante entre sistemas operativos, y ligeramente entre los administradores de sistema.

El sistema de runlevel reemplazó al script tradicional /etc/rc en UNIX, versión 7.


La mayor parte de usuarios de sistemas puede comprobar el nivel de ejecución actual con cualquiera de los comandos siguientes:

$ sudo runlevel        # como usuario root

$ who -r          # como cualquier usuario



Utilidad práctica para el usuario medio:

Normalmente nunca tocaremos nada concerniente a los Runlevels, pero lo haremos en el caso de que un usuario tenga una máquina con diferentes usos (y más si la máquina está escasa de recursos), existen diversas configuraciones. Ejemplos prácticos:


PC de escritorio: Dejaríamos el runlevel 5 intacto (con el servidor gráfico, etc.) Servidor  de  Red:  Dejaríamos  el  runlevel  3  intacto  o  retirando  servicios  que  no interesen.
Nos interesa que se cargue el nimo de servicios posibles para optimizar el rendimiento  al  máximo:  Modificaríamos  el  runlevel  4  para  que  no  cargara  los servicios que no queramos.

Hecho esto, si durante una época determinada nos interesase que la máquina sólo funcionase como servidor, la configuraríamos para usar el runlevel 3, y así lo mismo con las otras opciones.

Configuración de los niveles de ejecución:

Los modos específicos para una distribución particular se encuentran en el archivo
/etc/inittab, aunque para otras distribuciones esto ha cambiado, como vamos a comentar ahora.




Las neas precedidas por el sígno numeral # son comentarios. En los comentarios se indica cuáles son los runleves de mandriva, los cuales coinciden con los presentadas aquí. Al final de los comentarios, en color rojo, aparece la línea:

id:5:initdefault:

Ésto quiere decir que cuando el sistema arranca, lo hace en el modo 5, que, como hemos visto, indica multiusuario completo (con red y modo gráfico). Observe que en los comentarios de los modos 0 y 6 aparece un par de recomendaciones importantes: NO establezca     el     valor     default     de     init     en     este     mero.     ¿Por     qué     no? Un administrador (root) puede editar el archivo /etc/inittab como mejor convenga al usuario, sin embargo también tiene el poder de establecerlo en 0 ó en 6. Si se establece en 6, la próxima vez que la máquina se encienda, se leerá el modo 6, shutdown y reboot, y se hará exactamente eso. De hecho se crea un ciclo infinito de reinicios que puede ser desconcertante para el usuario. Algo similar pasa al establecer el modo de ejecución en 0, cada vez que se enciende la computadora, inmediatamente se apaga. La manera de cambiar esto es entrar en modo        recover        y        editar         de         nuevo         el         archivo        /etc/inittab. Pero si no deben establecerse, ¿Por qué están ahí? La razón es que otros usuarios pueden requerirlos realmente.

EL COMANDO init:

Puedes cambiar en cualquier momento el valor del nivel de ejecución con el comando init. Una instrucción como la siguiente:

$ sudo init 3

cambia a nivel de ejecución 3. Si hace esto dejará de tener una pantalla gráfica y aparecerá una terminal y es probable que pierda la información que no tenga guardada. Para regresar al modo gráfico es necesario establecer de nuevo a 5 (o 2 si se usa Ubuntu, ver más abajo). El comando init no altera el contenido del archivo /etc/inittab.

Y la instrucción:

$ sudo init 0

apaga la computadora inmediatamente. Los comandos halt y shutdown llaman a init para apagar el sistema.

Para no variar, Ubuntu es distinto. El archivo /etc/inittab fue sustituído a partir de la versión 6.10 por /etc/upstart, el cual ahora también ha cambiado. Y los niveles de ejecución son los siguientes:

Es   probabl que   si   ha estado   investigando   est tema encuentre mucha documentación al respecto hablando de los modos de ejecución (runlevels), y del famoso /etc/inittab. Puede ser que entonces te hayas vuelto loco buscándolo por tu Ubuntu para poder modificarlo, y que no aparezca. La pregunta es: ¿Dónde se encuentra este fichero o qué otra utilidad lo sustituye?

Bueno, lo primero que hay que decir al respecto es que en Ubuntu 6.10 se reemplazó el sistema de inicio SysV, sustituyendo al proceso init (el cual manejaba los cambios de runlevel) por un sistema nuevo capaz de controlar eventos y que deja a un lado los tradicionales niveles de ejecución llamado upstart, que es capaz de supervisar tareas y servicios mientras el sistema corre. Esto implica, entre otras cosas, que el fichero inittab  desaparece,  dando  paso  al  directorio  /etc/init,  que  contiene  una  serie  de archivos .conf que nos servin para definir lo que los desarrolladores de upstart han denominado jobs (trabajos). Es importante señalar que están basados en la configuración de sysvinit, incluyendo la ejecución del antiguo script /etc/init.d/rc, el cua e invocado   desde   /etc/init/rc.conf par mantene l compatibilidad.

Los jobs que trae instalados por defecto son editables (están en formato texto), y evidentemente podemos crear los nuestros propios. El aspecto que presentan es el siguiente:

Por defecto, el nivel de ejecución predeterminado de Ubuntu lo define la variable
DEFAULT_RUNLEVEL en /etc/init/rc-sysinit.conf que tiene el valor por defecto de 2.

Vamos a ver cómo el sistema está configurado, y en particular en el directorio /etc. Aquí encontrarás una serie de directorios llamado rc0.d, rc1.d, rc2.d, rc3.d, rc4.d, rc5.d, rc6.d y rcS.d. El sistema utiliza estos directorios para el control de los servicios que se inician, de manera que en el contenido de cada uno de ellos aparecen enlaces a la ejecución de los servicios configurados en el sistema para cada nivel de ejecución (runlevel) comentado antes, coincidiendo el número que contiene el directorio con el nivel de ejecución que se ejecuta.


Ahora si queremos compartir un directorio que llamaremos samba hacemos lo siguiente.

Primero creamos la carpeta que queremos compartir, si ya no la habíamos creado:

$ sudo mkdir /home/grupo

$ sudo chmod 777 /home/grupo

Lo puedes crear donde quieras. Ahora vamos a modificar el archivo de smb.conf

Se supone que ya modificaste la parte de security y agregaste /etc/samba/smbusers a este archivo y que ya sabes cómo abrirlo para editarlo de ahora en adelante. Agregamos la siguientes neas al final del archivo:

[samba]

comment = Archivos Compartidos path = /home/samba
public = yes writable = yes create mask = 0700
directory mask = 0700 force user = nobody force group = nogroup


Analicemos esta estructura. Comment simplemente es un comentario de lo que es la carpeta, puedes colocar lo que quieras. Path, por supuesto es donde está la carpeta que queremos compartir. Public es si quieres hacer esta carpeta disponible publicamente o no, para  cambiarlo,  simplemente  coloca  yes  para  que  se  pueda  ver  navegando  por  la  red. Writable permite definir si se puede escribir en la carpeta o no. Create mask y directory mask es la máscara con la que se crearan los archivos (es decir que privilegios tendn los archivos y directorios creados), si quieres que puedan hacer cualquier acción en la carpeta coloca 0777 en ambas. Force group y force user es para forzar que solo un grupo específico o usuario se pueda conectar a esta carpeta. Si además queremos que solo un grupo de usuarios pueda acceder a la carpeta agregamos esta nea después de writable:

valid users = nombre_usuario1 nombre_usuario2

donde puedes agregar los usuarios que quieras que tengan acceso.


Posteriormente, podremos delimitar más los permisos a nivel de directorios, con el comando chown de Linux.

Luego de que termines de agregar las carpetas que quieras compartir Guarda el archivo y probamos el archivo smb.conf y reiniciamos el servidor de Samba:



$ sudo testparm

$ sudo service smbd restart
Indicar que para realizar conexiones definitivas, incluso para las situaciones en las que arranquen los sistemas operativos de Windows o también con scripts de inicio, podemos conectar dichos recursos de carpetas de los servidores samba de Linux a unidades lógicas de Windows,
Finalmente, a través dla conexión establecida o a través de alguna ventana de Windows o de la opción de Ejecutar del botón de Inicio, también de Windows, al intentar acceder al recurso configurado en el servidor Samba, se nos solicitará la introducción de un usuario y contraseña para el acceso, en el caso de que a lo hubiésemos configurado.

Otra forma de poder configurar el servidor Samba, es con una utilidad de Linux que debemos instalar denominada system-config-samba.

Para su instalación se realizará utilizando alguno de los procedimientos que ya hemos visto para agregar paquetes en Linux

El proceso inverso, es decir, acceder desde una máquina Linux hasta un servidor de ficheros o disco de Windows, incluso para acceder desde una máquina Linux hasta otra, también  Linux,  donde  tengamos  implantado  el  servidor  Samba,  se  realiza  de  la  misma manera, utilizando el protocolo smb desde cualquier ventana de Linux, por ejemplo Nautilus en Ubuntu (si lo hacemos desde la ventana de cualquier navegador, este debe poder soportar el protocolo smb).

Para poder mostrar la barra de direcciones en la ventana de Nautilus, una vez mostrado su contenido hay que pulsar la combinación de teclas <Ctrl> + L, puesto que por defecto no la muestra.

La compartición de carpetas y la gestión de sus permisos, tanto para Windows como para  Linux,  se  realizará  mediante  el  procedimiento  ya  explicado  para  ambos  tipos  de servicios: Compartir archivos e impresoras (Windows) y Samba (Linux).
La sintaxis para poder acceder desde Linux a un servidor de disco Windows o Linux es:

smb://dir_ip o nombre de maquina/nombre recurso

A continuación nos pedirá validarnos para acceder al recurso compartido, con un usuario y contraseña de Windows o Linux, según donde resida el servidor de ficheros:


Validado el usuario y su contraseña, nos aparecerá el contenido del recurso solicitado, sobre el que podremos realizar aquellas operaciones para las que tengamos permiso:

El acceso desde una máquina Linux a un servidor de ficheros Windows o Linux es posible gracias a la instalación del paquete smbclient, el cual se instala por defecto al instalar el paquete correspondiente al servidor samba. En el caso de que la máquina cliente no vaya a realizar la función e servidor samba, para acceder a otro servidor de ficheros, ya sea Windows o Linux, debe tener instalado este paquete..

Por estos motivos, optaremos por una placa de nivel intermedio, no es necesario lanzarnos  a  por  una  de  las  últimas  arquitecturasya  que  la  tarjeta  de  vídeo  es  algo totalmente accesorio, solo necesitaremos conectar a un monitor para instalar el sistema operativo  por  primera  vez,  ya  que,  a  partir  de  este  momento,  toda  la  configuración la realizaremos a través de su interfaz web o la aplicación necesaria para ello. Por esta razón, la gráfica integrada nos resultará más que suficiente para este proceso.


La elección del chasis es algo muy subjetivo, podemos optar por el modelo que nos resulte más atractivo, pero debemos tener en cuenta dos factores: la fuente de alimentación, en caso de venir integrada en la caja, nos puede ahorrar unos euros; de no ser a deberemos adquirirla  por  separado  con  el  mero  de  bahías  aptas  para  instalar  nuestros  discos. Tratándose de un servidor orientado al almacenamiento, sería un grave error de planificación 

No hay comentarios:

Publicar un comentario