Archive

Archive for Octubre, 2007

Permisos en Linux (Nivel Básico)

Octubre 16th, 2007 admin No comments

Permisos en Linux (Nivel básico)

Para quien ha usado Windows 9X/ME, esto puede ser un poco complicado. En Windows puedes copiar, mover, borrar, renombrar y sobre escribir cualquier archivo en cualquier momento. Esto es muy diferente en Linux y puede ser un poco difícil de entender y de manejar al principio, pero una vez que se ha entendido es muy sencillo y sobre todo útil, por que gracias a éstos permisos no hay virus que puedan hacer daño al sistema.

¿Y qué son los permisos?

Todo archivo y directorio en Linux tiene permisos establecidos que determinan que y quien puede o no hacer alguna acción con el archivo o directorio. Estas acciones son: leer, escribir y ejecutar.

Los permisos son la base principal en la seguridad en Linux y es una de las características que ayudan a que Linux sea casi inmune a los Virus de computadora. Te preguntaras ¿porqué? por que un virus debe escribir sobre un archivo para poder infectarlo y ejecutarse de alguna manera para poder infectar mas archivos. Con el sistema de permisos, los virus no pueden infectar cualquier archivo como lo hacen en Windows, si el usuario no tiene permisos, el virus simplemente no puede infectar los archivos y por tanto no puede reproducirse.

¿Dónde están los permisos?

Los permisos se registran en el sistema de archivos, es decir cada archivo tiene su tabla de permisos y los puedes ver con el comando ls -l

luis@kamaleon $ ls -l
-rw-r–r– 1 luis usuario 587 may 23 17:17 README
-rwxr-x— 1 luis usuario 1508208 jun 18 14:07 Xvnc*
drwxr-xr-x 2 alberto usuario 8192 abr 30 08:43 install/

Para entender los permisos debes conocer como se establecen, esto se puede hacer de tres maneras:
para el Propietario (owner),
para el Grupo (group) del usuario al que pertenece el propietario.
para los Otros usuarios (Others),

Y los permisos son lectura(r), escritura(w) y ejecución(x).

Los permisos son las letras y guiones que están a la izquierda, el ejemplo muestra los permisos de dos archivos y un directorio (install) este se identifica porque la primera letra es una “d”, cuando es un archivo es un guión “-”.

Las siguientes tres letras son los permisos del propietario (owner), luego las tres del grupo (group) y por último las de otros usuarios (others).

Así, los permisos para el archivo README son:

-rw-r–r– 1 luis usuario 587 may 23 17:17 README

rw- Propietario .- puede leer y escribir en el archivo.
r– Grupo .- los usuarios del mismo grupo que el propietario pueden leerlo.
r– Otros .- usuario que no son del grupo, pueden leerlo.

Veamos el otro archivo de ejemplo:

-rwxr-x— 1 luis usuario 1508208 jun 18 14:07 Xvnc*

rwx Propietario .- puede leer, escribir y ejecutar el archivo.
r-x Gurpo .- pueden leerlo y ejecutarlo.
— Otros .- no lo pueden leer, ni escribir, ni ejecutar.

Cambiando los permisos

Para determinar los permisos de un archivo o directorio se utiliza el comando chmod, este comando puede utilizar dos métodos para establecerlos pero utilizaremos el más sencillo llamado Absoluto. Este asigna un valor a cada permiso:

4 r-lectura
2 w-escritura
1 x-ejecución

Dependiendo los permisos que se quieran asignar se sumaran los valores y se utilizará un valor del 0 al 7 para cada modo (propietario, grupo, otros). Por ejemplo si se quiere cambiar los permisos del archivo README dándole permisos de lectura y escritura al propietario y al grupo, pero solo lectura a Otros, se haría de la siguiente manera:

luis@kamaleon $ ls -l README
-rw-r–r– 1 luis usuario 587 may 23 17:17 README

r w x r w x r w x
Permisos Actuales 4+2+0 4+0+0 4+0+0
6 4 4

 

r w x r w x r w x
Cambiar a: 4+2+0 4+2+0 4+0+0
6 6 4

luis@kamaleon $ chmod 664 README

luis@kamaleon $ ls -l README
-rw-rw-r– 1 luis usuario 587 may 23 17:17 README

Ahora demos permisos de lectura y ejecución a Otros en el Archivo Xvnc

luis@kamaleon $ ls -l Xvnc
-rwxr-x— 1 luis usuario 1508208 jun 18 14:07 Xvnc*

r w x r w x r w x
Permisos Actuales 4+2+1 4+0+1 0+0+0
7 5 0

 

r w x r w x r w x
Cambiar a: 4+2+1 4+0+1 4+0+1
7 5 5

luis@kamaleon $ chmod 755 Xvnc

luis@kamaleon $ ls -l Xvnc
-rwxr-xr-x 1 luis usuario 1508208 jun 18 14:07 Xvnc*

Por último aquí esta una tabla que permite saber rápidamente que valor asignar como permiso a cualquiera de los tres modos.

Val. Permisos
0
1 –x
2 -w-
3 -wx
4 r–
5 r-x
6 rw-
7 rwx

Espero que te sean muy útiles. Disfruta Linux! :)

Categories: Administración, Manuales Tags:

Pequeña introducción a iptables + ejemplos variados.

Octubre 16th, 2007 admin No comments

Pequeña introducción a iptables + ejemplos variados.

 

Del Dept.tutorial-relampago-de-la-pradera.
Iptables es una aplicación en linea de comandos que gestiona el filtrado de paquetes en sistemas Linux (kernels 2.4.x), en base a las reglas que hayamos definido. Iptables es mucho más potente que su antecesor Ipchains (kernels 2.2.x).
La estructura de Iptables es básicamente una cola : cuando un paquete llega, este es validado contra cada una de las reglas del firewall, en el momento que alguna regla casa (match) , se ejecuta la acción que haya sido definida en la regla (descartar el paquete, acceptarlo, enrutarlo, etc).
La estructura de un comando iptables es la siguiente :
iptables -t [tabla] -[AIRDLFZNXP] [regla] [criterio] -j [acción]
Vamos a ver que es cada cosa :


-t [tabla] Esta parte del comando especifica cual es la tabla en la que queremos añadir la regla. Existen 2 tipos de tablas válidas : nat y filter, siendo filter la tabla por defecto si es omitida parte en el comando. Nat se refiere a las conexiones que serán modificadas por el firewall, como por ejemplo, enmascarar conexiones, realizar redirecciones de puertos, etc. Filter es la tabla donde se añaden las relacionadas con el filtrado.
-[AIRDLFZNXP] [regla] Hay 4 opciones básicas con las que se puede jugar en esta apartado del comando. Estas opciones básicas son las siguientes :
  • A es para añadir (Append) una regla. Reglas válidas son INPUT, FORWARD y OUTPUT.
  • L es para listar las reglas.
  • F es para borrar todas las reglas o en el caso de INPUT, FORWARD o OUTPUT seán dados como argumento se borraran las reglas asociadas solo a esa clase.
  • P establece la politica por defecto del firewall. Por defecto es aceptar todas las conexiones.
  • [criterio] Aqui es donde se especificarán las características del tipo de paquete que casará con esta regla. Para establecer reglas sencillas (reglas stateless), podemos operar con las siguientes opciones : -s (ip/red fuente), -d (ip/red destino), –sport (puerto fuente), –dport (puerto destino), y -p (protocolo). Un ejemplo de comando de la sintaxis de un ocmando iptables sencillo podría ser este (la parte en que se define el criterio de la regla está en negrita) :

    iptables -A FORWARD -p [protocolo] -s [ip/red fuente] –sport [puerto fuente] -d [ip/red destino] –dport [puerto destino] -j DROP

    -j [action] Aqui establecemos que es lo que hay que hacer con el paquete. Las posibles opciones son : ACCEPT, REJECT, DROP, REDIRECT, LOG (existén más, pero estas son las básicas).

    ACCEPT aceptará el paquete.
    REJECT o DROP lo desecharán, la direncia entre ellos reside en que DROP descartará el paquete silenciosamente y REJECT emitirá un paquete ICMP Port Unreachable, indicando que está cerrado.
    REDIRECT redirigirá el paquete a donde se indique en el criterio del comando y por último…
    LOG lo logeará para su posterior análisis.

    Iptables es muy flexible y puede hacer cualquier cosa que se os ocurra a los paquetes que pasan por la red, man iptables y http://www.netfilter.org/ os informarán de todo lo que hay que saber.

    Para finalizar el tutorial-relampago, vamos a ver unos ejemplos y lo que hacen, que muchas veces aclaran más las cosas que la pura documentacion ;-) .

    Comando iptables -A INPUT -p tcp -i eth0 –dport 80 -j DROP
    Descripción Cerrar conexiones entrantes desde eth0 y hacia el puerto (local) 80 (HTTP)
    Comando iptables -t nat -A POSTROUTING -o eth0 -s 10.0.0.0/255.255.255.0 -j MASQUERADE
    Descripción Enmascarar por las conexiones procedentes de la red 10.0.0.0 como si lo hicieran desde la ip configurada en la interfaz eth0. (típica regla en un router linux compartiendo la conexión eth0 con la red local conectada a eth1).
    Una regla equivalente a esta puede ser esta (si atacamos por SNAT en lugar de MASQUERADE):

    iptables -t nat -A POSTROUTING -o eth0 -j SNAT –to ip-de-eth0

    Comando iptables -t nat -A PREROUTING -i eth1 -p tcp –dport 80 -j REDIRECT –to-port 3128
    Descripción Redireccionar al puerto 3128 (proxy) todos los paquetes que entran por eth1 y con destino puerto 80 (HTTP), de esta manera conseguimos un proxy transparente.
    Comandos iptables -A INPUT -p tcp -i eth0 -m state –state NEW,ESTABLISHED,RELATED –dport 22 -j ACCEPT
    iptables -A INPUT -p all -i eth0 -m state –state NEW,INVALID -j DROP
    Descripción Detener todas las conexiones entrantes desde la interfaz eth0 menos la conexiones al servicio ssh. La primera regla deja pasar los paquetes al 22 y la segunda cierra todo lo demas. Sin embargo todas las conexiones que se realizen desde la máquina (como navegar, consultar correo, etc) estarán permitidas por que no son conexiones iniciadas desde “fuera”. Con ipchains este tipo de reglas (reglas de inspección de estado, statefull) no existían.
    Comandos iptables -A OUTPUT -i eth0 -p icmp –icmp-type 8 -j DROP
    iptables -A FORWARD -i eth0 -p icmp –icmp-type 8 -j DROP
    Descripción Deshabilitar los paquetes ICMP entrantes de tipo echo (8) para el firewall (regla INPUT) y la red protegida (regla FORWARD).
    Comandos iptables -A INPUT -i eth0 -f -m length –length 0:40 -j DROP
    iptables -A FORWARD -i eth0 -f -m length 0:40 -j DROP
    Descripción Denegar paquetes fragmentados por debajo de 40 bytes. Tanto para conexiones que dirigidas al firewall (regla INPUT) como las que pasan a traves de él (regla FORWARD). Esta regla evita ataques del tipo “Tiny Fragment Attack”

    Autoría: LINUCA -Asociación de Usuarios GNU/Linux en Cantabria.-

    Categories: General Tags:

    Automontaje de unidades en linux

    Octubre 16th, 2007 admin No comments

    Automontaje de unidades en linux

    El demonio autofs es capaz de montar y desmontar automáticamente sistemas de archivos locales y remotos, liberándonos de hacerlo manualmente mediante la orden mount y umount.

    Autofs se comporta de cara al usuario de la siguiente manera:

    Existen directorios que están asociados con sistemas de archivos. Cuando el usuario ejecuta una orden que hace referencia al contenido de dicho directorio, autofs montará automágicamente el sistema de archivos correspondiente en ese punto de montaje.

    Una vez concluya la operación, espera un tiempo antes de desmontarlo de forma automática.

    Autofs es una solución que se compone de una parte que se incluye en el núcleo del sistema (La que se encarga de detectar que estamos entrando en uno de los directorios de automontaje) y de otra en espacio de usuario (un demonio) que se encarga del montaje en sí.

    Con esto quiero decir que el kernel debe haber sido compilado con soporte para ello si queremos usarlo. La buena noticia es que autofs es completamente modular y en el caso (improbable) de que nuestro kernel no lo soporte, no tendremos que reconstruirlo entero, sino sólo compilar el autofs como módulo (ahorrando tiempo y un reinicio).

    Si tenemos un kernel antiguo (anterior a 2.0.X) o no nos interesa andar recompilando, podemos echar mano a soluciones como amd (automounter daemon), menos eficientes pero que operan solamente en espacio de usuario. Este demonio es obsoleto en Linux, aunque creo que con los BSD hay gente que lo usa aún :-? .

    Para comprobar si disponemos de soporte para él incluido en el kernel podemos hacer:

    $ cat /proc/filesystems
    Esto muestra una lista de los sistemas de archivos soportados por nuestro kernel. Si aparece una línea tal qué:

    nodev autofs
    Es que nuestro kernel es válido.

    Una vez comprobado esto, debemos instalar el demonio. En RedHat y similares, el demonio así como una configuración básica de ejemplo y el script que define el servicio de automontaje se encuentran en el paquete autofs-*.i386.rpm.

    Para instalarlo:

    # rpm -ivh autofs-*.i386.rpm
    Rpm automáticamente añade el servicio al nivel de ejecución actual pero no se arranca aún (y no es deseable que lo hagamos ahora, pues todavía no lo hemos configurado).

    Importante: los paquetes de instalación que incluyen las distribuciones son seguros (o deberían serlos), pero si optáis por bajaros versiones actualizadas de Internet, deberías siempre comprobar qué archivos se incluyen, la firma de los paquetes (al menos que el resumen MD5 cuadre con lo esperado) y los scripts que lanzará rpm durante la instalación.

    Recordad que cuando instalamos paquetes, lo hacemos como root con todos los peligros que ello implica.

    Para chequear la firma (pgp/gpg y MD5):

    $ rpm –checksig autofs-*.i386.rpm
    Para chequear los scripts de instalación y de desinstalación, en busca de operaciones malignas:

    $ rpm -q –scripts autofs-*.i386.rpm
    Otras medidas como hacer simulaciones de instalación en entornos chrooted pueden ser excesivas, aunque según dicho popular: “un buen administrador, es el administrador paranoico”. Así que allá cada cual con su conciencia :-) .

    Una vez instalado, pasamos a la configuración. Vamos a suponer, por simplicidad, que el usuario sólo tiene una unidad de discos flexibles y un cdrom. Nos saltaremos unidades zip, jaz, volúmenes nfs, netbios, etc.

    El paquete autofs de RedHat, en las versiones que yo manejo, crea un directorio:

    /misc

    Trae los archivos de configuración:

    /etc/auto.master
    /etc/auto.misc

    Y el servicio de automontaje:

    /etc/rc.d/init.d/autofs

    Para la configuración que vamos a hacer, el directorio misc< nos sobra, así que:

    # rm -r /misc
    Editamos /etc/auto.master para dejarlo de esta forma:

    # auto.master $Id$
    /mnt/auto.floppy /etc/auto.montaje.floppy –timeout 3
    /mnt/auto.cdrom /etc/auto.montaje.cdrom –timeout 15
    ###
    El “timeout” es el tiempo en segundos que dejará pasar demonio después de que hayamos terminado de trabajar con el floppy o con el cdrom antes de desmontarlos. Podeis ajustarlo a vuestro gusto si veis que es demasiado grande o pequeño

    Los archivos auto.montaje.cdrom y auto.montaje.floppy no existen, así que los crearemos tomando como plantilla los ejemplos que nos muestran en /etc/auto.misc o en la página man de autofs(5):

    # auto.montaje.cdrom $Id$
    cdrom -fstype=iso9660,user,noexec,ro :/dev/cdrom
    ### # auto.montaje.floppy $Id$ floppy -fstype=auto,user,noexec,rw,uid=0,gid=19 :/dev/fd0 ###
    Las opciones “fstype” son las que serán pasadas a la orden mount por el demonio.

    Podemos fijar opciones específicas de ciertos sistemas de archivos (En el ejemplo del floppy uid=0 y gid=19 son propias de los sistemas fat, vfat, msdos, etc) que serán ignoradas de forma transparente si el sistema de archivos es distinto (Si el floppy es ext2, mount no se quejará porque el demonio de automontaje le pase uid y gid).

    Esta configuración no es precisamente la más segura del mundo, pero es bastante cómoda. El gid=19 debería corresponder al grupo “floppy”, al que deberían pertenecer los usuarios que deseen escribir en los discos flexibles.

    En muchos ambientes, permitir montaje de unidades (Y la escritura en ellas el caso el floppy) a los usuarios se considera un problema de seguridad, pero si sólo nosotros tenemos acceso físico a la máquina esto no debería preocuparnos demasiado.

    Escritos los archivos de configuración, ahora iremos al directorio /mnt y procederemos de la siguiente forma:

    Borramos los directorios cdrom y floppy si existiesen:

    # rm -r floppy cdrom
    Creamos los directorios auto.cdrom y auto.floppy.

    # mkdir auto.floppy auto.cdrom
    Creamos dos enlaces blandos, a través de los cuales accederemos a los sistemas de archivos de automontaje:

    # ln -s /mnt/auto.cdrom/cdrom /mnt/cdrom
    # ln -s /mnt/auto.floppy/floppy /mnt/floppy
    Nótese que ni /mnt/auto.cdrom/cdrom ni /mnt/auto.floppy/floppy existen, y no debemos en ningún caso crearlos.

    El demonio de automontaje se encargará de construir esos directorios cada vez que necesitemos acceder a un disco y de destruirlos cuando dejemos de utilizarlo.

    No deberíamos tocar nada de lo que haya dentro de /mnt/auto.cdrom/ y /mnt/auto.floppy/.

    Llegado a este punto, nos queda comentar (añadir un “#” al principio) las líneas correspondientes al floppy y al cdrom en el archivo /etc/fstab y arrancar el servicio para que podamos disfrutar del automontaje:

    # /etc/rc.d/init.d/autofs start

    Categories: General Tags:

    CIBER-CAFÉ EN LINUX SUSE 9.2

    Octubre 16th, 2007 admin No comments

    CIBER-CAFÉ EN LINUX SUSE 9.2

    Vamos a crear desde cero y paso a paso un tutorial de cómo crear y administrar un ciber-café utilizando para ello un PC como servidor y el sistema operativo linux SuSE 9.2.
    De aquí partiremos, independientemente que los clientes sean linux o windows.
    La primera entrega será montar el Servidor, utilizando para la administración del CIBER el programa “CybOrg” escrito en perl y montando postgreSQL como base de datos.

    Cualquier sujerencia o ayuda será bien recibida. Puedes dejarlas en Comentarios, al final del Artículo .

    (25-03-2005) Preparada la 1ª Entrega : Instalación del servidor CybOrg (control de tiempo de usuarios).
    (27-03-2005) Preparada la 2ª Entrega Montando el cliente zbdesk en S.O. Windows.
    (28-03-2005) Preparada la 3ª Entrega : Montando el cliente zbdesk en S.O. Linux. Dale a Siguiente …

     

    1ª ENTREGA – Control de tiempo del cliente en el Ciber&heading=Primera Página}

    En esta primera entrega nos centramos en la instalación del Servidor que controlará el tiempo utilizado por nuestros clientes.

    INSTALANDO UN GESTOR DE CIBER-CAFÉ BAJO SuSE 9.2:
    CybOrg, el Organizador de Cybercafés, es un sistema de punto de venta y administración para cybercafés distribuido bajo la GPL. Tiene una interfaz basada en web y está escrito en Perl usando Template Toolkit y un RDBMS (manejador de bases de datos relacionales). CybOrg usa un cliente Win32/Linux para bloquear las estaciones de trabajo.
    El sistema está diseñado para ser usado en un servidor (posiblemente corriendo Linux) y clientes Windows o Linux. Para bloquear las estaciones de trabajo, actualmente usa el cliente de Zeiberbude. Más información en: http://cyborg.sourceforge.net/ (web del proyecto).

    PREÁMBULO:
    Ya doy por sentado que tienes instalada la versión de Linux SUSE 9.2 en su configuración básica, es decir:
    [v] Sistema gráfico básico
    [v] Escritorio KDE (o Sistema GNOME) a tu elección.
    [v] Documentación de ayuda y soporte
    [v] Aplicaciones ofimáticas
    [vv] Y lo que quieras también :) –> nmap, gkrellm, superkaramba, apt para suse …

    Y que va tu sistema SuSE a las míl maravillas (gráfica, sonido, ethernet, internet, etc…)

    1.- PAQUETES NECESARIOS y no tan necesarios QUE HAY QUE TENER INSTALADOS (todos ellos están en el DVD de SuSE 9.2)::

    Con nuestro querido YAST y dentro de Software->Instalar/Desinstalar software, y teniendo como filtro:Buscar , y en Buscar: con las opciones de Buscar en:
    [x] Nombre [x] Resumen [x] Descripción y [x] Proporciona ACTIVADAS, vamos escribiendo todos y cada uno de los nombre de los paquetes que vemos más abajo:
    ejemplo Buscar: apache2 y pinchamos en el botón Buscar.
    En la parte derecha nos aparece el paquete a instalar, le marcamos para instalar, y así sucesivamente con todos los paquetes. Notarás que al hacer la búsqueda del ejemplo ahí están otros paquetes que también deberás de señalar, por lo que no tendrás que buscarles nuevamente.
    Una vez marcados para instalar todos los paquetes que nombro más abajo, pulsamos el botón Aceptar. Yast, en este momento, se dispondrá a su instalación en nuestro sistema sin más problemas, resolviendo las dependencias de los paquetes seleccionados si las hubiere.

    SERVIDOR APACHE (UTILIZO APACHE2):
    apache2
    apache2-devel
    apache2-example-pages
    apache2-mod_fastcgi
    apache2-mod_perl
    apache2-mod_php4
    apache2_prefork

    POSTGRES (servidor y cliente de base de datos):
    postgresql
    postgresql-contrib
    postgresql-devel
    postgresql-libs
    postgresql-server

    PERL (Practical Extraction and Report Language – intérprete versión 5.8.5-3)
    pcre
    perl
    perl-Apache-AuthCookieDBI
    perl-Apache-Session
    pgaccess (Herramienta Gráfica para manejar bases de datos de PostgreSQL)

    CGI.pm (módulo cgi)
    perl-CGI-Application

    Template Toolkit
    perl-Template-Toolkit

    DBI
    perl-DBI
    perl-Apache-DBI

    DBI driver dbi:pg
    perl-DBD-CSV
    perl-DBD-Pg
    pgperl

    DEPENDENCIAS:
    perl-Apache-AuthCookie
    perl-SQL-Statement
    perl-Test-CSV_XS
    pgTcl
    tcllib

    NOTA: Si te hiciera falta algún paquete más, deberás seguir el mismo proceso, pero creo que no te hará falta para este proyecto.

    2.- Elementos que hay que bajar de la red:

    Tenemos que bajar un módulo que utiliza perl que no está incluido en el dvd de SuSE, o por lo menos yo no he dado con el;
    String::Random (módulo de perl)
    Bajarlo de: http://search.cpan.org/~steve/String-Random-0.20/Random.pm
    * El módulo en concreto se llama Random.pm
    – Más adelante sabremos lo que hacer con el.

    Así mismo tenemos que bajar el organizador de CYBER-CAFÉS CybOrg que es el elegido para confeccionar este tutorial.

    SERVIDOR CYBORG (utilizamos cyborg-0.1.19)
    bajar de http://sourceforge.net/projects/cyborg/:
    cyborg-0.1.19.tgz (SERVIDOR a fecha August 8, 2004)

    cyborg-client-(zbdesk) 2.0.4 (CLIENTES a fecha December 5, 2003) que son:
    Download zbdesk-linux-2.0.4.tgz (para linux)
    Download zbdesk-win-bin-2.0.4.tgz (.exe 32-bit windows) ejecutable.
    Download zbdesk-win-dev-2.0.4.tgz (código fuente 32-bit windows)

    3.- Instalación del módulo Random.pm:
    La instalación de este módulo no tiene mayor problema y tendremos que crear un directorio llamado String en: /usr/lib/perl5/5.8.5/i586-linux-thread-multi/ y dejando en el directorio creado nuestro módulo Random.pm.

    mkdir /usr/lib/perl5/5.8.5/i586-linux-thread-multi/String
    cp /tu_ruta_a_Random/Random.pm /usr/lib/perl5/5.8.5/i586-linux-thread-multi/String

    Quedando pues de la siguiente manera:
    /usr/lib/perl5/5.8.5/i586-linux-thread-multi/String/Random.pm

    Si este no es tu path o dirección perl, búsca el tuyo y déjalo en /String/Random.pm. No creo que haya mucha diferencia.

    4.- Instalando el servidor CybOrg.:
    Auque dentro del paquete cyborg-0.1.19.tgz ya existe un texto para su instalación, y en varios idiomas, aquí ponemos los pasos a seguir. No tiene mayor misterio que descomprimir el archivo e introducir lo que tenemos dentro del directorio: cgi-bin/cyborg en nuestra carpeta de cgi,s ; y en el servidor web apache, meter lo que tengamos en: /htdocs/cyborg en nuestro directorio /htdocs. Pero vamos por partes, como dijo JACK EL DESTRIPADOR :p.

    – Descomprimir:
    tar zxvf cyborg-0.1.19.tgz
    – Luego, nos movemos al directorio cyborg-0.1.19:
    cd cyborg-0.1.19
    – Y vemos lo que hay en ese directorio /cyborg-0.1.19:
    ls -R

    * El directorio “/cyborg-0.1.19″ contiene los archivos de texto de los Autores, los bugs encontrados, los cambios producidos con respecto a otras versiones, el copying, los de instalación, etc… (no hay que copiarlo, siemplemente LEERLOS)

    * El directorio “cgi-bin/cyborg/” contiene todos los scripts (ejecutables) y archivos de configuración.
    Copiamos su contenido en su directorio correspondiente:
    cp -R /tu_ruta_a_cyborg/cyborg-0.1.19/cgi-bin/cyborg/. /srv/www/cgi-bin
    (ojo que es . (punto) y espacio entre el origen y el destino)

    * El directorio “htdocs/cyborg/” contiene todos los archivos estáticos (html, imágenes y css).
    Copiamos ese directorio a su directorio correspondiente de nuestro servidor web:
    cp -R /tu_ruta_a_cyborg/cyborg-0.1.19/htdocs/cyborg /srv/www/htdocs

    * El archivo “database/cyborg.sql” contiene un script SQL para crear las tablas de la base de datos de CybOrg y el administrador por defecto. Este script es específico de PostgreSQL.
    Veremos más tarde: CREACIÓN DE LA BASE DE DATOS “cyborg”. Pero hay que seguir paso a paso la explicación. Demos un paso más ;) ).

    CAMBIOS EN LA CONFIGURACIÓN DE CIBORG:
    Tenemos que realizar algunos cambios en la configuración de nuestro CybOrg, siguiendo la ruta especificada en los siguientes archivos:
    /srv/www/cgi-bin/config/cyborg.conf
    /srv/www/cgi-bin/config/options.conf
    /srv/www/cgi-bin/config/database.conf
    Esto lo hacemos con cualquier editor de texto (kwrite por ejemplo). Realizados los cambios guardamos el archivo.

    1* Vamos con cyborg.conf (los cambios realizados están en negrita)
    # cyborg.conf
    #
    # CybOrg main configuration file
    #

    # System name
    system = CybOrg – Cyber Café Tronk

    # Base HTTP URL
    base_url = http://localhost/cyborg/

    # Base HTTP CGI path
    cgi_path = /cgi-bin

    # HTTP server hostname
    http_host = localhost

    # Timeout for connecting clients (in seconds)
    station_timeout = 0

    # Enable/disable debug messages to log
    debug = yes

    # Station update time (in seconds)
    station_update = 60

    2* Ahora con options.conf (los cambios realizados están en negrita)
    # options.conf
    #
    # Default options
    #

    # System language
    language = es

    # System locale
    locale = es_ES

    # System charset
    # Must be listed in “charsets.conf”
    charset = iso-8859-15

    # Default listing
    # Values: long | short
    list_view = long

    3* Por último cambiamos database.conf (los cambios realizados están en negrita)
    # database.conf
    #
    # CybOrg database configuration file
    #

    # DBI database driver (man DBI)
    # Pg is for PostgreSQL access
    driver = Pg

    # Database server name
    host = localhost

    # Database TCP port
    port = 5432

    # Database name
    dbname = cyborg

    # Database user
    user = cyborg

    # User password
    password = pass_de_cyborg (aqui tenemos que poner la contraseña del usuario cyborg que crearemos más adelante)

    Ya hemos terminado la configuración de CybOrg.

    5.- CAMBIOS EN PostgreSQL
    Seguimos con los cambios, ahora le toca el turno al archivo de configuración de nuestro servidor de base de datos PostgreSQL. Básicamente los archivos a modificar son 2.
    Vamos con el primero que es :
    /var/lib/pgsql/data/postgresql.conf

    Aquí añadimos o descomentamos (quitamos la almohadilla #) las siguientes líneas:
    listen_addresses = ”localhost”
    port = 5432

    Ahora vamos con el segundo archivo a configurar:
    /var/lib/pgsql/data/pg_hba.conf
    Al final de este archivo debe aparecer algo como esto:
    # TYPE DATABASE USER CIDR-ADDRESS METHOD
    # “local” is for Unix domain socket connections only
    local all all ident sameuser
    # IPv4 local connections:
    host all all 127.0.0.1/32 trust
    # IPv6 local connections:
    host all all ::1/128 ident sameuser
    host all all localhost crypt

    Con estos cambios es más que suficiente en un principio. Después podremos conectar con la herramienta gráfica para el manejo de base de datos en PostgreSQL llamada “pgaccess“, a mi me gusta un huevo O_o.

    6.- LEVANTANDO LOS SERVICIOS POSTGRESQL, y APACHE2:
    Hay que poner en marcha los servicios tanto de la base de datos postgreslq y el servidor web apache2. Esto lo hacemos de la siguiente manera (como root y en consola):
    /etc/init.d/postgresql start
    Initializing the PostgreSQL database at location /var/lib/pgsql/data done
    Starting PostgreSQL done

    /etc/init.d/apache2 start
    Starting httpd2 (prefork) done

    Así ya tendremos postgresql y apache2 corriendo en nuestro servidor.
    – A título informativo, si quieremos reiniciar o parar cualquiera de los dos servicios en vez de start pondremos:
    – restart (reiniciar el servicio)
    – stop (parar completamente el servicio)

    7.- CREANDO EL USUARIO cyborg:
    Creamos el usuario cyborg como un usuario del sistema. Voy a lo fácil con YAST
    YAST->Seguridad y usuarios->Editar y crear usuarios.

    Nos muestra esta pantalla Yast. Rellenamos los campos como se indica, y tendremos creado ya el usuario en el sistema.

    *- Ahora creamos el usuario cyborg como miembro de PostgreSQL.

    1.- Entramos como usuario postgres, ya creado cuando instalamos PostgreSQL con YAST:
    su postgres
    2.- Creamos cyborg como usuario de postgreSQL:
    createuser -U postgres -d -A cyborg

    – A título informativo, para borrar el usuario cyborg como usuario de postgreSQL sería : dropuser cyborg

    8.- CREACION DE LA BASE DE DATOS “cyborg” :

    1.- Creamos la base de datos cyborg y como propietario el usuario cyborg
    createdb -U postgres -O cyborg cyborg
    -A título informativo, para ver la ayuda del comando createdb seria: createdb –help
    2.- Añadir tablas “llenar” la base de datos cyborg con el scritp cyborg.sql
    psql -U postgres -d cyborg -f /tu_ruta_a_cyborg/cyborg-0.1.19/database/cyborg.sql
    – A título informativo, para listar las bases de datos que tenemos seria : psql -l

    3.- Existe un error en la base de datos cyborg que hay que corregir con lo siguiente:
    Debemos estar como usuario postgres. Seguramente estemos ya con este usuario en consola. Unicamente si no lo estabamos debemos teclear: su postgres
    Llamamos a la base de datos a modificar:
    psql cyborg
    Saldrá un mensaje como el siguiente:
    Welcome to psql 7.4.5. the PostgreSQL interactive terminal.
    Type: copyright for distribution terms
    h for help with SQL comands
    ? for help on internal slash commands
    g or terminate with semicolon to execute query
    q to quit
    cyborg=#_
    En este punto tendremos que poner lo siguiente:
    alter table options add column CHARSET varchar(20);
    ALTER TABLE
    Luego teclear para salir q:
    cyborg=#q

    Así estaría modificada la base de datos cyborg sin errores.

    9.- POR FIN ….. ENTRANDO EN EL ADMINISTRADOR CybOrg.

    En nuestro navegador web tecleamos:

    http://localhost/cyborg

    Ya podremos ver la siguiente pantalla en nuestro navegador :

    Para acceder como administrador tendremos que teclear
    Usuario: admin
    Contraseña: secret

    Son por defecto el usuario y contraseña para poder acceder la primera vez que entremos. Luego podremos cambiar por seguridad este usuario y contraseña en el panel de administración.

    Así accederemos a nuestro servidor viendo la pantalla de administración, donde podemos crear usuarios, grupos, ip,s clientes, etc….

    ———————————————————————————————————————

    Hasta aquí esta primera entrega.

    En la 2ª Entrega instalaremos el programa clientes, tanto en windows (no tiene nada de especial) como en linux (aquí tendremos algo más de complejidad, pero nada que no se solucione con alguna modificación puntual) xDD.

    Si quieres dejar comentarios, sugerencias o aportar algo de ayuda puedes hacerlo aquí : COMENTARIOS.

     

     

     

    {mospagebreak title=2ª Entrega Montando el cliente zbdesk en S.O. Windows&heading=Segunda Página}

    INSTALACION DEL CLIENTE ZBDESK EN WINDOWS XX

    Vamos a instalar el cliente zbdesk para nuestro proyecto CybOrg, empezando por los PC,s que tengas con el S.O. Windows.

    1.- Bajar, si no lo hemos hecho ya, el cliente zbdesk en binario .exe (32-bit Windows)

    Download zbdesk-win-bin-2.0.4.tgz

    2.- Descomprimir con winrar o winace, no tiene misterio.

    3.- Al descomprimir nos quedará un directorio -> disk1, y el README.txt

    4.- Dentro del directorio disk1 pinchamos para ejecutar el SETUP.exe (aplicación)

    5.- La configuración por defecto es la correcta, así que, como en casi todos los programas que queremos cargar en el disco duro, le damos a siguiente, en este caso Weiter>

    Figura 1.- Primera pantalla de ejecución de zbdesk

    6.- Seguimos con la instalación, y únicamente debemos decirle si el cliente tiene Windows 95 o 98, o si por el contrario tiene Windows NT, 2000 o XP, como se muestra en la Figura 2.

    Figura 2.- Elección del cliente según el S.O.

    Como puedes observar puedes elegir entre Wn9.x based (para windows 95 o 98) y Win NT based (válido para Windows NT, 2000 o XP). La elección dependerá del Sistema Operativo que tenga el PC cliente en cuestión.

    7.- Una vez elegido pinchar en Weiter > para seguir la instalación.

    8.- Al completar la instalación, verás en el menú de Inicio -> Todos los Programas -> un icono que pinchando sobre el nos lanzará el cliente zbdesk cuyo fin es el de responder a las peticiones de “Pausa” o “Bloqueo” que hagamos en el Servidor CybOrg, bloqueando así la pantalla del PC cliente.

    Aquí es donde se coloca el archivo ejecutable: “C:Archivos de programa eiberbudezbdeskzbdesk_nt.exe”

    ———————————————————

    9.- Ahora vamos a autoarrancar el programa cliente zbdesk_nt.exe al entrar en windows.

    Esto lo hacemos de la siguiente manera: Ir a Inicio -> Ejecutar …

    En este ventana ponemos en Abrir: regedit

    Ahora nos muestra la venta del editor de registros de Windows, pues bien, pinchando en cada una de los directorios, ir a la siguiente ruta:

    HKEY_LOCAL_MACHINE”"Software”"Microsoft”"Windows”"CurrentVersion”"Run

    Aquí tenemos que introducir una nueva entrada ir al Menú – Edición – Nuevo – Valor alfanumérico, tal y como indica la imagen:

    Aparece la siguiente ventana, donde debemos de introducir la cadena, en nuestro caso:

    Nombre de valor: zbdesk 2.0

    Información del valor: “C:Archivos de programas eiberbudezbdeskzbdesk_nt.exe”

    Pinchamos en el botón Aceptar, y podemos cerrar el editor de registros.

    Esto es suficiente para que cuando arranquemos el PC cliente se inicie el programa cliente solito.

    Una cuestión más, si estamos ejecutando el Firewall bloqueará las características del cliente zbdesk. En este caso pinchamos en el botón Desbloquear para que acepte conexiones de nuestra red local.

    Y hasta aquí la instalación del cliente zbdesk para las máquinas clientes que tengan el S.O. windows en nuestro Ciber. Por descontado este proceso hay que seguirle en cada uno de los PC,s que tengas montado con este sistema operativo.

    La tercera entrega será: Instalación del cliente zbdesk en el S.O. LINUX. :) )

    Si quieres dejar comentarios, sugerencias o aportar algo de ayuda puedes hacerlo aquí : COMENTARIOS.

     

     

     

    {mospagebreak title=3ª ENTREGA – Montaje del Cliente zbdesk en Linux -&heading=Tercera Página}

    Cliente para X11 (linux) version 3.0

    En esta 3ª Entrega vamos a instalar el cliente para linux llamado zbdesk que nos sirve para controlar el tiempo de uso de terminales en nuestro ciber, igual que hicimos con el archivo ejecutable zbdesk en el S.O. Windows en la segunda entrega.

    Como Sistema Operativo cliente voy a utilizar Linux en su distribución Debian Sid . También lo he probado en Mandrake y en SuSE 9.2.

    Manos a la obra. o_O

    1.- DEPENDENCIAS.

    Antes de hacer nada, vamos a “cubrir” en los puestos cliente linux, las dependencias que serán requeridas por el programa zbdesk 3.0.

    XFree86-devel (que en debian son las xlibs-dev)
    ibxml2-devel (en debian es llamado libxml2-dev)

    a)Dependencias en Mandrake
    XFree86-devel
    ibxml2-devel

    Lo podemos hacer con el comando : urpmi XFree86-devel ibxml2-devel

    b)Dependencias en SuSE 9.2
    XFree86-devel
    ibxml2-devel

    Para hacer esto buscamos con nuestro querido YaST –>Software–>Agregar Software, y en Buscar introducimos esos dos paquetes. Una vez localizado y marcados los dos paquetes con [v] para su instalación, pinchamos en el botón Aceptar.

    c)Dependencias en Debian
    xlibs-dev
    libxml2-dev

    Esto es tan sencillo como poner en consola : apt-get install zlibs-dev libxml2-dev

    Una vez instaladas las dependencias del cliente (tambien disponible en la documentación del paquete y en la web oficial), pasamos a bajar el paquete.

    2.- BAJAMOS EL PAQUETE zbdesk-3.0.tar.gz

    Para bajar el paquete vamos a la web oficial de zeiberburge http://zeiberbude.sourceforge.net/ y su sección de news aparece lo siguiente:

    11.05.2004
    A new X11 client for zeiberbude is available. it is easie to use. you can download the source from Aquí.

    De ahí se puede bajar el archivo comprimido llamado zbdesk-3.0.tar.gz

    3.- INSTALANDO EL PAQUETE zbdesk-3.0.tar.gz

    Para descomprimirlo y desempaquetarlo abrimos consola y ponemos:

    #tar -xvfz zbdesk-3.0.tar.gz

    Para compilarlo e instalarlo (como root obviamente), sería :

    #cd zbdesk-3.0
    #./configure
    #make
    #make install

    Y si todo sale bien, el binario que lanza esta aplicación tendría que estar ubicado en /usr/local/bin/zbdesk, el cual deberá ser invocado para que el cliente arranque.

    4.- Configurando el cliente para el arranque

    4.a) Arranque desde las X usando GDM

    Simplemente hay que crear el archivo /etc/X11/gdm/Sessions/zbdesk que contenga las siguientes líneas.

    #!/bin/sh
    /usr/bin/zbdesk
    [tu_gestor_de_ventanas_favorito]

    donde “[tu_gestor_de_ventanas_favorito]“ vendría a ser nada mas ni nada menos que el nombre o mejor dicho el comando que arranca tu gestor favorito de ventanas, como por ejemplo:

    wmaker (para el WindowMaker)
    fluxbox (para el Fluxbox)
    gnome-session (para el GNOME)
    startkde (para el KDE)

    Luego modificamos los permisos del archivo a 0711, usando el siguiente comando:

    # chmod 0711 /etc/X11/gdm/Sessions/zbdesk

    bueno y con esto, entre la lista de sesiones del GDM, podremos elegir la que acabamos de crear y hemos llamado “zbdesk” la cual arranca el cliente zbdesk y nuestro gestor de ventanas favorito.

    (tenemos que tener en cuenta que debemos tener como gestor de arranque del entorno grafico al GDM. Para esto en debian basta con un simple apt-get install gdm si es que no lo tienen instalado. En mandake y similares ya se instala durante la primera instalación)

    4.b) Arrancando el cliente desde la consola

    Para los que prefieran arrancar las X desde una consola en modo texto por lo general en debian el runlever por defecto es el 2, el cual si uno lo configura y lo desea al terminar de cargar la mayoría de los scripts de inicio este puede iniciar el gdm, pero hay gente que prefiere (como yo, por ejemplo) arrancar las X desde la consola y elegir como gestor de ventanas al bello archivo “.xinitrc”

    También podemos configurar para que el cliente arranque al ejecutar los comandos “xinit” y/o “startx” para lo cual debemos crear el archivo “.xinitrc” en el /home del usuario que usaremos para los clientes, vamos a suponer que el user se llama “cliente” por lo cual tendríamos que hacer lo siguiente:

    #adduser cliente
    #su cliente
    #touch /home/cliente/.xinitrc
    #vi /home/cliente/.xinitrc (o ábrelo con otro editor)

    Entonces ahí se abre el editor y escribimos lo siguiente dentro del archivo “.xinitrc” el cual estamos editando.

    Presionamos la tecla “INSERT” para habilitar el modo de edición, y escribimos los siguiente:

    /usr/bin/zbdesk [tu_gestor_de_ventanas_favorito]

    (supongo que no hace falta explicar lo que es [tu_gestor_de_ventanas_favorito])

    Luego presionamos la tecla “ESC” para salir de modo edición y el editor “vi” se encontrara en modo de comando y le indicaremos que guarde los cambios que hemos realizado con la siguiente combinación :wq!
    (este comando “:wq!” (los dos puntos incluidos le dice a “vi” que guarde los cambios y que se cierre el programa, con lo que los cambios que hemos realizado dentro del archivo han quedado guardados). Para comprobar que se ha guardado correctamente podemos verificar con la siguiente línea:
    #cat /home/pepe/.xinitrc
    /usr/local/bin/zbdesk startkde
    #
    de esta manera tendría que ser la salida del comando “cat” si elegimos el KDE como gestor de ventanas para trabajar en nuestra sesión en los clientes.

    Al ejecutar “xinit” o “startx” debería arrancar el cliente y el KDE, (el cliente es un pequeño cuadrito azul con el tiempo y el costo).

    4.c) Arranque de las X automático con un usuario predeterminado

    En la vida real supongamos que tenemos unas 20 computadoras en nuestra red del cyber café, y al momento de abrir se nos vuelve algo tedioso ir equipo por equipo tecleando un username y un password. Esto se puede evitar, y lo ideal seria apretar el botón del encendido del PC y que el equipo ya arrancase con el usuario que nosotros hemos elegido o creado para que sea el que por defecto se use en los terminales.
    Es decir, que encendamos el PC y que cargue el gestor de ventanas elegido y el cliente zbdesk sin tener que poner un nombre de usuario y contraseña.

    Supongamos que acabamos de instalar de cero el zbdesk-3.0, sin haber configurado el GDM ni el .xinitrc

    Para llevar a buen puerto nuestro objetivo, haremos lo siguiente en todas las terminales clientes:

    Supongamos que elegimos como gestor de ventana el “KDE“, y el usuario para tener en las terminales que usan nuestros clientes del ciber lo llamaremos “invitado“, para comenzar haremos esto:

    #adduser invitado
    #cd /home/invitado/
    #su invitado

    Editamos el archivo /home/invitado/.xinitrc , e introducimos la siguiente línea:

    /usr/local/bin/zbdesk startkde

    con esto hacemos que el user invitado tenga como gestor de ventanas favorito, mejor dicho por defecto, el KDE.

    Luego tenemos que hacer el paso de crear la sesión del GDM, como anteriormente hemos comentado arriba en la sección 4.a) Arranque desde las X usando GDM

    ——————————————————————————————————————————————————–
    Nota para Mandrake: En la distribución mandrake por razones que desconozco (no investigue al respecto todavía) al rebootear la session que creamos en “/etc/X11/gdm/Sessions/zbdesk” pierde los permisos correspondientes que son los que le asignamos “0711″ quizas esto se debe a una re-asignacion de ellos cuando bootea. lo cual lo solucione por el momento con un script en /etc/init.d/ que es iniciado cuando el equipo arranca en el run-level correspondiente en el caso de la prueba el mandrake se iniciaba en el run-level “5″ (modo grafico), por lo que hay que hacer lo siguiente:

    #touch /etc/init.d/zbsessperm
    #chmod 750 /etc/init.d/zbsessperm
    #vi /etc/init.d/zbsessperm

    (suponemos que ya tenemos experiencia con el vi)

    el archivo debera contener las siguientes lineas:

    #!/bin/sh
    echo -n “seteando permisos a la session zbdesk…”
    chmod 0711 /etc/X11/gdm/Sessions/zbdesk
    echo “Ok.”

    salvamos presionando “ESC” y escribiendo `:wq!`y presionamos “ENTER” y quedara guardado, luego nos resta hacer un link simbólico para que esto se ejecute cuando arranca el ordenador o PC, o computadora como mas os guste.

    ln -s /etc/init.d/zbsessperm /etc/rc5.d/S27zbsessperm

    y con eso debería ser suficiente. FIN DE LA Nota para Mandrake
    ——————————————————————————————————————————————————–

    En debian con crear el archivo zbdesk en el directorio de sesiones del GDM es suficiente, como siempre debian funcionando como corresponde ;) .

    Solo faltaría hacer que el GDM sea nuestro gestor de sesines por defecto y setear que la sesión del user invitado sea la que arranque por defecto.

    ARRANQUE AUTOMÁTICO CON EL GESTOR GDM Y CON USER INVITADO SIN PASS NI CONTRASEÑA.

    Para empezar haremos que la sesión del user invitado arranque nada más encender el PC sin pedir pass ni contraseña (testeado en el mandrake 9.1). **ya falta menos**

    Seteando el GDM como gestor de escritorios y/o sesiones por defecto
    ————————————–Esto se puede hacer de varias maneras :

    En mandrake la mas fácil y amigable es correr la aplicación llamada “centro de control de mandrake” a la cual se accede por el menú, con lo cual se abrirá una ventana con varios items el que debemos seleccionar es “hardware” y luego una vez dentro debemos dirigirnos a la opción “pantallas” y elegir como gestor de sesiones a el GDM. En resumen:

    “inicio de KDE” > “configuracion” > “centro de control de mandrake” (se abre ventana de menu) | “hardware” > “pantallas” (elegir GDM)

    O si bien esto se puede establecer manualmente editando un archivo que reside en la siguiente localización:

    /etc/X11/default-display-manager

    el cual contiene lo siguiente:

    #lnxdeb:/etc/X11# cat default-display-manager
    /usr/bin/gdm

    como podemos observar este archivo contiene una sola línea la cual apunta al binario correspondiente al GDM que se encuentra ubicado en el path:
    “/usr/bin/gdm” (en debian), en mandrake se encuentra en “(pronto lo averiguare).

    En debian a veces también es necesario correr el siguiente comando para configurar que se cargue el GDM en tiempos de arranque:

    dpkg-reconfigure gdm

    (damos por hecho que esta el gdm instalado, de no ser asi este se instala con “apt-get install gdm”)

    Seteando que arranque automaticamente con una sesion de KDE del _user_ “invitado”

    Con esto lograremos que la pc directamente cargue el gestor de ventanas KDE bajo la sesion del user invitado, para esto haremos lo siguiente:

    “abrir control center de KDE”, ir a la rama “Administracion del sistema”, luego “Administrador de Acceso”, y elegir tab de “Comodidad”

    Una ves dentro de este menú debemos marcar el check box llamado “Activar acceso automático” ahí tenemos que elegir un usuario. Elegimos al que hemos creado para que sea usado en las terminales, en nuestro caso lo hemos llamado “invitado” y con esto ya seria suficiente.
    Damos por hecho que este usuario tiene en su home el archivo “.xinitrc” con las líneas pertinentes para que arranque el gestor de ventanas y el cliente zbdesk.
    El gdm configurado como lo hemos hecho nos será de utilidad si el usuario del equipo reinicia la sesion sin querer, por lo cual nos aparecerá una pantalla de login en la cual podremos elegir la sesion “zbdesk” que es la indicada para el caso.

    (en debian no pude lograr que arranque el KDE automáticamente con la sesion de X usuario, cosa que no debe ser tan complicada, debe ser algún archivo que hay que modificar aparte de hacerlo en el entorno grafico)

    – Falta pulir alguna cosilla como podeis comprobar, pero seguro que en próximas actualizaciones de este documentos quedará niquelado. xDD

    ——————————————————————————————————————————–

    Hasta aquí esta tercera entrega.

    La 4ª Entrega está aún por determinar, ya que no tengo muy claro si dedicarla al tema de configuración del SERVIDOR DE IMPRESIÓN para llevar un control de las impresiones de cada PC cliente, o sobre cómo controlar el ancho de banda “recursos” de internet, o bien dedicarla al tema de SEGURIDAD mediante algún firewall o cortafuegos utilizando iptables a pelo o bien utilizar algo tan sencillo como firestarter…. SEGUIMOS TRABAJANDO.

    Si quieres dejar comentarios, sugerencias o aportar algo de ayuda puedes hacerlo en añadir comentarios.

    ‘, ”, 1, 5, 0, 35, ‘2008-08-06 16:43:07′, 62, ”, ‘2008-08-06 16:46:17′, 62, 0, ‘0000-00-00 00:00:00′, ‘2008-08-06 16:43:07′, ‘0000-00-00 00:00:00′, ”, ”, ’show_title=\nlink_titles=\nshow_intro=\nshow_section=\nlink_section=\nshow_category=\nlink_category=\nshow_vote=\nshow_author=\nshow_create_date=\nshow_modify_date=\nshow_pdf_icon=\nshow_print_icon=\nshow_email_icon=\nlanguage=\nkeyref=\nreadmore=’, 2, 0, 4, ”, ”, 0, 19, ‘robots=\nauthor=’);

    Categories: General Tags:

    PERMISOS EN LINUX

    Octubre 16th, 2007 admin No comments

    PERMISOS EN LINUX

    El sistema de permisos en Linux se basa en un esquema de usuarios/grupos que lo convierte en la base principal de la seguridad en Linux, a estos usuarios y grupos se les asignan distintos derechos sobre los archivos y directorios.

    Esta es una de las características que ayudan a que Linux sea casi inmune a los Virus de computadora, los virus deben ser capaces de escribir sobre un archivo para poder infectarlo y ejecutarse de alguna manera para poder infectar mas archivos, con el sistema de permisos de Linux los virus no pueden copiarse a cualquier archivo, si el usuario carece de permisos el virus no podrá infectar más archivos y por lo tanto no podrá reproducirse.

    Todos los archivos y directorios en Linux tienen permisos que verifican quien puede hacer o no alguna acción con él.

    Cuales son los permisos

    Los permisos propiamente dichos son tres:

    • r: read (lectura): Cuando el permiso de lectura está activo sobre un directorio significa que se podrá listar los recursos almacenados en él, si está asignado a un archivo se podrá leer su contenido.
    • w: write (escritura): Cuando el permiso de escritura está activo sobre un directorio significa que se podrá crear y borrar archivos en su interior, si esta activado para un archivo significa que se podrá modificar su contenido.
    • x: execute (ejecución): Si el permiso de ejecución está activo sobre un directorio significa que el usuario podrá realizar otras funciones dentro de él mediante los otros permisos de lectura y escritura, y si está activo sobre un archivo se podrá ejecutarlo desde la línea de comandos.

    Y donde están los permisos?

    Para poder ver los permisos de los archivos y directorios es necesario ejecutar el siguiente comando:

    $ ls –l

    Este comando nos dará una salida similar a la siguiente:

    drwxr-xr-x 3 raul raul 4096 2005-02-16 14:47 Desktop
    drwxr-xr-x 5 raul raul 4096 2005-02-16 12:42 GNUstep
    -rw-r–r– 1 raul raul 246417 2005-03-03 13:13 foto1.png
    -rw-r–r– 1 raul raul 232505 2005-03-03 13:14 carta2.abw
    -rw-r–r– 1 raul raul 239618 2005-03-03 13:14 informe.abw
    drwxr-xr-x 2 raul raul 4096 2005-02-16 12:42 tmp

    Ahora describamos la salida que hemos obtenido:

    Con la siguiente línea interpretamos la información así:

    - rw- r– r– 1 raul raul 246417 2005-03-03 13:13 foto1.png
    ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
    1 2 3 4 5 6 7 8 9 10 11

    1 : Tipo de archivo = es un archivo regular
    2 : Permisos = los permisos para el propietario son de lectura y escritura
    3 : Permisos = el grupo tiene permiso de sólo lectura
    4 : Permisos = los otros usuarios tienen el permiso de sólo lectura
    5 : Enlace Físico = tiene un enlace físico
    6 : Propietario = el usuario raul es el propietario de este archivo
    7 : Grupo = este archivo pertenece al grupo raul
    8 : Tamaño = su tamaño es de 246417 bytes
    9 : Fecha = fue creado el 03 de marzo de 2005
    10 : Hora = a 13:13 horas
    11 : Nombre = el archivo se llama foto1.png

    Como habrás apreciado los permisos están asignados en grupos de 3 (rwx) y corresponde al: propietario (owner: dueño del archivo o directorio), grupo (group: grupo del archivo o directorio) y otros (others: otro usuario diferente del propietario).

    En la siguiente imagen resaltamos nuevamente la ubicación de los permisos en caso no lo hayamos notado:

    COMANDOS RELACIONADOS

    Linux dispone de 3 comandos que permite cambiar los permisos, el propietario y el grupo de un archivo y/o directorio respectivamente:

    • Comando chmod : se utiliza para cambiar los permisos del archivo o directorio
      $ chmod [permisos] [archivo/directorio] [opciones]
    • Comando chown : se utiliza para cambiar el propietario del archivo o directorio
      # chown [nuevo usuario propietario] [archivo/directorio] [opciones]
    • Comando chgrp : utilizado para cambiar el grupo del archivo o directorio
      # chgrp [nuevo grupo] [archivo/directorio] [opciones]

    ¿COMO SE CAMBIAN LOS PERMISOS?

    Para cambiar los permisos se puede hacer de 2 maneras:

    1. Utilizando taquigrafía basada en caracteres, o
    2. Utilizando números.

    1. CAMBIO DE PERMISOS UTILIZANDO TAQUIGRAFÍA DE CARACTERES

    Para poder utilizar la taquigrafía basada en caracteres tomemos en cuenta la siguiente lista con su respectiva correspondencia:

    Símbolo

    Descripción

    Identidades

    u

    Es el usuario propietario del archivo o directorio

    g

    Es el grupo al que pertenece el archivo o directorio

    o

    Otros usuarios, el resto del mundo, ni el propietario ni su grupo

    a

    Todo el mundo – propietario, grupo y otros

    Permisos

    r

    Acceso de lectura

    w

    Acceso de escritura

    x

    Acceso de ejecución

    Acciones

    +

    Añade los permisos

    -

    Elimina los permisos

    =

    el único permiso

    Vamos a practicar con el comando chmod, para ello lo primero que haremos será crear el archivo foto1.png para ver los cambios de permisos, así que les recomiendo seguir la secuencia:

    Ejemplo

    Descripción

    Resultado

    $ touch foto1.png

    creamos el archivo foto1.png

    foto1.png

    $ chmod a-rwx foto1.png

    quitamos todos los permisos al archivo foto1.png

    ———

    $ chmod u+rwx foto1.png

    añadimos todos los permisos para el propietario

    rwx——

    $ chmod g+x foto1.png

    añadimos el permiso de ejecución para el grupo

    rwx—x—

    $ chmod o+r foto1.png

    añadimos el permiso de lectura para los otros usuarios

    rwx—xr–

    $ chmod u-rw foto1.png

    eliminamos los permisos de lectura y escritura para el propietario

    –x—xr–

    $ chmod a=r foto1.png

    establecemos como unico permiso de lectura para los 3 grupos

    r—r—r–

    $ chmod a=rx foto1.png

    establecemos los permisos de lectura y ejecución para los 3 grupos

    r-xr-xr-x

    $ chmod a=- foto1.png

    quitamos todos los permisos

    ———-

    $ chmod u+rx,o+x foto1.png

    añadimos los permisos de lectura y ejecución al propietario y ejecución a otros

    r-x—–x

    $ chmod g+rx,o-x foto1.png

    añadimos permiso de lectura y ejecución al grupo y eliminamos permiso de ejecución a otros

    r-xr-x—

    $ chmod ug+wx,o-x foto1.png

    añadimos permiso de escritura y ejecución al propietario y grupo, y eliminamos permiso de ejecución a otros

    rwxrwx—

    $ chmod a=rw foto1.png

    permite a cualquiera modificar el contenido e incluso eliminar el archivo

    rw-rw-rw-

    Si cambiamos los permisos a un directorio y deseamos que estos permisos tengan efecto sobre todos sus subdirectorios y archivos sólo deberemos añadir la opción –R. Ejemplo:

    $ chmod a=rw DIRECTORIO –R

    2. CAMBIO DE PERMISOS UTILIZANDO NÚMEROS

    Cada permiso tienen asignado un valor, incluso cuando el permiso no está activo. Para poder utilizar los números tendremos que tener en cuenta la siguiente tabla con sus respectivos valores:

    r = 4 (lectura)
    w = 2 (escritura)
    x = 1 (ejecucion)
    – = 0 (sin permisos)

    Cuando asignamos los permisos utilizando números debemos tener en cuenta que primero se sumarán los valores y dicho resultado será el que se coloque, aquí una tabla que muestra dichos valores:

    Valor

    Permisos

    Descripción

    0

    El valor cero significa que no se han asignado permisos

    1

    –x

    sólo se ha asignado el de ejecución

    2

    -w-

    sólo permiso de escritura

    3

    -wx

    permisos de escritura y ejecución

    4

    r–

    sólo permiso de lectura

    5

    r-x

    permisos de lectura y ejecución

    6

    rw-

    permisos de lectura y escritura

    7

    rwx

    permisos: lectura, escritura y ejecución

    Los permisos por números se asignan en grupos de 3, es decir, para el propietario-grupo-otros, no es factible asignar solo para uno o dos de ellos.

    Ejemplos:

    • rw——- (600) — Sólo el propietario tiene el derecho de leer y escribir.
    • rw-r–r– (644) — Sólo el propietario tiene los permisos de leer y escribir; el grupo y los demás sólo pueden leer.
    • rwx—— (700) — Sólo el propietario tiene los derechos de leer, escribir y ejecutar el archivo.
    • rwxr-xr-x (755) — El propietario tiene los derechos de leer, escribir y ejecutar; el grupo y los demás sólo pueden leer y ejecutar.
    • rwx–x–x (711) — El propietario tiene los derechos de lectura, escritura y ejecución; el grupo y los demás sólo pueden ejecutar.
    • rw-rw-rw- (666) — Todo el mundo puede leer y escribir en el archivo. ¡No es una buena elección!
    • rwxrwxrwx (777) — Todo el mundo puede leer, escribir y ejecutar. ¡Tampoco es buena elección!

    Utilizaremos el mismo ejercicio anterior para poder practicar con los permisos utilizando números, el único cambio que haremos será utilizar otro archivo llamado foto2.png:

    Ejemplo

    Descripción

    Resultado

    $ touch foto2.png

    creamos el archivo foto2.png

    foto2.png

    $ chmod 000 foto2.png

    quitamos todos los permisos al archivo foto2.png

    ———-

    $ chmod 700 foto2.png

    añadimos todos los permisos para el propietario

    -rwx——

    $ chmod 710 foto2.png

    añadimos el permiso de ejecución para el grupo

    -rwx—x—

    $ chmod 714 foto2.png

    añadimos el permiso de lectura para los otros usuarios

    -rwx—xr–

    $ chmod 114 foto2.png

    eliminamos los permisos de lectura y escritura para el propietario

    —x—xr–

    $ chmod 444 foto2.png

    establecemos como unico permiso de lectura para los 3 grupos

    -r—r—r–

    $ chmod 555 foto2.png

    establecemos los permisos de lectura y ejecución para los 3 grupos

    -r-xr-xr-x

    $ chmod 000 foto2.png

    quitamos todos los permisos

    ———–

    $ chmod 501 foto2.png

    añadimos los permisos de lectura y ejecución al propietario y ejecución a otros

    -r-x—–x

    $ chmod 550 foto2.png

    añadimos permiso de lectura y ejecución al grupo y eliminamos permiso de ejecución a otros

    -r-xr-x—

    $ chmod 770 foto2.png

    añadimos permiso de escritura y ejecución al propietario y grupo, y eliminamos permiso de ejecución a otros

    -rwxrwx—

    $ chmod 666 foto2.png

    permite a cualquiera modificar el contenido e incluso eliminar el archivo

    -rw-rw-rw-

    CAMBIANDO PROPIETARIOS Y GRUPOS

    Otra de los puntos a la hora de establecer permisos es la necesidad de poder cambiar el propietario y grupo del archivo o directorio, para hacer esta operación debe estar como root y los usuarios y grupos que utilizará deben haber sido creados previamente.

    Cambiando el propietario

    Utilizamos el comando chown explicado líneas arriba:

    # chown clases foto1.png # estamos cambiando el propietario del archivo, ahora el usuario clases será el propietario del archivo foto1.png

    # chown raul foto2.png # el usuario raul será el propietario del archivo foto2.png

    Si vamos a cambiar el propietario de un directorio y con todos sus subdirectorios y archivos en forma recursiva utilizaremos la opción –R:

    # chown clases datos/ –R # el usuario clases sera el nuevo propietario de todos los archivos y subdirectorios que estén dentro del directorio datos/

    Cambiando el grupo

    Utilizamos el comando chgrp explicado líneas arriba:

    # chgrp clases foto1.png # estamos cambiando el propietario del archivo, ahora el archivo foto1.png será del grupo clases

    # chgrp raul foto2.png # el archivo foto2.png será del grupo raul

    Si vamos a cambiar el grupo de un directorio y con todos sus subdirectorios y archivos en forma recursiva utilizaremos la opción –R:

    # chgrp clases datos/ –R # todos los archivos y sub directorios del directorio datos/ serán del grupo clases

     

    Tema: Permisos en Linux
    Autor:
    Raul Rodas Hinostroza
    E-mail: raul@linuxcentro.net
    Web: www.linuxcentro.net

    Copyright : ©2005 LinuxCentro.Net permite la libre distribución y modificación de este documento por cualquier medio y formato mientras esta leyenda permanezca intacta junto con el documento, la distribución y modificación se deben hacer de acuerdo con los términos de la Licencia Pública General GNU publicada por la Free Software Foundation; sea la versión 2 de la licencia o (a su elección) cualquier otra posterior. La información contenida en este documento y los derivados de éste se proporcionan tal cual son y los autores no asumirán responsabilidad alguna si el usuario o lector hace mal uso de éstos.


    Categories: Administración, Manuales Tags:

    ¿Qué es una Distribución Linux?

    Octubre 16th, 2007 admin No comments

    Una distribución de GNU/Linux es una variante de ese sistema operativo que incorpora determinados paquetes de software para satisfacer las necesidades de un grupo especifico de usuarios, dando así origen a ediciones hogareñas, empresariales y para servidores. Pueden ser exclusivamente de software libre, o también incorporar aplicaciones o controladores propietarios.

    La base de cada distribución incluye el núcleo Linux, con las bibliotecas y herramientas del proyecto GNU y de muchos otros proyectos/grupos de software, como BSD, Xorg, Apache, MySQL, PostgreSQL, Perl, Python, PHP, Gnome y KDE.

    Usualmente se utiliza la plataforma XFree86 o la X.Org para sostener interfaces gráficas (esta última es un fork de XFree86, surgido a raíz del cambio de licencia que este proyecto sufrió en la versión 4.4 y que lo hacía incompatible con la licencia GPL)..

    GNU/Linux distros en línea del tiempo

    Categories: Distribuciones Tags: