Mostrando entradas con la etiqueta Administración. Mostrar todas las entradas
Mostrando entradas con la etiqueta Administración. Mostrar todas las entradas


No es más que un hasta luego

Hola todos y a todas, quiero informarles que hoy he decidido no seguir publicando en éste blog, debido a diversas ocupaciones que tienen mayor prioridad. En verdad se me complica mucho mantener éste blog.

Estoy pensando en publicar tutoriales en mi canal de Youtube, pero debo planificarme muy bien. Posiblemente todo aquello que pensaba publicar aquí sobre programacion y GNU/Linux, se colocará en dicho canal. 

Cabe destacar que dejaré http://gamgux.blogspot.com abierto para que otras personas puedan acceder a su contenido. Muchas gracias a todos los que de alguna u otra forma llegaron aquí y pudieron beneficiarse con las entradas publicadas

Si desean comunicarse conmigo pueden hacerlo a través de:
- Twitter: aquí (@gamg_ )
- Google+:  aquí

Cómo dice el título es un hasta luego, dudo que más adelante continue con éste blog pero como dice el dicho "Nunca digas nunca". Sin mas nada que decir me despido.

Gustavo A. Meza G.


Configuración básica de eGroupware

- Luego de haber instalado el eGroupware con aptitude install egroupware, se presentará en la consola la petición del nombre de administrador y contraseña.
- También habrá que colocar el prefijo del idioma en este caso colocamos es
- Vamos al navegador y colocamos http://localhost/egroupware/setup/ 
- Damos clic en "Ejecutar pruebas de instalación", para comprobar las variables que el sistema necesita para funcionar correctamente.
- Podremos corregir los errores y las advertencias a través de esta guía.

En mi caso me apareció distinto a los que salen en la guía. Uno de ellos fue el siguiente:
Comprobando php.ini: date.timezone establecido y no "System/Localtime": ini_get('date.timezone')='''



Instalar eGroupware Debian squeeze con repositorios

Antes de comenzar y para los que no conocen ésta herramienta, eGroupware es una solución de trabajo en grupo vía web, de código abierto. Está escrita en PHP utilizando bases de datos, tales como LDAP, PostgreSQL, o MySQL. (Fuente:Wikipedia)

A continuación se mostrará como hacer la instalación de eGroupware a partir de los repositorios:

- Creamos nuestro archivo para el repositorio (recuerden que pueden usar el editor de texto que más les guste, en mi caso use vi)

vi /etc/apt/sources.list.d/egroupware.sources.list


Colección de comandos básicos mysql (Parte 3)

- Añadir un registro en la BD:
Sintaxis:
INSERT INTO tabla_nombre(campo1,campo2) VALUES('valor1','valor2');

Ejemplo:
INSERT INTO tabla1(nombre,cedula) VALUES ('Gustavo','18255639');

- Añadir varios registros en la BD:
Sintaxis:
INSERT INTO tbl_name(c1,c2) VALUES('v1','v2'),('v3','v4'),('v5','v6');

Ejemplo:
INSERT INTO tabla1(nombre,cedula) VALUES ('Gustavo','18255639'),('Pepito','17569321');


- Anadir un valor nulo a la base de datos:
INSERT INTO nombre_tabla(campo1,campo2) VALUES('jose',null);

- Otra forma de anadir un registro:
INSERT INTO nombre_tabla VALUES('valor1','valor2');

- Insertar un registro de una tabla a otra:
INSERT INTO nombre_tabla1 SELECT cedula,nombre,campo3 FROM nombre_tabla2 WHERE cedula=18103454;

- Consultar todos los registros de una tabla:
SELECT * FROM nombre_tabla;

- Consultar campos especificos de una tabla:
SELECT nombre,cedula,campo3 FROM nombre_tabla;

- Consultar un campo especifico seleccionando los registros distintos:
SELECT DISTINCT campo FROM nombre_tabla;

- Consultar toda la informacion de un registro utilizando condicion:
SELECT * FROM nombre_tabla WHERE nombre="fulano";
SELECT * FROM nombre_tabla WHERE edad>30;
SELECT nombre,cedula,campo3 FROM nombre_tabla WHERE nombre="juan" OR nombre="maria";
SELECT nombre,cedula,edad FROM nombre_tabla WHERE nombre="juan" AND edad=25;
SELECT * FROM nombre_tabla WHERE not(edad=20);
SELECT * FROM nombre_tabla WHERE campo1 IS NULL;
SELECT * FROM nombre_tabla WHERE edad BETWEEN 20 AND 40;
SELECT * FROM nombre_tabla WHERE nombre LIKE "M%";

Nota: en el ultimo ejemplo, mostrara todos los registros cuyo nombre comience con M o m.

- Ordenar la edad de forma descendente(que muestre los menores primeros):
SELECT nombre,edad FROM nombre_tabla ORDER BY edad DESC;

- Consultar registros con funciones de agregacion(COUNT devuelve en numero el total de registros otros son SUM MAX MIN AVG ):
SELECT COUNT(*) FROM nombre_tabla;

- Muestra el promedio de cada asignatura (as "promedio" es el alias a mostrar):
SELECT avg(nota) as promedio FROM nombre_tabla GROUP BY id_asignatura;

Nota: la clausula "GROUP BY" es utilizada para separar los registros seleccionados en grupos específicos. En el ejemplo anterior separa los registro por el id de la asignatura de alguna tabla y mostrando a traves del campo "nota" su promedio.

- Consultar varias tablas:
SELECT tabla1.cedula,tabla1.nombre,tabla2.nota FROM tabla1,tabla2 WHERE tabla1.cedula=tabla2.cedula_alumno;

- Cambiar el valor de un registro (si se coloca sin el where cambiara todo los registros):
Sintaxis:
UPDATE nombre_tabla SET campo2='nuevo_valor' WHERE campo1='valor';

Ejemplo:
UPDATE nombre_tabla SET apellido='nuevo_apellido' WHERE id_usuario='07';

- Borrar datos de una Tabla, todos los registros:
DELETE FROM nombre_tabla;

-Borrar un registro especifico:
Sintaxis:
DELETE FROM nombre_tabla WHERE campo1=valor;

Ejemplo:
DELETE FROM nombre_tabla WHERE cedula=20566321;

- Consultar y unir resultados(todas las columnas correspondientes necesitan ser del mismo tipo de datos):
Sintaxis:
SELECT campo FROM tabla1 UNION SELECT campo FROM tabla2;

Ejemplo:
SELECT nombre FROM tabla1 UNION SELECT direccion FROM tabla2;


Colección de comandos básicos mysql (Parte 2)

- Cargar datos en una tabla mediante un archivo (por defecto el tabulador es el separador de columnas):
LOAD DATA LOCAL INFILE "archivo.txt" INTO TABLE nombre_tabla;

Nota: Obviamente tenemos que crear previamente el .txt con los datos de la tabla.

- Cargar datos en una tabla mediante un archivo (si esta en otro directorio):
LOAD DATA LOCAL INFILE "/home/Desktop/archivo.txt" INTO TABLE nombre_tabla;

- Ejemplo colocando la "," como separador de columnas e indicando las lineas que comiencen con "xxx":
LOAD DATA LOCAL INFILE "/tmp/archivo.txt" INTO TABLE nombre_tabla FIELDS TERMINATED BY ',' LINES STARTING BY 'xxx';

- Muestra el conjunto de carateres:
SHOW CHARACTER SET;

- Crear base de datos:
CREATE DATABASE nombre_BD;

- Ejemplo con codificación utf8:
CREATE DATABASE nombre_BD CHARACTER SET utf8;

- Para ver el tipo de codificación y caracteristicas en la BD:
SHOW CREATE DATABASE nombre_BD;

- Eliminar Bases de Datos:
DROP DATABASE nombre_BD;

- Crear tabla:

Sintaxis:
CREATE TABLE nombre_tabla(campo CHAR(10));

Ejemplo:
CREATE TABLE tabla1(nombre CHAR(30), apellido varchar(20), nacimiento (date), edad int);

- Ejemplo dandole a los campos valores nulos:
CREATE TABLE nombre_tabla(nombre CHAR(20) NOT NULL, poblacion INT NULL);

- Creando tabla con campo de auto incremento y llave primaria:
CREATE TABLE nombre_tabla(clave INT AUTO_INCREMENT PRIMARY KEY, nombre CHAR(20) NOT NULL, poblacion INT NULL);

- Creando tabla con un valor por defecto:
CREATE TABLE nombre_tabla(nombre CHAR(20) NOT NULL, poblacion INT NULL DEFAULT 5000);

- Creando tabla con comentarios:
CREATE TABLE nombre_tabla(nombre CHAR(20) NOT NULL COMMENT 'Aqui va el comentario', poblacion INT(3) NULL);

- Creando tabla con llave primaria:
CREATE TABLE alumnos(ClaveAlumno int(4), nombre varchar(20), PRIMARY KEY (ClaveAlumno));

- Creando llave foranea:

Sintaxis:
CREATE TABLE nombre_BD(ClaveLibro int(6), Clave_Alum int(4), titulo varchar(30), PRIMARY KEY(ClaveLibro), FOREIGN KEY (Campo) REFERENCES otra_BD(Campo_otra_tabla));

Ejemplo:
CREATE TABLE libros(ClaveLibro int(6), Clave_Alum int(4), titulo varchar(30), PRIMARY KEY(ClaveLibro), FOREIGN KEY (Clave_Alum) REFERENCES alumnos(ClaveAlumno));

- Creando tabla con un index (INDEX=KEY):
CREATE TABLE mi_tabla(id INT, nombre CHAR(19), INDEX (nombre));

- Este ejemplo usará sólo los cuatro primeros caracteres de la columna 'nombre' para crear el índice:
CREATE TABLE mitabla(id INT, nombre CHAR(19), INDEX (nombre(4)));

-Crear tabla con ON DELETE y ON UPDATE (CASCADE, SET NULL, NO ACTION, RESTRICT, SET DEFAULT(no es soportado por tablas InnoDB)):

CREATE TABLE alumnos(ClaveAlumno int(4), nombre varchar(20), PRIMARY KEY (ClaveAlumno));

CREATE TABLE libros(ClaveLibro int(6), Clave_Alum int(4), titulo varchar(30), PRIMARY KEY(ClaveLibro), FOREIGN KEY (Clave_Alum) REFERENCES alumnos(ClaveAlumno) ON DELETE CASCADE ON UPDATE CASCADE);

- Para borrar la clave foranea en la tabla:
ALTER TABLE nombre_tabla DROP FOREIGN KEY codigo_CONSTRAINT;

- Para verifcar las caracteristicas de la tabla creada:
SHOW CREATE TABLE nombre_tabla;

- Para ver indices de una tabla:
SHOW INDEX FROM nombre_tabla;

- Para añadir un indice en una tabla ya creada:
ALTER TABLE nombre_tabla ADD INDEX nombre_indice (columna_indexada);

- Para eliminar un indice:
ALTER TABLE tabla_nombre DROP INDEX nombre_indice;

- Añadir una llave foranea en una tabla ya creada:
ALTER TABLE nombre_tabla ADD FOREIGN KEY (campo) REFERENCES nombre_tabla2 (campo);

- Añadir clave foranea y restricciones de tabla (que actualice en cascada y que no pueda borrar):
ALTER TABLE libros ADD FOREIGN KEY (Clave_Alum) REFERENCES alumnos(ClaveAlumno) ON UPDATE CASCADE ON DELETE RESTRICT;

- Añadir un atributo a una tabla:
ALTER TABLE nombre_tabla ADD nuevo_campo varchar(12);

- Elimina el atributo de una tabla:
ALTER TABLE nombre_tabla DROP campo_a_borrar CASCADE;

- Renombrar una tabla:
ALTER TABLE viejo_nombre RENAME nuevo_nombre;

- Cambiar el tipo de campo (columna, atributo) por otro (de char a int not null):
ALTER TABLE nombre_tabla MODIFY nombre_campo INT NOT NULL;

- Cambiar el nombre de un campo:
ALTER TABLE nombre_tabla CHANGE viejo_nombre_campo nuevo_nombre_campo char(10);

- Eliminar la llave primaria:
ALTER TABLE nombre_tabla DROP PRIMARY KEY;

- Eliminar la llave unique:
ALTER TABLE nombre_tabla DROP UNIQUE nombre_constraint;

- Exportar una base de datos (en la consola):
myslqdump -u root -p nombre_BD > /home/usuario/Respaldo.sql

- Importar una base de datos:
myslq -u root -p nombre_BD < /home/usuario/Respaldo.sql


Nota: Antes de importar, cear la base de datos primero.


Colección de comandos básicos mysql (Parte 1)

A continuación se mostrará una colección de los comandos básicos para el manejador de base de datos MySQL. Lo único que necesitaremos para verificar dichos comandos es nuestra poderosa consola y tener instalado correctamente el paquete mysql-server-5.0

Comandos sin entrar a la consola de mysql utilizando Mysqladmin:

- Sintaxis de mysqladmin:
mysqladmin -u usuario -p comando -h maquina(ip)

Nota: Si el servidor mysql es remoto se tendrá que colocar "-h ip_servidor", pero si es local no es necesario colocarlo.

- Asignar Contraseña para el root de mysql:
mysqladmin -u root -h localhost password "123"

- Cambiar la clave de root:
mysqladmin -u root -p password "nuevo_password"

- Comprobar si el servidor MySQL está en funcionamiento:
mysqladmin ping -u root -p

- Ver el estado actual del servidor de MySQL:
mysqladmin -u root -p status

- Mostrar todos los procesos en marcha o consultas en la base de datos MySQL:
mysqladmin -u root -p processlist

- Igual que el anterior pero con intérvalo de tiempo ("-i 2" ---> 2 segundos):
mysqladmin -u root -p -i 2 processlist

- Detener un proceso cliente:
mysqladmin -u root -p kill id

- Crear una base de datos mysql:
mysqladmin -u root -p create nombre_base_datos

- Ver las bases de datos mysql:
mysqlshow -u root -p

- Eliminar una base de datos MySQL existentes:
mysqladmin -u root -p drop
nombre_base_datos

- El método seguro para apagar el servidor MySQL:
mysqladmin -u root -p shutdown

- Observar las variables del sistema:
mysqladmin -u root -p variables

Ahora dentro de la consola de mysql:

- Entrar a la consola de mysql:
mysql -u root -p -h maquina(ip)

Nota: -h especificar si es remoto

- Cambiar la clave de root:
UPDATE mysql.user SET Password=PASSWORD('Nueva_password') WHERE User='root';

y luego

flush privileges;

- Otra forma de cambiar la pass del root:
set password for root@localhost=password('Nueva_password');

- Observar las variables del sistema:
show variables;

- Seleccionar el motor de almacenamiento al crear una tabla:
Sintaxis:
CREATE TABLE nombre_tabla(definición) ENGINE=nombre_motor;

Ejemplo:
CREATE TABLE Alumnos(nombre char) ENGINE=InnoDB;

- Cambiar motor de almacenamiento:
ALTER TABLE City ENGINE=MyISAM;

- Para ver la version de mysql:
SELECT version();

- Para ver la fecha:
SELECT CURRENT_DATE;

- Para sumar valores:
select 2+2;

- El estado actual del servidor de MySQL:
status

- Ejecuta comando de linux:
\! ls
\! pwd

- Para escribir en un fichero y que los resultados de los comandos vayan a él:
pager cat > /tmp/log.txt
show databases;
nopager

Verificar con: cat /tmp/log.txt

- Ejecutar sentencias SQL desde un fichero de texto:
\. nombre_de_fichero

- Para ver la lista de bases de datos disponibles:
show databases;

- Para seleccionar una base de datos:
USE nombre_de_la_base_de_datos;

- Para ver tablas de la
base de datos seleccionada:
SHOW TABLES;

- Para ver las columnas de la tabla:
SHOW COLUMNS FROM nombre_tabla;

o también

DESCRIBE nombre_tabla;

- Crear una nueva base de datos:
CREATE DATABASE nueva_base_datos;

- Crear una tabla:
Sintaxis:
CREATE TABLE nombre_tabla(definición);

Ejemplo:
create table tabla1(edad int);

- Alterar una tabla:
ALTER TABLE tabla modificación;

- Para ver caracteristicas de la tabla:
show create table nombre_tabla;

- Para ver las vistas:
show create view nombre_de_la_vista;

- Listar la sentencia grant para observar sus privilegios:
show grants;

- Listar la sentencia grant para observar sus privilegios de un usuario especifico:
Sintaxis:
show grants for usuario@maquina;

Ejemplo:
SHOW GRANTS FOR pepe@192.168.1.200;

- Ver la lista de usuarios conectados:
show processlist;

- Detener un proceso cliente:
kill id

- Crear un usuario con privilegios:
Sintaxis:
GRANT privilegios(columnas) ON elemento TO nombre_usuario@maquina IDENTIFIED BY 'contraseña' with grant option;

Ejemplos:

- Crea usuario para una BD y tabla especifica con privilegios (Consulta y actualización):
GRANT select, update ON nombre_BD.nombre_tabla TO nombre_usuario IDENTIFIED BY '123';

- Crea usuario para una BD especificas y Todas sus tablas con todos los privilegios:
GRANT all ON nombre_DB.* TO nombre_usuario IDENTIFIED BY '123';

- Crea usuario para todas las BD y Todas sus tablas con todos los privilegios:
GRANT all ON *.* TO nombre_usuario IDENTIFIED BY '123';

- Crea usuario para la base de datos actual de la tabla test con privilegios de actualizar en el campo id y consultar en el campo nombre:
GRANT UPDATE(id), SELECT(nombre) ON test TO javier@localhost IDENTIFIED BY '123';

- Usuario con privilegios de consultar e insertar en todas las BD y tablas.(el % significa que maria se puede conectar desde cualquier maquina):
grant select, insert on *.* to maria@'%' identified by '123';

With grant option: Es opcional y permite dar privilegios a otros usuarios.

-Creando usuario en la tabla user de mysql:
mysql -u root -p mysql

insert into user values('localhost','admin',PASSWORD('clave'), Reload_priv='Y', Process_priv='Y');

FLUSH PRIVILEGES;

- Otra manera de Crear Usuarios:
CREATE USER fulano2 IDENTIFIED BY '123';

CREATE USER Alumno@Salon1 IDENTIFIED BY PASSWORD(Alumno);

- Cambiar el nombre de un usuario:
RENAME USER viejo_nombre TO nuevo_nombre@192.168.40.21;

- Cambiar clave de un usuario:
SET PASSWORD FOR Pepe@'%'=PASSWORD('123');

- Cambiar clave del ususario logueado:
SET PASSWORD=PASSWORD('minuevaclave');

- Ver los Usuarios de MySQL y sus parametros:
SELECT User,Host,Password FROM mysql.user;

- Eliminar privilegios de un ususario:
Sintaxis:
REVOKE privilegios ON base_datos.tabla(columnas) FROM usuario;

Ejemplo:
REVOKE select ON PDVSA.* FROM manuel;

- Borrar usuario:
Sintaxis:
DROP USER nombre_usuario;

Ejemplo:
DROP USER manuel;

- Borrar usuario con condición "where":
DELETE FROM user WHERE user.User='manuel';

Nota: En el comando anterior la palabra where significa "donde", es decir, se borrará el registro "donde" el nombre de usuario sea igual a "manuel". Se usa como una especie de condición.


Servidor de impresión CUPS

CUPS:

(Common Unix Printing System) es un sistema de impresión modular que usa IPP (Internet Printing Protocol) para manejar las colas. Es un sistema moderno y sofisticado, apto para el uso con un entorno de escritorio como GNOME o KDE. Mantiene optativamente el sistema tradicional de líneas de comando de BSD lpr.

Configuración en Debian Lenny.

En el servidor:

Para Instalar un servidor de impresión con cups, instale lo siguientes paquetes:

cupsys
cupsys-client
cupsys-bsd
Cups-pdf
system-config-printer
todos los paquetes foomatic: (Verificar con --> aptitude search foomatic)

foomatic-db
foomatic-db-engine
foomatic-db-gutenprint
foomatic-db-hpijs
foomatic-filters
foomatic-filters-ppds
foomatic-gui
python-foomatic

Luego de la instalación editar el archivo /etc/cups/cupsd.conf

Descomentar la línea que contiene puerto 631, en caso de que esté comentada.

Buscamos las siguientes lineas:

DefaultAuthType Basic
<Location />
# Allow shared printing...
Order allow,deny
Allow all
</Location>

Podemos dejar el "Allow all" para que cualquier máquina de la subred pueda tener acceso a la impresora.

Si queremos que solamente una maquina especifica tenga acceso a la impresora borramos la linea "Allow all" y colocamos:

Allow From 200.82.231.* -------> ip de la máquina cliente.

reinicie el servidor

/etc/init.d/cups restart

Si su impresora es HP, instale el paquete hpijs

Configure la impresora en un navegador colocando

http://localhost:631

Ir a INICIO --> Administración servidor

En adminstración básica del servidor: marcar las tres primeras opciones. y luego hacer clic en cambiar especificaciones.

Configuración máquina cliente:

Instale el paquete system-config-printer

aptitude install system-config-printer

Instale los drivers correspondientes:

En el caso de una HP instalar hpijs hpijs-ppds

aptitude install hpijs hpijs-ppds

Vaya a Sistema --> Administarción --> Impresora

O también

Aplicaciones-->Herramientas de sistemas -->printers

Busque la opción: detectar impresora en red o hacer clic en "Nuevo".

Se detectará la configuración automáticamente.

Cups IPP

URI. ipp://ip_servidor:631/printers/nombre_impresora

Clic en adelante y luego aplicar.

Podremos ingresar al Cups desde un cliente Windows o linux.

En un navegador:

http://:631/printers/

Obviamente sin los simbolos "<>".

Y listo calisto a imprimir en red...



Configuración de Samba en Lenny

Samba es un programa Open Source que nos permite compartir archivos e impresoras desde una computadora Linux a PC con MS Windows como si fuera una mas de ella, lo cual es muy util ya que podemos tener un servidor de archivos y de impresión basado en Linux colocado en una red donde se conectan PC con Windows.

Server Message System:
Desarrollado originalmente por IBM, es un protocolo de red para compartir archivos e impresoras.

Instalacion y configuracion:
----------------------------

Ejecutamos el siguiente comando:

aptitude install samba smbfs

El archivo de configuración de Samba puede ser encontrado en /etc/samba/smb.conf vamos a editar este archivo, primero realizamos una copia de respaldo:

cp -p /etc/samba/smb.conf /etc/samba/smb_copia01042010.conf

Siempre es bueno realizar una copia de los archivos de configuración que modifiquemos en caso de que cometamos algun error podamos volver a la configuración inicial, además a mi me gusta agregarle la fecha en que realice la copia para tener un registro.

Luego procedemos a modificar el archivo:

nano /etc/samba/smb.conf

En el archivo de configuración cambia donde dice workgroup = MSHOME (puede ser distinto en tu caso) a:

workgroup = MIGRUPO

Donde MIGRUPO es el nombre del grupo de trabajo de MS Windows o el nombre de dominio, de donde será parte el servidor Samba. Tienes que configurar el mismo grupo de trabajo en tus computadoras Windows, esto lo puedes hacer en Panel de control>Sistema>Nombre de Equipo>Cambiar Nombre. Si quieres tambien puedes cambiar la linea donde dice server string esto es simplemente la descripción que verá tu grupo del servidor puedes colocar algo como:

server string = %h Servidor de archivos

%h lo que hace es imprimir el nombre de host de tu servidor.

Guarda los cambios y sigamos.

Como crear, editar o eliminar usuarios en Samba:

Los usuarios que queremos que tengan acceso al servidor Samba deben estar creados como usuarios en nuestro servidor linux, podemos crear un grupo samba y agregar a ese grupo todos los usuarios que tendrán acceso al servidor samba:

Para agregar un usuario a linux podemos utilizar el comando:

adduser nombre_usuario

Nos pedira la clave que queremos utilizar para ese usuario y algunos datos que son opcionales, luego podemos cambiar sus privilegios. Supongamos que tenemos un usuarios ya creado llamado jose y que lo queremos agregar a los usuarios de Samba, para esto ejecutamos el siguiente comando:

smbpasswd -a jose

Nos aparecerá algo como:
smbpasswd -a jose
New SMB password:
Retype new SMB password:
Added user jose.

Colocamos la clave que queremos que tenga ese usuario para ingresar al servidor Samba, la clave puede ser distinta a la clave que tiene el usuario para ingresar a Linux.

Vamos a crear un nuevo archivo donde estarán todos los usuarios autorizados para conectarse al Servidor de Samba, para esto ejecutamos:

nano /etc/samba/smbusers

En el nuevo archivo copiamos la siguiente línea:

nombre_enlinux = Nombre en Windows

Ejem: jose = jose

Donde nombre_enlinux es el nombre del usuario que tenemos en linux en este caso jose y Nombre en Windows es el nombre del usuario de red en Windows. Tenemos que agregar una nueva línea por cada usuario que creemos para Samba.

Para borrar un usuario ejecutamos:

smbpasswd -x nombre_usuario

Ahora que ya tenemos a los usuarios creados procedamos a ver como se comparten archivos y directorios.

Vamos a modificar el archivo de configuración de Samba:

nano /etc/samba/smb.conf

Busca la línea que dice:

# security = user

Y la modificamos por:

security = user
username map = /etc/samba/smbusers

Con esto lo que estamos haciendo es diciendole a Samba que vamos a autentificar por usuario y donde está la lista de los usuarios permitidos que fue la que creamos anteriormente. Para darle acceso a los usuario a sus respectivos directorios home o personales, hacemos lo siguiente:

Buscamos las línea donde dice:

;[homes]
; comment = Home Directories;
;browseable = no
;valid users = %S
;writable = no

Y le quitamos el ; para descomentarlos, y en writable le cambiamos no por yes para que el usuario pueda escribir en el directorio siempre y cuando tengamos la opcion read only= no la cual se encuentra con la pocion yes un poco mas abajo, quedaria asi:

[homes]
comment = Home Directories;
browseable = yes
valid users = %S
writable = no
#
#
read only = no

Siempre que cambiemos la configuración del archivo smb.conf debemos ejecutar el siguiente comando:

testparm

lo que hace este parámetro es verificar que los parámetros del archivo smb.conf estén correctos, luego que nos diga que todo esta bien ejecutamos:

/etc/init.d/samba restart

para aplicar los cambios.

Ahora si quieremos compartir un directorio de forma global que llamaremos grupo hacemos lo siguiente, primero creamos la carpeta que queremos compartir si ya no la habíamos creado:

mkdir /home/grupo

chmod 777 /home/grupo

La puedes crear donde quieras. Ahora vamos a modificar el archivo de smb.conf, voy a suponer que ya modificaste la parte de security y agregaste /etc/samba/smbusers a este archivo y que ya sabes como abrirlo para editarlo de ahora en adelante. Agregamos la siguientes lineas al final del archivo:

[Grupo]
comment = Archivos Compartidos
path = /home/grupo
public = yes
writable = yes
create mask = 0700
directory mask = 0700
force user = nobody
force group = nogroup

Analicemos esta estructura, comment simplemente es un comentario de lo que es la carpeta puedes colocar lo que quieras, path por supuesto es donde esta la carpeta que queremos compartir, public es si quieres hacer esta carpeta disponible publicamente o no, para cambiarlo simplemente coloca no, writable permite definir si se puede escribir en la carpeta o no, create mask y directory mask es la mascara con la que se crearan los archivos (es decir que privilegios tendrán los archivos y directorios creados) si quieras que puedan hacer cualquier acción en la carpeta coloca 0777 en ambas, force group y force user es para forzar que solo un grupo específico o usuario se pueda conectar a esta carpeta.

Si además queremos que solo un grupo de usuarios pueda accesar a la carpeta agregamos esta línea después de writable:

valid users = nombre_usuario1 nombre_usuario2

Donde puedes agregar los usuarios que quieras que tengan acceso.

Luego de que termines de agregar las carpetas que quieras compartir Guarda el archivo y probamos el archivo smb.conf y reiniciamos el servidor de Samba:

testparm

/etc/init.d/samba restart

Para ver archivos desde linux-- ------ir a lugares->red

----------------------

Desde Windows: Abrimos un navegador y colocamos.

smb://ip_servidor

Podemos colocar la ip del server, el nombre o su dominio.


Quotas en Debian

Quotas:

- El sistema de quotas obliga a los usuarios a mantenerse dentro de los límites de consumo marcados.
- El sistema lleva la cuenta de quotas por usuario y por sistema de archivos.
- Si tiene mas de un sistema de archivos donde los usuarios puedan crear archivos, configura la facilidad para cada sistema de archivos.

Debian y cuotas de disco:
Las cuotas de disco son muy útiles en entornos multi-usuario, donde tiene un gran número de usuarios con acceso al sistema de ficheros, ya sea porque en el sistema de registro o el uso de su espacio de archivos es de forma remota,a través de Samba o NFS. Esto le permite limitar la cantidad de espacio en disco que los usuarios consumen.

Un sistema de ficheros ext3 tiene dos recursos finitos; bloques e inodos. Usted puede limitar la cantidad de ambos. Puede especificar un límite "duro", que al usuario no se le permite superar y recibirá un mensaje de error si lo intentan. Opcionalmente, también puede especificar un límite "suave", que el usuario si podrán superar, pero sólopor un límite de tiempo. Esta cantidad de tiempo es conocido como el "período de gracia" y es generalmente una semana (7 días). Además, se pueden imponer cuotas a los usuarios individuales, así como a los grupos.

Por ejemplo:
Usted tiene tres usuarios: Joe, Bob y Jane. Joe tiene su propio proyecto de financiación, que ha cubierto la mitad del costo de la unidad de disco duro para el sistema. Bob y Jane trabajan juntos, pero para otro proyecto, y que han pagado por la otra mitad de la unidad de disco duro. Vamos a llamar a su proyecto:"proyecto-x".

Ahora puede dividir equitativamente el disco, dando la mitad a Joe, y la otra mitad a Bob y Jane, que compartirá el 50%.
Usted puede hacer esto mediante la asignación de una cuota de usuario al usuario "Joe", y a un grupo llamado "proyecto-x".
Si "Joe" supera su cuota, tendrá que limpiar algunos de sus viejos archivos (o comprar más espacio en disco). Sin embargo, si "Bob" o "Jane" superan su cuota de grupo, tendrán que decidir entre ellos la mejor manera de reducir su uso del disco.

----------------------------------------------------------------------------------------------------------------------------------------------
Instalacion y configuracion:

Instale el paquete quota:

aptitude install quota

Luego abrimos el fstab, buscamos la particion la cual queremos aplicarle las quotas sea en / o en /home y en el campo sin borra lo que esté ahi se coloca separado con comas:

,usrquota,grpquota

ejemplo:

nano /etc/fstab

/dev/sda5 / ext3 errors=remount-ro,usrquota,grpquota 0 1

Luego crear quota.user y quota.group en el directorio donde se monte la particion en este caso es en /:

touch /quota.user
touch /quota.group

Le cambiamos los permisos a lectura y escritura:
chmod 600 /quota.*

Estos archivos viviran en el directorio raíz del sistema de ficheros, y se denominan quota.user y quota.group para el usuario y bases de datos de cuota para los grupos, respectivamente. Estos archivos contienen tanto el usuario y la información de cuota de grupo, así como la información del uso de sistema de archivos.

Luego es necesario ejecutar el comando quotacheck. Sin embargo, debido quotacheck ha de determinar el uso de disco mediante la inspección de la estructura de archivos en el disco, no puede haber una actividad de escritura en el disco en el momento. De lo contrario, esto puede dañar la base de datos de cuotas. Por esta razón, se sugiere que quotacheck se ejecute en modo monousuario:

debian:~# shutdown now

Introduzca la contraseña de root, desmonte y vuelva a montar la partición donde se asignarán las quotas:

mount -o remount /

Escanee el sistema de archivos, para crear, verificar y reparar el uso en disco de los archivos de quotas:

quotacheck -avugm

ó:

quotacheck -F vfsold -c -a -v

Cualquiera de los dos comandos funciona siempre y cuando se esté como monousuario.

a: verifica archivo
v:genera una salida detallada
u: genera cuotas de usuario
g: genera cuotas de grupo
m: no remonta el sistema de archivos

F vfsold: indica al sistema que utiliza la cuota de edad VFS (versión 1) del sistema. La más reciente (versión 2) al sistema de cuotas no funciona en la instalación estándar de Debian.

-c: especifica que los archivos de base de datos de cuotas debe ser creado

Si sólo quería realizar la operación en un sistema de archivos específicos, que podría haber utilizado el siguiente comando:

debian:~# quotacheck -F vfsold -c /home

Tendrá que ejecutar el mismo comando de nuevo, esta vez con la "bandera g", si usted también desea permitir cuotas a algún grupo:

quotacheck -F vfsold -c -a -g

Verificamos los archivos:
ls -la /quota*

Una vez que haya terminado, usted puede teclear "exit" o pulse Ctrl+d para volver al modo multiusuario.

Prenda el sistema de quotas:
quotaon -avug

Los "límites de bloques" se refieren a los bloques de datos (el valor predeterminado es 1 bloque = 1k). Los "límites de archivo" se refieren al número de archivos, o nodos, que han sido consumidos. El campo "gracia" corresponde al número de días de gracia que queda antes de que el usuario quede bloqueado de su cuenta. El usuario tiene hasta ese momento para reducir su cuota por debajo del nivel de "soft".

Establecer quotas de usuario:
edquota -u usuario

Establecer quotas de grupo:
edquota -g grupo

ejemplo:
edquota -u pablo


Los campos de "bloques" y "nodos" no pueden ser editadas, están allí a título indicativo. Sin embargo, puede editar los campos duros y blandos (soft y hard). El primer par se refieren a los bloques, y el segundo a los inodos. Para nuestro ejemplo, vamos a establecer al usuario "pablo" de cuotas para que tenga 1Gb de espacio disponible en disco, y puede utilizar 1Gb adicional temporalmente si es necesario, es decir 2Gb.


Una vez que hayas realizado los cambios, puede guardar y salir. La utilidad edquota se queja si no le gustan los valores que has dado.

Recuerde que las quotas se establecen en kb.
1Mb = 1024 Kb
2048 Mb = ?Kb ------> 2097152 Kb

Si desea desactivar las cuotas:
quotaoff -avug

Verifique las quotas con:
repquota -a

Y para grupos con quotas:
repquota -ag

quota:
A diferencia de repquota y edquota, que sólo el usuario root puede hacer uso, el comando "quota" está disponible para todos los usuarios, y que les permite consultar su información de cuota actual.

$ quota

Si usted inicie la sesión con la cuenta "pablo", debe ser capaz de utilizar quota para comprobar su uso de disco:
$ quota

Al copiar un archivo en el directorio /home/pablo, podrás verificar nuevamente la cuota ($ quota) y te darás cuenta que ahora hay un asterisco ("*") al lado del número de bloques que hemos utilizado, y que hay un "6 días" por debajo del período de la cuenta "de gracia". Esto nos muestra que hemos superado nuestra cuota suave (soft), y tiene 6 días para reducir la cantidad de espacio que estamos utilizando. Si fuéramos a tratar de crear otro archivo de un poco más grande de 2Gb, superando el límite duro (hard), aparecera un mensaje de error.


Configurar DNS sencillo con bind9

A continuación le mostraré como configurar de una manera sencilla un DNS con bind9.

1- Siempre como super-usuario, primero instalamos bind9:

aptitude install bind9

2- Luego nos colocamos en el siguiente directorio /etc/bind/:

cd /etc/bind

3- Editamos el fichero resolv.conf

nano /etc/resolv.conf

tendrá algo como esto:
--------------------------------------------------
# Modified_by: NetworkManager
# Process: /usr/bin/NetworkManager
# Process_id: 3209
#
### END INFO

domain intercable.net.ve
search intercable.net.ve
nameserver 10.1.192.12
nameserver 10.1.192.13
--------------------------------------------------

y lo cambiamos para que quede de la siguiente forma:

--------------------------------------------------
domain midominio.org
search midominio.org
nameserver Ip-servidor
--------------------------------------------------

tendras que colocar el nombre del dominio que quieras y dond dice Ip-servidor obviamente es la ip de la maquina que estás configurando. Guardamos.

4- Editamos el archivo named.conf.options:

nano named.conf.options

se busca las siguientes lineas y las descomentas:

--------------------------------------------------
// forwarders {
// 0.0.0.0;
// };
--------------------------------------------------

quedaria así:

--------------------------------------------------
forwarders {
10.1.192.12;
};
--------------------------------------------------

Ésta ip pertenece al DNS superior, es decir, al DNS padre, en dado caso que algún proveedor de servicio te esté dando la conexion de internet.

5- Editamos el fichero hosts:

nano /etc/hosts

buscamos las primeras 2 lineas:
--------------------------------------------------
127.0.0.1 localhost
127.0.1.1 debian.intercable.net.ve debian
--------------------------------------------------

tendremos que cambiarlo por el nombre de nuestra máquina y el dominio que queremos, el nombre de mi máquina es "debian" por lo tanto mi archivo quedaría así, ejemplo:

--------------------------------------------------
127.0.0.1 localhost
127.0.1.1 debian.midominio.org debian
--------------------------------------------------

6- Ahora copiamos el archivo db.local con un nuevo nombre, el cual será el del dominio:

cp db.local db.midominio.org

7- Editamos el nuevo archivo db.midominio.org

nano db.dominio.org

Buscamos las siguientes lineas:

--------------------------------------------------
@ IN SOA localhost. root.localhost. (

--------------------------------------------------

la cambiamos por:

--------------------------------------------------
@ IN SOA midominio.org. hostmaster.midominio.org. (
--------------------------------------------------

tengan cuidado con el punto que se encuentra al final del nombre del dominio, no se les olvide colocarlo, luego en la línea:

--------------------------------------------------
1 ; serial
--------------------------------------------------

podemos colocar la fecha, para que en un futuro si volvemos a meternos con este archivo, tener en cuenta cual fue la ultima vez que se modificó, entonces quedaría:

--------------------------------------------------
2009280901 ; serial
--------------------------------------------------

el órden sería año+día+mes+numero de edición, como ven el "01" significa que es la primera edición que se le realiza al archivo. Luego buscamos el último ";":

--------------------------------------------------
;
@ IN NS localhost.
@ IN A 127.0.0.1
@ IN AAAA ::1
--------------------------------------------------

y se borra lo que se encuentre debajo de él y colocamos lo siguiente:

--------------------------------------------------
;
@ IN NS midominio.org.
IN A Ip-servidor
nombre-de-máquina IN A Ip-servidor
localhost IN A 127.0.0.1
--------------------------------------------------

recordemos colocarle el "." despues del nombre del dominio. Cerramos y guardamos el archivo. Con esto ya hemos configurado la resolución directa, es decir, se resuelve de nombre a ip. Pero aun falta la resolución inversa.

8- Seguimos editando el archivo named.conf.local:

nano named.conf.local

y al final del archivo añadimos lo siguiente:

--------------------------------------------------
zone "midominio.org" {
type master;
file "/etc/bind/db.midominio.org";
};
--------------------------------------------------

9- Se reinicia el demonio:

/etc/init.d/bind9 restart

10- Verificamos que este realizando la resolución directa de manera efectiva con éstos comandos:

host midominio.org

debería dar como resultado algo como ésto:

midominio.org has address Ip-servidor

de lo contrario deberás de verificar en cual de los archivos ya configurados ésta el error.

luego teclemos el segundo comando:

dig midominio.org

como resultado saldría algo como ésto:
--------------------------------------------------
; <<>> DiG 9.5.1-P3 <<>> midominio.org
;;global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 33717 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 4, ADDITIONAL: 6 ;; QUESTION SECTION: ;midominio.org. IN A ;; ANSWER SECTION: midominio.org. 604800 IN A 200.8.79.114 ;; AUTHORITY SECTION: midominio.org. 604800 IN NS 200.8.79.114 ;; ADDITIONAL SECTION: midominio.org. 604800 IN A 200.8.79.114 ;; Query time: 25 msec ;; SERVER: 200.8.79.114#53(10.1.192.12) ;; WHEN: Mon Sep 28 21:48:42 2009 ;; MSG SIZE rcvd: 229 -------------------------------------------------- 11- Ahora vamos con la configuración inversa, es decir, resuelve de ip a nombre: 11- Copiamos el fichero db.127 con un nuevo nombre. El nuevo nombre debe ser la primera cifra de la ip de nuestro servidor, ejemplo si nuestra ip es 200.8.79.114 copiaríamos el archivo así: cp db.127 db.200 12- Editamos el fichero db.200: nano db.200 buscamos las lineas: -------------------------------------------------- @ IN SOA localhost. root.localhost. ( 1 ; Serial -------------------------------------------------- Quedaria igualmente así: -------------------------------------------------- @ IN SOA midominio.org. hostmaster.midominio.org.( 2009280901 ; Serial -------------------------------------------------- borramos nuevamente despues del ultimo ";": -------------------------------------------------- ; @ IN NS localhost. 1.0.0 IN PTR localhost. -------------------------------------------------- y escribimos: -------------------------------------------------- ; @ IN NS midominio.org. ip-servidor IN PTR midominio.org. ip-servidor IN PTR nombre-de-maquina.midominio.org. -------------------------------------------------- Donde dice ip-servidor tendrán que colocar la ip pero empezando desde la ultima cifra y terminando con la segunda, la primera cifra no se coloca. Ejemplo si nuestra ip es 200.8.79.114 en el archivo colocariamos: -------------------------------------------------- ; @ IN NS midominio.org. 114.79.8 IN PTR midominio.org. 114.79.8 IN PTR nombre-de-maquina.midominio.org. -------------------------------------------------- 13- Por ultimo editamos el archivo named.conf.local nuevamente: nano named.conf.local y al final del archivo añadimos lo siguiente: -------------------------------------------------- zone "200.in-addr.arpa" { type master; file "/etc/bind/db.200"; }; -------------------------------------------------- Guardamos y listo, solo queda verificar nuevamente la resolucion esta vez con un comando más: primero: host midominio.org segundo: dig midominio.org y tercero: dig -x ip-servidor luego del último comando debería de salir algo como lo siguiente: -------------------------------------------------- <<>> DiG 9.5.1-P3 <<>> -x 200.8.79.114
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 65094
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 4

;; QUESTION SECTION:
;114.79.8.200.in-addr.arpa. IN PTR

;; ANSWER SECTION:
114.79.8.200.in-addr.arpa. 604800 IN PTR midominio.org.

;; AUTHORITY SECTION:
114.79.8.in-addr.arpa. 604800 IN NS midominio.org.

;; ADDITIONAL SECTION:
midominio.org. 604800 IN A 200.8.79.114

;; Query time: 24 msec
;; SERVER: 200.8.79.114 #53(10.1.192.12)
;; WHEN: Mon Sep 28 22:02:40 2009
;; MSG SIZE rcvd: 176
--------------------------------------------------
NO se olvide configurar el fichero /etc/resolv.conf en las maquinas cliente, de tal manera que queden igual a la configuracion del servidor.

Quedando:

domain midominio.org
search midominio.org
nameserver Ip-servidor

Y tambien el fichero /etc/hosts:

127.0.0.1 localhost
127.0.1.1 maquina-cliente.midominio.org maquina-cliente.

----------------------------------------------------
Listo ya tenemos el DNS configurado con bind9 ... =)


Configurar servidor Ejabberd

1.- Instalar el servidor

# aptitude install ejabberd

2.- Configurar ejabberd, editando el archivo ejabberd.cfg

# nano /etc/ejabberd/ejabberd.cfg

La siguiente linea indica el usuario que sera Administrador del servicio.

{acl, admin, {user, "","localhost"}}.

Donde dice "localhost" hay que colocar un dominio valido o ip, en mi caso coloque el nombre de mi maquina. Ejemplo:

{acl, admin, {user, "admin","debian"}}.

Luego modificar la linea

{hosts, ["localhost"]}.

también hay que colocar un nombre de dominio valido o ip igual que en la linea anterior, el mio lo deje así:

{hosts, ["debian"]}.

Y para dejar el idioma en español modificamos la linea:

{language, "en"}.

Y la modificamos con "es"

{language, "es"}.

Hay que recordar que deberás tener tu navegador en español para que la aplicación web de Ejabberd pueda verse en el mismo idioma.

Salimos y guardamos el archivo.

3. Levantar el servicio y crear una cuenta de administrador

Debemos iniciar el servicio antes, para poder crear una cuenta de administrador:

# /etc/init.d/ejabberd restart

Ahora procedemos a crear una cuenta de administrador denominada "admin" por que ese fue el que colocamos en el archivo de configuración.

# ejabberdctl register
(username) (server) (password)

ejemplo:

# ejabberdctl register admin debian 123

4. Administrando el servicio

Ya con una cuenta de gestión creada y el servicio corriendo accedemos a la interfaz de administración en el navegador introduciendo lo siguiente en la barra url del navegador:

http://debian:5280/admin

Pedirá el usuario y la contraseña, en nuestro caso será:

Usuario: admin@debian
Password: 123

Y listo ya tenemos una interfaz igual a esta:


Luego podremos añadir mas usuarios a través de ésta interfaz y monitorear los mismos.

Luego para loguearse con alguna de las cuentas creadas podremos usar alguna aplicación informática para mensajería instantánea flexible y sistema multiprotocolo extendible, las cuales pueden comunicarse con protocolos como ICQ, AIM, Gadu-Gadu, IRC, MSN Messenger, Yahoo! Messenger y por supuesto Jabber.

Como por ejemplo kopete:



Instalar servidor NFS (Network File System)

Es un Sistema de archivos de red, permite a los hosts remotos montar sistemas de archivos sobre la red e interactuar con esos sistemas de archivos como si estuvieran montados localmente. Esto permite a los administradores de sistemas consolidar los recursos en servidores centralizados en la red.

Configuración del servidor:

Para comenzar instalamos los siguientes paquetes, en nuestro terminal y como root:

aptitude install nfs-kernel-server nfs-common portmap

Una vez instalado esto debemos modificar el archivo /etc/exports donde está la configuración de los sistemas de archivos que queremos exportar:

nano /etc/exports

Mi archivo por ejemplo tiene esto:

----------------------------------------------------------------------------
GNU nano 2.0.7 Fichero: /etc/exports

# /etc/exports: the access control list for filesystems which may be exported
# to NFS clients. See exports(5).
#
# Example for NFSv2 and NFSv3:
# /srv/homes hostname1(rw,sync,no_subtree_check) hostname2(ro,sync,no_sub$
#
# Example for NFSv4:
# /srv/nfs4 gss/krb5i(rw,sync,fsid=0,crossmnt,no_subtree_check)
# /srv/nfs4/homes gss/krb5i(rw,sync,no_subtree_check)
#
-----------------------------------------------------------------------------

Al final del archivo, es decir, después del ultimo numeral (#) colocamos:

/home 192.168.0.0/24(rw)

Lo que dice ahi es que voy a compartir el directorio /home para toda mi red con permisos de lectura-escritura (rw). Uds deberan de colocar la ip de la red en donde se encuentren. Guardamos los cambios y reiniciamos nfs.

/etc/init.d/nfs-kernel-server restart

Si en dado caso queremos ser mas específicos, es decir, si queremos que una maquina determinada sea la unica que pueda exportar el sistema de archivo se colocaria su ip, ejemplo:

/home 192.168.27.130(rw)

En este caso se va a compartir el directorio /home para la maquina cuya ip es 192.168.27.130 con permisos de lectura-escritura(rw).Guardamos los cambios y reiniciamos nfs.

Además en caso de querer compartir un filesystem como solo lectura podríamos cambiar (rw) por (ro) en el archivo /etc/exports del servidor NFS.

Configuración del cliente:

El cliente es quien monta el sistema de archivo compartido, en él instalamos los siguientes paquetes:

aptitude install nfs-common portmap

Luego creamos la carpeta donde se motara el filesystem:

mkdir /media/nfs

Ahora sólo necesitamos montar el filesystem compartido, para eso:

mount -t nfs ip_del_servidor:/home /media/nfs

Donde dice ip_del_servidor obviamente ira la ip o el domino de la maquina dond montaron el servidor NFS. Hecho esto podran observar en el escritorio el filesystem montado.

Y Listo Calisto =)


Contraseña para el GRUB

GRUB (GRand Unifier Bootloader) o gestor de arranque es lo primero que se carga cuando se inicia la computadora. Permite tener diferentes sistemas operativos, y diferentes versiones de ellos, en el mismo disco duro. Por ejemplo podemos tener el Innombrable y GNU/Linux en la misma computadora, GRUB se cargará y nos mostrara un menu permitiéndonos elegir cuál iniciar.

El gestor de arranque GRUB permite hacer operaciones muy sensibles, como por ejemplo: modificar el dispositivo de arranque teniendo un live-cd o arrancar sin tener la contraseña de super-usuario. Para evitar esto, a parte de proteger el Bios con una password también tienes la posibilidad de protoger el GRUB con su propia contraseña.

Para ponerle una contraseña debes hacer lo siguiente (como root):

grub-md5-crypt

Te pedirá una contraseña y su verificación, el resultado será una serie de caracteres como estos:

$1$ihlUA/$PZcNslqYGGlZURz5pfjMR/

Los copias o lo guardas en un archivo.

Ahora para prevenir haces una copia de seguridad del fichero menu.lst antes de editarlo. Sigues como super usuario:

cp /boot/grub/menu.lst /boot/grub/menu.lst.copia

Luego editas menu.lst:

gedit /boot/grub/menu.lst

Busca la siguiente linea:

## ## End Default Options ##

y debajo de la entrada del grub que deseas colocarle la contraseña escribes:

password --md5 caracteres

Ejemplo:

## ## End Default Options ##

title Debian GNU/Linux, kernel 2.6.26-2-amd64
password --md5 $1$ihlUA/$PZcNslqYGGlZURz5pfjMR/
root (hd0,2)
kernel /boot/vmlinuz-2.6.26-2-amd64 root=/dev/sda3 ro quiet vga=771
initrd /boot/initrd.img-2.6.26-2-amd64

title Debian GNU/Linux, kernel 2.6.26-2-amd64 (single-user mode)
root (hd0,2)
kernel /boot/vmlinuz-2.6.26-2-amd64 root=/dev/sda3 ro single
initrd /boot/initrd.img-2.6.26-2-amd64

Por ultimo guardas y cierras. Cuando reinicies, cargue el GRUB y selecciones la entrada te pedirá la contraseña.
Si queremos restringir el acceso a mas de un elemento del menú de GRUB, basta con añadir dicha linea después del título de cada entrada.


Instalar impresora HP (Ejecutando hp-setup) Debian

Todos tenemos la necesidad de una impresora, para el caso de las HP tenemos la OpenPrinting Database donde podemos encontrar todos y cada uno de los modelos con soporte para GNU/Linux y los pasos a seguir para configurarlos, sin embargo, en mi caso tengo una HP Deskjet D4260, y la instalación de la misma resulta bastante fácil, empecemos; Existen algunos paquetes como requisito previo uno de ellos son los paquete para usar CUPS, que no es mas que un manejador de trabajos de impresora, colas de trabajos, búsqueda de impresoras en red, en fin, controla las impresoras!.
Los paquetes son los siguientes (como superusuario los instalamos):
aptitude install cups cups-client cups-common cupsys cupsys-client
En algunos casos es mas que suficiente con tener estos paquetes, y te permitirá realizar trabajos de impresión, en el mio si fue asi =), en otros casos tocará instalar lo siguiente:
aptitude install hplip hplip-gui
Cabe destacar que en algunos casos el sistema reconocera automaticamente la impresora una vez que la conectes via USB, de lo contrario tendrán que seguir los siguientes pasos.
En el terminal hacemos (seguimos como super usuario):
hp-setup
Y seguiremos los pasos como se muestran en las siguientes pantallas:
Elegir tipo de conexión: Escogemos Bus Serie Universal (USB).
Presionamos Next>
En este punto se nos muestra el modelo de nuestra impresora, en caso tal que no sea evidente, debemos buscar manualmente el dispositivo.
Presionamos Next> Ahora escogemos el archivo PDD y escogemos el primero de la lista
Presionamos Next> Le asignamos nombre, ubicación y descripción, en mi caso los dos últimos los deje en blanco:
Presionamos Next> El paso final es imprimir una pagina de prueba al presionar en Finish.
Listo ya tenemos nuestra impresora, ¡a gastar tinta!