Compartir recursos no servidor de Samba. Scripts de inicio de sesión
Ir a la navegación
Ir a la búsqueda
Introdución
- Neste apartado imos ver como compartir recursos no servidor samba.
- Usaremos o ficheiro de configuración (/etc/samba/smb.conf) para crear novas seccións cos parámetros adecuados para compartir cada recurso.
- A imaxe amosa o escenario final para que un usuario do LDAP poida iniciar sesión nun equipo cliente Windows e acceder ao servidor por SAMBA a súa carpeta persoal e a outras que precise.
Compartir as carpetas persoais dos usuarios, comun, netlogon
- A continuación imos engadir novas seccións (Recursos compartidos) ao ficheiro /etc/samba/smb.conf.
- Lembrar que cada recurso compartido era unha nova sección que comezaba co nome do recurso compartido: [Nome_recurso_compartido].
- Compartiremos en dserver00:
- As carpetas persoais dos usuarios, para que cada usuario poida acceder en \\dserver00\NomeDeUsuario á súa carpeta persoal,
- E así tamén se creará o seu perfil móbil dentro da carpeta persoal.
- comun: para que os usuarios poidan acceder dende clientes Windows a ese recurso.
- alumnos: para que os profesores poidan acceder directamente as carpetas dos seus grupos de clase
- netlogon: para que gardar os scripts que os clientes executaran cando os usuarios inicien sesión.
- Comezamos creando a carpeta netlogon que usaremos para compartir. Neste caso vaise crear na raíz do sistema.
- Axustamos os permisos aos usuarios do dominio (O ideal sería crear un script para seguir coa mesma filosofía)
mkdir /netlogon
- A continuación modificamos o ficheiro /etc/samba/smb.conf para engadir as comparticións anteriores.
- No propio ficheiro xa están documentadas algunhas das opcións.
- No seguinte enlace pódense ver os parámetros de configuración: http://www.samba.org/samba/docs/man/manpages-3/smb.conf.5.html
# A compartición homes é especial, pois non precisa que se lle indique
# cal é o cartafol físico a compartir.
# O sistema xa se encarga de compartir de xeito automático a carpeta de
# cada usuario.
# Podese acceder a ela como \\dserver00\usuario
[homes]
comment=Carpeta persoal
writable = yes
# Indicamos cal é a ruta á carpeta física para poder ofrecer
# o recurso compartido comun
# O parámetro read list, non faría falla pois os permisos
# Xa están ben axustados fisicamente, co cal,
# Aínda que lle desemos permisos aos alumnos de escrbir
# no recurso compartido comun, non o poderían facer
# porque fisicamente /comun non lles deixa.
[comun]
comment = Carpeta comun para todos os usuarios
writeable = yes
read list = @g-alum
create mode = 775
path = /comun
directory mode = 775
#Recurso compartido para ser usado polo profesorado.
[alumnos]
comment = Carpeta dos alumnos para que accedan os profesores
read list = @g-profes
path = /home/iescalquera/alumnos
#Este recurso é para que se poidan executar os scripts de inicio e sesión nos clientes.
#Damos a posibilidade de escribir
#Pero so pode escribir o root, que é quen ten os permisos na carpeta física.
[netlogon]
comment = Network Logon Service
path = /netlogon
writeable = yes
- Unha vez creada a compartición, podemos agardar un minuto a que o servidor samba recargue a información do ficheiro smb.conf automaticamente ou recargar o ficheiro de configuración de samba co comando:
service smbd reload
Scripts de inicio de sesión
- Cando nun dominio Windows temos un controlador con Windows Server, podemos configurar scripts para que se executen de forma automática no inicio de sesión dos usuarios.
- Estes scripts son moi útiles para:
- Conectar automaticamente unidades de rede a carpetas compartidas no servidor (co comando net use).
- Sincronizar a hora dos equipos clientes co servidor (comando net time).
- Facer que se abra un documento cando un usuario concreto ou calquera usuario inicie sesión (comando start).
- Modificar algún valor no rexistro de Windows para cambiar o comportamento dalgún programa (comando regedit).
- Etc, etc.
- Estes scripts de inicio de sesión almacénanse nun cartafol compartido co nome netlogon no controlador de dominio.
- Pois ben, o xeito de configurar scripts de inicio de sesión en samba é similar:
- Xa temos creado arriba o directorio /netlogon e compartido por samba
- Neste cartafol creamos un ficheiro inicio.bat co seguinte texto.
- Ollo agora hai que pensar en Windows, pois ese ficheiro bat vaise executar en Windows cando inicie sesión un usuario:
- As barras de directorio son ao revés que en Linux,
- Os comentarios son con REM,
- As variables van entre % %
- etc.
- A continuación amósanse exemplos do que se pode facer.
@echo off
REM Ficheiro de inicio de sesion
REM Mapeamos comun para todo usuario que inicie sesion
net use R: \\dserver00\comun /persistent:no
REM Miramos se o usuario que inicia sesion e un profesor
REM Se eé un profesor mapeamos alumnos a S:
net user /domain %username% | findstr /C:"g-profe" && (
net use S: \\dserver00\alumnos /persistent:no
)
REM Miramos se o usuario que inicia sesion e un alumno
REM Se e un alumno abrimos un aviso (Como facer dobre clic sobre o ficheiro: start)
net user /domain %username% | findstr /C:"g-alum" && (
start \\dserver00\netlogon\avisos\aviso_alumnos.html
)
- Editamos o ficheiro de configuración /etc/samba/smb.conf para introducir o parámetro logon script co nome do script, inicio.bat
- Ollo!! só o nome. Non fai falta poñerlle a ruta porque os clientes Windows xa buscarán este script nunha carpeta netlogon compartida no servidor.
- Este parámetro vai dentro da sección [global], e no noso caso para manter o ficheiro de configuración ordenado podemos introducilo a continuación do parámetro logon path:
# Script de inicio de sesion para os clientes Windows do dominio logon script = inicio.bat
- Queda a creación do ficheiro de avisos para o alumnado (Ollo coas barras de directorio que estamos en linux):
mkdir /netlogon/avisos nano /netlogon/avisos/aviso_alumnos.html
- O contido é o seguinte:
cat /netlogon/avisos/aviso_alumnos.html Benvidos/as ao IES Calquera
- Axustamos os permisos aos usuarios do dominio (O ideal sería crear un script para seguir coa mesma filosofía). Axustamos os permisos de /netlogon e todo o seu contido.
chown :g-usuarios /netlogon -R #Recursivo chmod 750 /netlogon -R #Recursivo
Iniciar sesión en Windows
- Neste apartado imos comprobar no equipo cliente o efecto do script de inicio de sesión e o acceso aos recursos compartidos.
- Por motivos de seguridade, Windows 10 non permite o acceso usando rutas de acceso UNC (tipo \\servidor\carpeta) a recursos compartidos protexidos como é o caso da carpeta netlogon.
- Por iso, se o equipo cliente vai con Windows 10, teremos que realizar a configuración que se explica a continuación.
Configuración para permitir o acceso a netlogon en Windows 10
- Imos modificar a directiva do equipo que impide o acceso á carpeta netlogon:
Inicio de sesión
- Comprobamos o resultado iniciando sesión con un usuario do dominio dende un cliente Windows:
- Análise do acaecido:
- Na seguinte imaxe, Equipo de noe
- A carpeta persoal de noe (Z:) foi montada automaticamente porque se lle indicou en /etc/samba/smb.conf na sección global en: logon drive = Z:
- As carpetas de comun (R:) e alumnos (S:) foron conectadas porque llo indicamos no script de inicio de sesión: /netlogon/inicio.bat, e indicamos no paso anterior que se lanzara ese ficheiro.
- Observar como se aplican as cotas aos volumes que as teñen, e como noe e pia teñen tamaños distintos, e no caso de comun non temos ningunha cota aplicada.
- Observar que hai 6 carpetas do usuario, unha delas: Descargas
- Se entramos na carpeta persoal dun usuario (Z:)
- Vemos que aparecen moitas carpetas, que foron creadas polos clientes Ubuntu.
- Agora o usuario debe ter claro que ten, por exemplo, 2 carpetas de descargas: unha que usa Ubuntu e outra Windows.
- Vemos que hai unha nova carpeta chamada profile.V5 esta carpeta vai almacenar toda a configuración do usuario en Windows, e entre elas están as 6 carpetas que mencionábamos na anterior imaxe.
- Que pasou no servidor?:
- Podemos ver o cartafol de noe
ls -la /home/iescalquera/profes/noe/ total 112 drwx------ 17 noe g-usuarios 4096 Xan 16 03:36 . drwxr-x--- 4 root g-profes 4096 Xan 16 00:18 .. -rwx------ 1 noe g-usuarios 220 Xan 16 00:12 .bash_logout -rwx------ 1 noe g-usuarios 3771 Xan 16 00:12 .bashrc drwx------ 10 noe g-usuarios 4096 Xan 16 00:26 .cache drwx------ 3 noe g-usuarios 4096 Xan 16 00:32 .compiz drwx------ 14 noe g-usuarios 4096 Xan 16 00:26 .config drwx------ 2 noe g-usuarios 4096 Xan 16 00:25 Descargas -rwx------ 1 noe g-usuarios 25 Xan 16 00:25 .dmrc drwx------ 2 noe g-usuarios 4096 Xan 16 00:25 Documentos drwx------ 2 noe g-usuarios 4096 Xan 16 00:25 Escritorio -rwx------ 1 noe g-usuarios 8980 Xan 16 00:12 examples.desktop drwx------ 2 noe g-usuarios 4096 Xan 16 00:25 .gconf drwx------ 3 noe g-usuarios 4096 Xan 16 00:25 .gnupg -rwx------ 1 noe g-usuarios 330 Xan 16 00:25 .ICEauthority drwx------ 2 noe g-usuarios 4096 Xan 16 00:25 Imaxes drwx------ 3 noe g-usuarios 4096 Xan 16 00:25 .local drwx------ 2 noe g-usuarios 4096 Xan 16 00:25 Modelos drwx------ 2 noe g-usuarios 4096 Xan 16 00:25 Música -rwx------ 1 noe g-usuarios 655 Xan 16 00:12 .profile drwxrwx---+ 14 noe g-usuarios 4096 Xan 16 04:13 profile.V5 drwx------ 2 noe g-usuarios 4096 Xan 16 00:25 Público drwx------ 2 noe g-usuarios 4096 Xan 16 00:25 Vídeos -rwx------ 1 noe g-usuarios 54 Xan 16 00:25 .Xauthority -rwx------ 1 noe g-usuarios 830 Xan 16 00:32 .xsession-errors
- Observar que o ficheiro .profile é de Linux, non é de Windows.
- Dentro de profile.V5 está toda a configuración de Windows
- Incluso a carpeta Proba creada no escritorio de noe,
- Se facemos un tree de só os directorios e 2 niveis:
tree /home/iescalquera/profes/noe/profile.V5/ -d -L 2 /home/iescalquera/profes/noe/profile.V5/ ├── AppData │ └── Roaming ├── Contacts ├── Desktop │ └── Proba ├── Documents ├── Downloads ├── Favorites │ └── Links ├── Links ├── Music ├── Pictures │ ├── Camera Roll │ └── Saved Pictures ├── Saved Games ├── Searches └── Videos
- Desta forma xa temos implementados os perfís móbiles nos clientes Windows, porque se o usuario se move a outro equipo o seu perfil "moverase" tamén dentro da súa carpeta persoal.
Ocultar carpetas en Windows
- Podería interesarnos que o usuario non puidese ver esta carpeta, xa que realmente non lle interesa e podería tender a borrala, perdendo así toda a súa configuración persoal.
- Podemos introducir un parámetro na sección [homes] para que o servidor samba oculte nesta sección as carpetas que se chamen profile* e outras carpetas que non interesa que os usuarios visualicen (Carpetas propias de Linux, temporais, etc. Por suposto, pode personalizarse en cada caso coas carpetas que non interese que o usuario vexa). Introduciríamos o que non interesase separado por /
hide files = /desktop.ini/tmp/Desktop/ntuser.ini/NTUSER.*/Escritorio/$RECYCLE.BIN/Thumbs.db/profile*/
- Non o imos facer.
- E recargaríamos a configuración do servidor samba para comprobar o resultado.
service smbd reload
Experimentación
- Agora o/a lector/a pode experimentar cos distintos usuarios a ler/crear/modificar carpetas/ficheiros e ver onde ten permisos para iso.
Instantánea escenario 3.A - SAMBA 3 Windows
- Ao igual que nos escenarios anteriores crear unha instantánea para o escenario 3.A: Samba3 - Clientes Windows, para as seguintes MVs:
- dserver00
- wclient01