Saltar al contenido

Permisos servidor Samba

  • admin 

En este artículo se verá la relación entre los permisos del sistema de ficheros y la configuración de samba.

El software de samba es una implementación libre y de fuente abierta de los protocolos de red para compartir ficheros entre UNIX/Linux y ordenadores Windows.

Samba proporciona:

  • Servicios de archivo y de impresión
  • Integración con dominio de servidores windows / PDC
  • Formar parte de un dominio de directorio activo., etc

Prioridad en los permisos.

Samba viene con diferentes tipos de permiso por share. Recordemos algo sobre los permisos Unix y los permisos samba.

(a) Los permisos del sistema linux toman prioridad sobre los permisos samba. Por ejemplo si un directorio no tiene permisos de escritura Linux, configurando la opción de samba «writeable = yes» (mirar más abajo) no permitirá escribir en ese directorio que este como share.

(b) Los permisos del filesystem no pueden ser prioritarios sobre los permisos en samba. Por ejemplo, si un filesystem montando como readonly y configuramos en samba «writeable = yes» no permitira escribir en ningún share de ese directorio.

¿Como configuro los permisos en los shares de samba?

Los permisos básicos en samba, son los siguientes (el archivo de configuración es smb.conf [/etc/samba/smb.conf]:

  • read only: Este parámetro controla si un usuario tiene la habilidad para crear o modificar archivos de un share. Este es por defecto.
  • guest ok: Si este parámetro se configura a «Yes» , los usuarios tendrán acceso a al share sin necesidad de introducir una contraseña. Esto puede plantear riesgos de seguridad.
  • writeable: Especifica los usuarios que deberían tener acceso de escritura en el share.

Puedes crear el share llamado helpfiles con permisos de sólo lectura

[helpfiles]
path = /usr/share/docs
read only = Yes

O puedes crear otro share llamado salesdoc con permisos de escritura

[salesdoc]
path = /home/shared/sales
writeable = yes

Tambien puedes crear una lista de usuarios para darles acceso de escritura a dicho share con la opción «write list», por ejemplo permite a carlos y dani escribir en el share llamado salesdoc.

[salesdoc]
path = /home/shared/sales
write list = carlos dani

Puedes usar las siguientes opciones:

  • read list: Esta opción acepta una lista de nombres de usuario o un grupo como su valor. A estos usuarios se les dará acceso de sólo lectura en el share.
  • valid users: Se puede crear un share disponible sólo para unos usuarios especificados. Nombres de usuario o de grupo se pueden pasar como valor.
  • invalid users: A los usuarios o grupos listados aquí, se les denegará el acceso en ese share.

La máscara de permisos de samba

Tambien es posible especificar permisos de samba por defecto cuando se crea un archivo, usando una máscara.

  • create mask: Esta opción se configura usando un valor octal cuando se configuran los permisos para los archivos.
  • directory mask: Los directorios deben tener el bit de ejecución para el acceso apropiado. El parámetro por defecto es 0755.

[salesdoc]
path = /home/shared/sales
write list = rocky sys
create mask = 0775

El software libre y la Educación.

  • admin 

Richard Stallman habla de la importancia del uso del Software Libre en el ámbito educativo. Buena parte de la razón le asiste, sin embargo sus planteamientos son radicales.

Pfsense : How To Setup Vlans

Setting Vlans On Pfsense

Now we setup the vlans on the pfsense

1. Login to Pfsense
2. Go to Interfaces(assign)
3. Click on the Vlans Tab
4. Click the little + sign to create a new vlan

Now we have some settings like this :

Parent Interface: sis0 (or whatever your LAN)
VLAN Tag: 10
Description: VLAN10

Parent Interface: sis0 (or whatever your LAN)
VLAN Tag: 20
Description: VLAN20

Parent Interface: sis0 (or whatever your LAN)
VLAN Tag: 30
Description: VLAN30

Assign Vlans Interface At Pfsense

Now return to pfsense, and reboot it. Everything should work, we’re just enabling the vlans.

Now login to the pfsense again, go to interfaces(assign), go to interfaces tab, then click the + sign.

You should have:

LAN: sis0
WAN: sis1
OPT1: VLAN 10 on SIS0 (VLAN10)
OPT2: VLAN 20 on SIS0 (VLAN20)
OPT3: VLAN 30 on SIS0 (VLAN30)

Click save. Reboot the pfsense again.


Figure1 : Assign Vlan Interface at Pfsense

Now login to the pfsense again, and change the interface name from OPT1 to VLAN10, and then assign it the ip range 10.0.10.1/24 and click save. Do the same for VLAN20 (10.0.20.1/24) and VLAN30 (10.0.30.1/24)

Now go to the DHCP Server section on the pfsense, and you’ll see a new VLAN10, VLAN20 and VLAN30 at the top, which you can configure.

Make sure it is enabled, then click “Apply Changes”


Figure2 : DHCP Server For Vlan10


Figure3 : DHCP Server For Vlan20


Figure4 : DHCP Server For Vlan30

Setting Up Vlan Routing at Pfsense

After you have done that you will want to configure your firewall rules on the pfsense setup. In this example, Vlan10 can access to Vlan20 and Vlan30. Same as Vlan20, it can access Vlan10 and Vlan30. But for Vlan30, it just can access Vlan20 only.


Figure5 : Vlan10 Rules


Figure6 : Vlan20 Rules


Figure7 : Vlan30 Rules

And now, i’m finish with setup Vlans on Pfsense. U can try it by yourself.

Funciones Bash Scripts

Como en casi todo lenguaje de programación, puede utilizar funciones para agrupar trozos de código de una manera más lógica, o practicar el divino arte de la recursión.

Declarar una función es sólo cuestión de escribir function mi_func { mi_código }.

Llamar a la función es como llamar a otro programa, sólo hay que escribir su nombre.

 

8.1 Ejemplo de funciones

 

           #!/bin/bash 
           function salir {
               exit
           }
           function hola {
               echo ¡Hola!
           }
           hola
           salir
           echo petete

Las líneas 2-4 contienen la función ‘salir’. Las líneas 5-7 contienen la función ‘hola’. Si no está completamente seguro de lo que hace este script, por favor, ¡pruébelo!.

Tenga en cuenta que una función no necesita que sea declarada en un orden específico.

Cuando ejecute el script se dará cuenta de que: primero se llama a la función ‘hola’, luego a la función ‘quit’, y el programa nunca llega a la línea 10.

8.2 Ejemplo de funciones con parámetros

 

                #!/bin/bash 
                function salir {
                   exit
                }  
                function e {
                    echo $1 
                }  
                e Hola
                e Mundo
                salir
                echo petete

Este script es casi idéntico al anterior. La diferencia principal es la función ‘e’. Esta función imprime el primer argumento que recibe. Los argumentos, dentro de las funciones, son tratados de la misma manera que los argumentos suministrados al script.

Pasar argumentos a un script bash

  • admin 

Podemos crear un fichero ejecutable llamado parametros.sh y copiar lo siguiente:

#!/bin/bash
echo $1

Si invocamos el script con el siguiente comando:

parametros.sh primero

el resultado sería:

primero

Como vemos, el argumento “primero” ha quedado almacenado en la variable $1 (sí, con bash se pueden usar variables ¿no es maravilloso?).

El siguiente comando:

parametros.sh primero segundo

Nos mostrará lo mismo que antes:

primero

Los argumentos en bash se separan por un espacio, de tal forma “segundo” sería el segundo argumento. Para recogerlo y mostrarlo tendríamos que modificar nuestro script:

#!/bin/bash
echo $1
echo $2

Para recoger el tercer argumento usaríamos $3 y así sucesivamente.

Existe una variable, $#, que se crea automáticamente que contiene el número de argumentos que se han pasado al script:

#!/bin/bash
echo "Total argumentos: $#"

al llamarlo con:

parametros.sh primero segundo

mostrará:

Total argumentos: 2

También se crea automáticamente otra variable, $@, que es un array que contiene todos los argumentos. Si hacemos:

#!/bin/bash
echo $@

nos mostará todos los argumentos:

parametros.sh primero segundo

resultado:

primero segundo

Ya veremos en otra entrega cómo trabajar con este y otros arrays.

Los parámetros especiales

Estas también son variables reservadas que permite en algunos casos efectuar operaciones sobre los mismos parámetros.
Estos parámetros son los siguientes:

$0	Contiene el nombre del script tal como es invocado
$*	El conjunto de todos los parámetros en un solo argumento
$@	El conjunto de argumentos, un argumento por parámetro
$#	El número de parámetros pasados al script 
$?	El código de retorno del último comando
$$	El PID del shell que ejecuta el script
$!	El PID del último proceso ejecutado en segundo plano

¿Qué utilidad tiene esto de los argumentos?

Los argumentos dan una gran flexibilidad a nuestros scripts ya que mediante ellos podemos indicar con qué fichero o directorio queremos trabajar o especificar un usuario por ejemplo.