Compartir ficheiros: SAMBA
Hoxe en día a informática non se entende sen o intercambio de información entre distintos sistemas. Nesta sección verase como compartir información entre MS Windows e Ubuntu e viceversa, aínda que os mesmos pasos poden seguirse para acceder á información almacenada nun disco de rede ou NAS, ou compartido a través dun router por exemplo. O intercambio de información vaise facer a través do protocolo SAMBA, agora renomeado como CIFS.
Introdución: Escenarios
Antes de levar a cabo as tarefas necesarias véxase cales son os tres escenarios que se van abordar.
- Escenario 1: Un usuario dende un equipo con Ubuntu (uclient) trata de acceder a unha carpeta compartida nun equipo con MS Windows (wclient). Este escenario tamén sería aplicable para acceder dende un equipo con Ubuntu a unha carpeta compartida nun disco de rede.
- Escenario 2: Un usuario dende un equipo con MS Windows (wclient) trata de acceder a unha carpeta compartida nun equipo con Ubuntu (uclient).
- Escenario 3: Un usuario dende un equipo con Ubuntu (uclient02) trata de acceder a unha carpeta compartida nun equipo con Ubuntu (uclient). A carpeta LinuxComun é a mesma que comun do Escenario 2. Só lle cambiaremos o nome para crear un caso un chisco diferente.
Escenario 1: Acceder a unha carpeta de MS Windows dende Ubuntu
A configuración dos equipos MS Windows (Windows XP, Vista, 7, 8, etc.) que o usuario poida ter no seu fogar pode ser moi dispar. Por tanto, esperamos que na medida do posible poidan adaptar os seus equipos á configuración que se vai seguir aquí usando MS Windows 7, xa que os pasos a seguir deberían ser moi similares.
Parámetros comúns
Fíxanse os seguintes parámetros comúns a todo lector.
Salvo que se saiba configurar o firewall de MS Windows, este debe desactivarse, pois pode haber tantas configuracións como lectores deste manual. No panel de control está o firewall. Se o usuario ten outros firewalls instalados que considere ou configuralos correctamente para realizar a práctica, ou desactivalos en último caso. Para iso, accedemos ao Panel de Control, e dentro do apartado de Sistema e seguridade picamos en Firewall de Windows.
Cando se instalou este Windows, o sistema creou tres usuarios: Administrador, que o creou o sistema; Invitado, tamén creado polo sistema. (este usuario está desactivado); e por último o usuario admin, que foi o nome que se lle deu ao primeiro usuario que pedía na instalación. Por defecto, este primeiro usuario ten privilexios de administración. O usuario de quen siga este manual non ten porque chamarse igual...
Os seguintes enlaces mostran vídeos explicativos sobre como crear e administrar os usuarios en Windows XP e Windows:
Compartir a carpeta en MS Windows
Revísese o escenario que se pretende levar a cabo:
O primeiro paso será crear unha carpeta para compartir en MS Windows, se é que non existe. Neste exemplo creouse unha carpeta en C:\, leva por nome compartida_windows. Premer nela co botón dereito do rato e ir ao menú Compartir con para picar en Uso compartido avanzado. A carpeta poderíase crear en calquera outra unidade ou carpeta.
Pero os permisos que se van aplicar cando se acceda dende outro equipo a esta carpeta son os máis restritivos dos configurados anteriormente e os da ACL (Lista de control de acceso) da lapela de Seguridade. Segundo o que está configurado aquí, a esta carpeta van poder acceder entre outros aqueles que pertenzan ao grupo Administradores (os usuarios que teñan privilexios de administración) e os que pertenzan ao grupos Usuarios (a este grupo pertence por defecto todo usuario que se dá de alta, por tanto aí estará o usuario chamado usuario-win).
É sinxelo comprobar se a carpeta está compartida accedendo dende o propio equipo remotamente ao propio equipo. Como se fai iso? Nunha ventá do explorador de arquivos, escribimos na barra de dirección \\dirección IP do equipo (neste caso \\172.16.0.2). Cando en MS Windows algo comeza por dobre barra \\ (ollo coa orientación das barras) quere dicir que se está tratando de acceder a un ordenador a través da rede. Neste caso a consulta parte do mesmo ordenador que se quere consultar.
Os seguintes enlaces ofrecen vídeos explicativos sobre como compartir carpetas en Windows XP e Windows Vista:
Montar a carpeta compartida dende Ubuntu
Agora toca ir ao ordenador dende o cal se desexa acceder a esa carpeta compartida. Lémbrese que en GNU/Linux para acceder a calquera dispositivo hai que montalo, e neste caso non vai ser menos. Hai que montar a unidade compartida de rede.
Neste exemplo iniciouse sesión no equipo Ubuntu coa usuario noa, aínda que para o que se vai facer non se precisa ter privilexios administrativos.
Aparece a Rede de Windows. Neste caso, tamén aparece xa o equipo wclient, e poderían aparecer outros equipos da rede de MS Windows ou que estean executando o servidor SAMBA (dependerá dos equipos que haxa na rede en que nos atopemos). Aínda que poderíamos xa picar sobre wclient, imos picar sobre a Rede de Windows para ver como chegar ao equipo se non aparecese aquí.
E dentro dese grupo de traballo aparecen os equipos que hai nel, entre os que está wclient. Ao facer dobre clic sobre el, pídese cales son as credenciais (nome usuario e contrasinal) coas que se desexa acceder ao equipo. Os usuarios que poden acceder son os usuarios do equipo wclient. Ou sexa que no equipo Ubuntu iniciou sesión noa e esta pode acceder ao equipo wclient co nome e contrasinal dun usuario que coñeza no equipo de destino. Observar a imaxe do Escenario 1. Se se garda o contrasinal durante a sesión a próxima vez que se trate de acceder haberá que volver a identificarse.
O sistema volve a preguntar credenciais para acceder a ese recurso de rede. Nesta ocasión indícase que as credenciais (usuario e contrasinal) para acceder ao equipo wclient as garde para sempre. A próxima vez que se monte a unidade non volverá a pedir as credenciais (Máis adiante veremos onde se gardan estas credenciais).
Temos que indicar o enderezo do servidor, que incluirá o nome o dirección IP do equipo, carpeta á que nos conectamos e protocolo que queremos usar. Neste caso, como xa se indica no exemplo, escribiremos smb:// seguido do nome ou dirección IP do equipo ao que queremos acceder. A continuación escribimos o nome da carpeta compartida (neste caso c$) separada por unha /, e podemos escribir unha carpeta que estea dentro dela (como é neste caso a carpeta windows) tamén separada por unha /. Desta forma estámonos conectando á carpeta windows que está dentro de C$. Cando nos conectamos a un servidor desta forma, a dirección queda almacenada por se queremos volver a usala no futuro sen ter que escribila de novo (na imaxe pódese ver almacenado o enderezo da carpeta compartida_windows). Introducido ou seleccionado o enderezo, picamos en Conectar.
Escenario 2: Acceder a unha carpeta de Ubuntu dende MS Windows
A seguinte imaxe sitúa ao lector no esquema do que se pretende implantar:
Lémbrese cal era a estrutura de carpetas e permisos da carpeta comun e as súas subcarpetas:
Aínda que na sección anterior se usaron ACLs, aquí vaise traballar cos permisos básicos. A maiores noa creou un arquivo en alumnos coas normas da materia Física e Química:
Compartir a carpeta comun de Ubuntu
Para realizar esta tarefa o usuario que inicie sesión debe ter privilexios administrativos. Comecemos ...
Iniciamos a ferramenta de Usuarios e grupos e imos á configuración avanzada do usuario noa. Na pestana dos privilexios, podemos ver que non ten activado o privilexio de Compartir ficheiros coa rede local. Desta forma, aínda que noa sexa administradora, non pode compartir carpetas no equipo. O lector poderá comprobar que activar este privilexio o que fai é engadir a este usuario nun grupo do sistema...
Pero aínda así, o usuario noa non poderá compartir a carpeta. A razón é que noa non é propietaria desta carpeta, e por defecto a configuración do sistema só permite compartir unha carpeta ao seu propietario. Agora temos dúas opcións: cambiar a configuración do sistema (na propia ventá indícase como facelo, editando o ficheiro de configuración /etc/samba/smb.conf como root e engadindo a liña usershare owner only=false) ou compartir a carpeta co usuario propietaria da mesma. Esta última opción resulta máis sinxela e é a que imos escoller neste caso... Pero quen é o usuario propietario da carpeta comun?
Para que se poida escribir na carpeta comun e nas súas subcarpetas é preciso que o grupo outros teña o permiso (w). Isto vai crear un problema, pois interesaba que na propia carpeta comun ninguén puidera crear nada, salvo o usuario root. Nas subcarpetas si estaba permitido crear para os membros de g-profes. Este problema solucionarase ao final da sección.
Usar carpeta a carpeta compartida comun en MS Windows
Iniciaremos sesión en MS Windows cun usuario calquera (non é preciso que teña privilexios administrativos). Igual que nos apartados anteriores, aquí móstrase como facer o proceso usando Windows 7.
Hai que ter en conta algo importante: Para poder acceder dende o equipo Windows á carpeta compartida en Ubuntu haberá que introducir as credenciais dun usuario que teña permiso de acceso a esa carpeta e que teña activada a súa conta no servizo de samba. Esta conta actívase cando o usuario inicia sesión no equipo Ubuntu unha vez que samba está instalado. Isto é debido a que samba almacena os contrasinais para os usuarios de forma independente dos contrasinais propios do sistema (de feito un usuario podería ter un contrasinal para iniciar sesión en Ubuntu e outro diferente para acceder ás carpetas compartidas por samba), e cando o usuario inicia sesión é cando samba automaticamente toma o contrasinal introducido para activar a conta dese usuario no servizo de samba con ese mesmo contrasinal.
Ao acceder á carpeta comun o sistema pide unhas credenciais coas que autenticarse no equipo Ubuntu. Neste caso decidiuse co usuario roi (Lémbrese que teremos que iniciar unha sesión no equipo Ubuntu co usuario roi para que o acceso dende o equipo MS Windows funcione). Decídese non gardar o contrasinal para poder logo validarse como noa.
Os seguintes enlaces ofrecen vídeos que mostran como acceder a unha carpeta compartida en Windows XP e Windows Vista:
Borrado de ficheiros remotos
Cando se accede a un recurso compartido por SAMBA e se procede ao borrado dun ficheiro (se os permisos o permiten), este non vai a ningunha papeleira de reciclaxe nin lixo. Ese ficheiro bórrase permanentemente.
Na imaxe móstrase como noa trata de eliminar a carpeta que creou no paso previo. O sistema advírtelle que se vai eliminar todo o seu contido, non que vai ir a papeleira de reciclaxe. Moito coidado con iso!!!.
Para poder solucionar, en parte, este problema habería que realizar copias de seguridade no equipo que prové os ficheiros, neste caso no equipo Ubuntu. As copias de seguridade verémolas nunha sección posterior.
Conectar/desconectar unha unidade de rede en MS Windows
En Ubuntu, existía a posibilidade de crear un marcador a un recurso de rede, para non ter sempre que estar percorrendo toda a rede para chegar a algo compartido. Pois ben, esa funcionalidade en MS Windows chámase Conectar a unidade de rede.
En MS Windows, cada unidade (CD, disqueteira, particións, discos USB, etc) ten asignada unha letra de unidade. Pois ben, cando se conecta unha unidade de rede o que se fai asignarlle unha letra (por exemplo L:) a un recurso compartido. O proceso de romper esa vinculación chámase Desconectar unidade de rede.
Indicar a letra que se desexa asignar (L, por exemplo). Marcamos tamén que manteña este vínculo entre L: e \\equipo_ubuntu\comun cada vez que se inicie sesión. Para poder indicar con que usuario queremos identificarnos no equipo Ubuntu activamos tamén a opción de Conectar con outras credenciais (de non facelo así, Windows usará o usuario e contrasinal do usuario que iniciou sesión para validarse no equipo remoto).
Os seguintes enlaces ofrecen vídeos que mostran como conectar unha unidade de rede en Windows XP e Windows Vista:
Descompartir carpetas
Para deixar de compartir unha carpeta só é necesario ir á carpeta compartida e na ventá de Compartición de carpetas desmarcar a opción correspondente. Vaise tratar de arranxar o problema de que calquera usuario poida crear carpetas/ficheiros na raíz de comun con outra ferramenta. Por tanto, para evitar interferencias imos descompartir a carpeta comun.
Unha vez deixada de compartir a carpeta comun esta é configuración de permisos que queda:
Comun debe ter os permisos (rwx r-x ---), que son os permisos desexados no esquema que se presentou.
System-Config-Samba
Como se veu no exemplo anterior usando Nautilus para compartir comun tívose un problema cos permisos, xa que a outros outorgábaselle permiso de escritura, cousa que en realidade non nos interesa en absoluto.
Se en vez de usar o Nautulis para compartir se usa system-config-samba a cousa pode mellorar. Para comezar comécese instalando o paquete system-config-samba, usando o Centro de software de Ubuntu:
system-config-samba é un dos frontais gráficos que permiten manexar as comparticións de GNU/Linux.
Cambiar nome de grupo de traballo
O grupo de traballo que se asigna por defecto aos equipos Ubuntu que comparten carpetas é WorkGroup. A unión de distintos equipos no mesmo grupo de traballo facilita atopar os recursos compartidos entre eles, así que en ocasións é moi interesante poder cambiar este grupo para poñer o grupo de traballo no que están configurados os equipos Windows (que pode ser por exemplo IESNONSEIQUE, CASA, etc.). Con esta utilidade pódese cambiar ese nome, se se desexa.
Convén ter claro que un Grupo de traballo, non é máis que unha colección de equipos que comparten cousas onde todos eles se agrupan baixo un mesmo paraugas chamado grupo de traballo. Só serve para organizar conxuntos de ordenadores nunha rede, por exemplo, os ordenadores da Aula 1 e da Aula 2, pero iso non impide que os ordenadores dun grupo se comuniquen cos do outro.
Compartir unha carpeta
Chega o momento de compartir a carpeta comun usando esta ferramenta.
Na lapela Básico, indicar a ruta da carpeta a compartir e o nome co que se desexa compartir. Como xa se dixo anteriormente nun par de ocasións o nome do recurso compartido non ten porque coincidir co nome da carpeta a compartir. Neste caso vaise cambiar a: LinuxComun (da igual maiúsculas que minúsculas). Permitir escritura e visibilidade.
Imos indicar explicitamente a que usuarios se lles permite ó acceso. ATENCIÓN, estes usuarios aparecen automaticamente porque iniciaron sesión no equipo despois de instalar o paquete samba (Nun caso real, habería a posibilidade de utilizar scripts ou guións de comandos para importar os usuarios do sistema a samba, pero iso xa sería propio dun curso de administración de redes con Linux).
Escenario 3: Acceder a unha carpeta de Ubuntu dende outro Ubuntu
A seguinte imaxe sitúa ao lector no esquema do que se pretende implantar. Lémbrese que LinuxComun é en realidade a carpeta /home/comun. No equipo uclient02 só se pode usar o usuario dado de alta no proceso de instalación administrador
Tras realizar as probas de conectividade pertinentes, procédase a desenvolver a práctica.
Volvemos a lembrar os grupo os que pertence cada usuario de, ollo, uclient, procurar non liarse, ....
Nome Nome real Grupo primario Grupo secundario Perfil administrador Usuario administrador administrador sudo, ... Administrador carlos Carlos Carrión g-profes g-usuarios, ... Escritorio (desktop) noa Profe- Noa Pin Pin g-profes g-usuarios, sudo, ... Administrador roi Alum- Roi Paz Paz g-alum g-usuarios, ... Escritorio (desktop)
E recordamos tamén a estrutura de carpetas de uclient cos seus permisos.
Conxugando as dúas cousas (grupos aos que pertencen os usuarios e permisos das carpetas), obsérvase que o usuario administrador non pertence ao grupo g-usuarios que é quen pode entrar na carpeta comun.
Montar recurso de rede en Ubuntu
A práctica non difire nada do que se fixo no Escenario 1. Alí un usuario dende Ubuntu conectábase a un recurso compartido de MS Windows. Neste novo escenario quen comparte a carpeta é un equipo con Ubuntu, pero veremos que ao usuario que se conecta dálle igual.
Borrar obxectos dun recurso compartido
Que pasa agora se noa borra algo do que creou anteriormente?. Vai ao lixo?.
Cando se elimina algo dun recurso compartido por SAMBA, este non vai o lixo. Elimínase para sempre. Ollo con iso!!! De novo, para evitar perdas accidentais de datos sería importante facer copias de seguridade periódicas do que hai na carpeta compartida, pero iso verémolo máis adiante.
Outros protocolos de intercambio de información
Non só existe SAMBA para compartir información entre sistema, aínda que é o máis sinxelo para compartir información entre sistemas heteroxéneos GNU/Linux – MS Windows – Mac.
Existen outros, entre eles:
- NFS: Network File System: Sistema de ficheiros de rede. É un protocolo propio de Unix. Serve para compartir crear e usar recursos compartidos entre máquinas UNIX (ou máquinas GNU-Linux). Permite, entre outras cousas, mandar ao lixo cando se borra nun recurso compartido.
- SSHFS: SSH File System: Sistema de ficheiros que usa SSH. Permite o intercambio de información entre máquinas GNU/Linux, destacando entre as súas características que toda a información se transmite cifrada, para que ninguén poida espiar esa información.
Conclusións
- O uso dos protocolos anteriores...
- Unha xestión máis efectiva dos usuarios, onde houbese unha base de datos centralizada de todos os usuarios, que permitise iniciar sesión aos usuarios tanto en máquinas MS Windows como Linux usando sempre o mesmo usuario...
- Que os datos de cada usuario estiveran centralizados nun servidor e non espallados polos equipos dunha aula...
- Que se tivese un sistema de políticas de control global...
- Ter servidores de DHCP, DNS, FTP, WEB, etc, etc, etc...
Son materia para un manual de administración de Redes con MS Windows e GNU-Linux.
Neste enlace pódese ver como se implantan moitas das cousas anteriormente mencionadas.