Hacer q linux haga de windows nt server:
samba
Por Paco Aldarias Raya
Impreso: 5 de julio de 2003
Email:
[email protected]
Web: http://pagina.de/pacodebian
Este documento es de libre reproducción siempre que se cite su fuente.
Realizado con: LATEX
Índice
1. Versiones
2. Introducción
3. El kernel
4. Instalación de samba
5. Para los alumnos
5.1. Datos de los alumnos . . . . . . . . . . . . . . . . . . . . . . .
5.2. Creación de los alumnos
. . . . . . . . . . . . . . . . . . . . .
5.3. Creación del script de inicio . . . . . . . . . . . . . . . . . . .
6. Para los profesores
6.1. Datos de los profes . . . . . . . . . . . . . . . . . . . . . . . .
6.2. Creación de los profesores
. . . . . . . . . . . . . . . . . . . .
6.3. Creación del script de inicio para profes . . . . . . . . . . . . .
7. Configuración de samba
1
2
2
2
3
3
3
4
5
6
6
6
8
8
3 EL KERNEL
16
16
16
17
17
17
8. Reinicio del demonio samba
9. Configurar los clientes windows
10.Problemas encontrados
11.Mejoras pendientes
12.Agradecimientos
13.Bibliografía
1. Versiones
05.07.03 Primera version v.1.0
2.
Introducción
Vamos a ver como linux a través de samba puede hacer las funciones de un
windows nt server.
Se parte de la base que disponemos un servidor linux debian sid con samba
y una red con windows 98se.
Esto surgio con la intencion de tener un instituto donde los alumnos y pro-
fesores validaran los usuarios y tuvieran sus carpetas.
Es decir, vamos a poder:
Crear usuarios y grupos de forma automática.
Crear en linux un dominio nt donde validen el usuario los clientes win-
dows 98se.
Compartir carpetas de linux en windows segun el tipo de usuario.
Crear unidades logicas en windows segun el tipo de usuario en el arran-
que.
Actualización de la hora de los pc con windows 98 en el arranque.
3. El kernel
Debemos tener soporte para samba en el kernel.
Por Paco Aldarias Raya
2
5 PARA LOS ALUMNOS
cat /usr/src/linux-2.4.20/.config | grep SMB
CONFIG_SMB_FS=y
# CONFIG_SMB_NLS_DEFAULT is not set
CONFIG_SMB_NLS=y
4.
Instalación de samba
apt-get install samba samba-common libsmbclient smbclient smbfs
Veamos las versiones y para q sirve:
dpkg -l | grep samba
samba
samba-common
3.0.0beta1-1
3.0.0beta1-1
a LanManager-like file and printer server fo
Samba common files used by both the server a
dpkg -l | grep smb
libsmbclient
smbclient
smbfs
3.0.0beta1-1
3.0.0beta1-1
3.0.0beta1-1
shared library that allows applications to t
a LanManager-like simple client for Unix
mount and umount commands for the smbfs (for
5. Para los alumnos
Vamos a tener los ficheros:
alumnos.txt : Aqui indicaremos los datos de los alumnos.
alumnos.sh. Crea los alumnos indicados en alumnos.txt
inicio.bat. Script que ejecutará windows al arrancar.
5.1. Datos de los alumnos
Los campos deberan estar separados por punto y coma.
Este fichero contendrá:
campo1: grupo del alumnos.
campo2: nombre completo del alumno
campo3: usuario q tendra q poner el alumno
campo4: clave o password del alumno.
campo5: telefono
Por Paco Aldarias Raya
3
5.2 Creación de los alumnos
5 PARA LOS ALUMNOS
campo4: email
Veamos un ejemplo:
cat alumnos.txt
grupo1;nombre1;usuario1;c1;9638004533;
[email protected];
grupo1;nombre;usuario2;c1;96333333;
[email protected];
grupo2;nombre3;usuario3;c1;566666666;
[email protected];
5.2. Creación de los alumnos
cat alumnos.sh
#!/bin/bash
# Script q crea alumnos con sus grupos para uso de samba
# Usa el fichero alumnos.txt q tiene el formato:
#
# Usa el fichero inicio.bat q le indica al windows q comparte, contiene:
#
#
# alumnoc : contiene usuario:clave
net use i: \home
net use j: \\servidor\compartido
grupo;nombre;usuario;password;clave;tel;email;
ac=alumnoc.txt
lineas=‘wc -l < alumnos.txt‘
rm -f alumnoc.txt
if [ ! -d /home/alumnos ]; then
echo xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
echo creando el directorio /home/alumnos ....
echo xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
mkdir /home/alumnos
chmod 755 /home/alumnos
chown root.root /home/alumnos
fi
I=1
while [ $I -le $lineas ]
do
linea=‘sed -n ${I}l alumnos.txt‘
login=‘echo $linea | cut -d";" -f3‘
if grep "^${alumno}:" /etc/passwd
then
echo Ye Existe el login: $login
else
Por Paco Aldarias Raya
4
5.3 Creación del script de inicio
5 PARA LOS ALUMNOS
grupo=‘echo $linea | cut -d";" -f1‘
nombre=‘echo $linea | cut -d";" -f2‘
pass=‘echo $linea | cut -d";" -f4‘
if [ ! -d /home/alumnos/$grupo ];
then
groupadd $grupo
echo xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
echo Creando el directorio /home/alumnos/$grupo
echo xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
mkdir /home/alumnos/$grupo
chmod 755 /home/alumnos/$grupo
chown root:$grupo /home/alumnos/$grupo
cp /etc/samba/netlogon/inicio.bat /etc/samba/netlogon/$grupo.bat
fi
echo Creando el alumno $login
mkdir /home/alumnos/$grupo/$login
chmod 755 /home/alumnos/$grupo/$login
useradd -g $grupo -d /home/alumnos/$grupo/$login -c $nombre $login
chown $login:$grupo /home/alumnos/$grupo/$login
echo $login:$clave | chpasswd
echo -e $pass\\n$pass\\n | smbpasswd -as $login
fi
I=‘expr $I + 1‘
done
Deberemos dar permisos de ejecución al fichero:
chmod 700 alumnos.sh
Lo lanzaremos como root asi: ./alumnos.sh
5.3. Creación del script de inicio
Este fichero debe tener formato msdos, es recomendable crearlo con worpad
de windows y luego copiarlo en /etc/samba/netlogon/.
Este script permite poner en hora la maquina windows y crear unidades
lógicas.
cat /etc/samba/netlogon/inicio.bat
echo Poniendo en hora ....
net time \\pacohost /set /yes
net use i: /home
net use s: \\pacohost\software
Por Paco Aldarias Raya
5
6 PARA LOS PROFESORES
6. Para los profesores
Vamos a tener dos ficheros:
profes.txt : Aqui indicaremos los datos de los alumnos
profes.sh. Crear los alumnos indicados en alumnos.txt
profes.bat. Scrip que ejecutará windows al arrancar.
6.1. Datos de los profes
Los campos deberan estar separados por punto y coma.
Este fichero contendrá:
campo1: departamento
campo2: usuario
campo3: nombre completo del profesor
campo4: clave o password del profe
campo5: telefono
campo4: email
Veamos un ejemplo:
cat profes.txt
depinf;prof1;Pepe;c1;963805623;
[email protected];
depinf;prof2;Juan;c1;965663215;
[email protected];
depeco;prof3;Antonio;c1;125648999;
[email protected];
6.2. Creación de los profesores
cat profes.sh
#!/bin/bash
TOT=‘wc -l < profes.txt‘
I=1
while [ $I -le $TOT ]
do
Por Paco Aldarias Raya
6
6.2 Creación de los profesores
6 PARA LOS PROFESORES
linea=‘sed -n ${I}l profes.txt‘
usu=‘echo $linea | cut -d";" -f2‘
if grep "^${usu}:" /etc/passwd
then
echo "El profe: " $usu " ya existe"
else
dep=‘echo $linea | cut -d";" -f1‘
usu=‘echo $linea | cut -d";" -f2‘
nombre=‘echo $linea | cut -d";" -f3‘
clave=‘echo $linea | cut -d";" -f4‘
if [ ! -d /home/profes ];
then
groupadd profes
echo xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
echo Creando el directorio /home/profes
echo xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
mkdir /home/profes
chmod 755 /home/profes
chown root.profes /home/profes
fi
if [ ! -d /home/profes/$dep ];
then
groupadd $dep
echo xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
echo Creando el directorio /home/profes/$dep
echo xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
mkdir /home/profes/$dep
chmod 755 /home/profes/$dep
chown root.profes /home/profes/$dep
fi
mkdir /home/profes/$dep/$usu
chmod 755 /home/profes/$dep/$usu
useradd -g profes -d /home/profes/$dep/$usu -c $nombre $usu
chown $usu.profes /home/profes/$dep/$usu
echo -e $clave\\n$clave\\n | smbpasswd -as $usu
echo $usu:$clave | chpasswd
echo Creado profesor con login: $usu Nombre: $nombre
fi
I=‘expr $I + 1‘
done
Deberemos dar permisos de ejecución al fichero:
chmod 700 profes.sh
Por Paco Aldarias Raya
7
6.3 Creación del script de inicio para profes
7 CONFIGURACI ÓN DE SAMBA
Lo lanzaremos como root asi: ./profes.sh
6.3. Creación del script de inicio para profes
Este fichero debe tener formato msdos, es recomendable crearlo con worpad
de windows y luego copiarlo en /etc/samba/netlogon/
Este script permite poner en hora la maquina windows y crear unidades
lógicas.
Los porfesores tiene más unidades logicas y más permisos.
cat /etc/samba/netlogon/profes.bat
echo Poniendo en hora ....
net time \\pacohost /set /yes
net use h: /home
net use s: \\pacohost\software
net use p: \\pacohost\profes
net use l: \\pacohost\alumnos
net use t: \\pacohost\tmp
7. Configuración de samba
cat /etc/samba/smb.conf
#======================= Global Settings =====================================
[global]
# workgroup = NT-Domain-Name or Workgroup-Name
workgroup = DSIC
netbiosname = pacohost
# server string is the equivalent of the NT Description field
server string = Servidor Samba Dep Inform`atica
# This option is important for security. It allows you to restrict
# connections to machines which are on your local network. The
# following example restricts access to two C class networks and
# the "loopback" interface. For more examples of the syntax see
# the smb.conf man page
hosts allow = 192.168.0. 127.
# if you want to automatically load your printer list rather
# than setting them up individually then you’ll need this
Por Paco Aldarias Raya
8
7 CONFIGURACI ÓN DE SAMBA
#printcap name = /etc/printcap
load printers = No
# It should not be necessary to spell out the print system type unless
# yours is non-standard. Currently supported print systems include:
# bsd, sysv, plp, lprng, aix, hpux, qnx
# printing = lprng
# Uncomment this if you want a guest account, you must add this to /etc/passwd
# otherwise the user "nobody" is used
; guest account = pcguest
# this tells Samba to use a separate log file for each machine
# that connects
log file = /var/log/samba/%m.log
# Put a capping on the size of the log files (in Kb).
max log size = 50
# Security mode. Most people will want user level security. See
# security_level.txt for details.
#
security = user
security = user
password server = My_PDC_Name [My_BDC_Name] [
Comentarios de: Hacer q linux haga de windows nt server: samba (0)
No hay comentarios