Compartir recursos no servidor de Samba. Scripts de inicio de sesión

De Manuais Informática - IES San Clemente.
Revisión del 22:18 19 oct 2017 de Carrion (discusión | contribuciones) (Ocultar carpetas en Windows)
(dif) ← Revisión anterior | Revisión actual (dif) | Revisión siguiente → (dif)
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.

00 Dominios Linux Escenarios parte 03 A.jpg

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
 1 # A compartición homes é especial, pois non precisa que se lle indique
 2 # cal é o cartafol físico a compartir.
 3 # O sistema xa se encarga de compartir de xeito automático a carpeta de
 4 # cada usuario.
 5 # Podese acceder a ela como \\dserver00\usuario
 6 
 7 [homes]
 8         comment=Carpeta persoal
 9         writable = yes
10 
11 
12 # Indicamos cal é a ruta á carpeta física para poder ofrecer
13 # o recurso compartido comun
14 # O parámetro read list, non faría falla pois os permisos
15 # Xa están ben axustados fisicamente, co cal,
16 # Aínda que lle desemos permisos aos alumnos de escrbir
17 # no recurso compartido comun, non o poderían facer
18 # porque fisicamente /comun non lles deixa.
19 [comun]
20         comment = Carpeta comun para todos os usuarios
21         writeable = yes
22         read list = @g-alum
23         create mode = 775
24         path = /comun
25         directory mode = 775
26 
27 #Recurso compartido para ser usado polo profesorado.
28 [alumnos]
29         comment = Carpeta dos alumnos para que accedan os profesores
30         read list = @g-profes
31         path = /home/iescalquera/alumnos
32 
33 
34 #Este recurso é para que se poidan executar os scripts de inicio e sesión nos clientes.
35 #Damos a posibilidade de escribir
36 #Pero so pode escribir o root, que é quen ten os permisos na carpeta física.
37 [netlogon]
38         comment = Network Logon Service
39         path = /netlogon
40         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.
 1 @echo off
 2 REM Ficheiro de inicio de sesion
 3 
 4 REM Mapeamos comun para todo usuario que inicie sesion
 5 net use R: \\dserver00\comun /persistent:no
 6 
 7 REM Miramos se o usuario que inicia sesion e un profesor
 8 REM Se eé un profesor mapeamos alumnos a S:
 9    net user /domain %username% | findstr /C:"g-profe" && (
10    net use S: \\dserver00\alumnos /persistent:no
11    )
12 
13 
14 REM Miramos se o usuario que inicia sesion e un alumno
15 REM Se e un alumno abrimos un aviso (Como facer dobre clic sobre o ficheiro: start)
16    net user /domain %username% | findstr /C:"g-alum" && (
17    start \\dserver00\netlogon\avisos\aviso_alumnos.html
18    )
  • 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

400px

  • 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:)

400px

  • 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



-- Antonio de Andrés Lema e Carlos Carrión Álvarez