viernes, 24 de octubre de 2014

Crontab linux(slackware)

Hola hoy veremos el crontab:

Crontab 
Crontab es un simple archivo de texto que guarda una lista de comandos a ejecutar en un tiempo especificado por el usuario. Crontab verificará la fecha y hora en que se debe ejecutar el script o el comando, los permisos de ejecución y lo realizará en el background. Cada usuario puede tener su propio archivo crontab, de hecho el /etc/crontab se asume que es el archivo crontab del usuario root, cuando los usuarios normales (e incluso root) desean generar su propio archivo de crontab, entonces utilizaremos el comando crontab.
Crontab es la manera mas sencilla de administrar tareas de cron en sistemas multiusuario, ya sea como simple usuario de sistema o usuario root.

Veamos un ejemplo de crontab: 

pondremos el comando crontab -e y nos aparecera lo siguiente: 
 
 Al principio no nos aparecera nada pero modificaremos este archivo agregando esto 
agregaremos 5 atributos de la siguiente manera: 
s
 esto quiso decir que ala 5 con 1 minuto nos mandara saludos y nos dira que somos geniales
bien podemos modificar a la hora que queramos por ejemplo : 

  • m corresponde al minuto en que se va a ejecutar el script, el valor va de 0 a 59
  • h la hora exacta, se maneja el formato de 24 horas, los valores van de 0 a 23, siendo 0 las 12:00 de la medianoche.
  • dom hace referencia al día del mes, por ejemplo se puede especificar 15 si se quiere ejecutar cada dia 15
  • dow significa el día de la semana, puede ser numérico (0 a 7, donde 0 y 7 son domingo) o las 3 primeras letras del día en inglés: mon, tue, wed, thu, fri, sat, sun.
  • user define el usuario que va a ejecutar el comando, puede ser root, u otro usuario diferente siempre y cuando tenga permisos de ejecución del script.
  • command refiere al comando o a la ruta absoluta del script a ejecutar, ejemplo: /home/usuario/scripts/actualizar.sh, si acaso llama a un script este debe ser ejecutable
 listo:)

Navegacion en texto (slackware)

Hola hoy veremos la navegacion que tiene linux(slackware) en modo
consola

El navegador que tiene linux(slackware) se llama
Lynx
Es un navegador web y cliente de gopher en modo texto. Este navegador se encuentra en el directorio
/etc/httpd al darle un ls vemos los archivos que tiene, bien este navegador incluye una guia de usuario. Tambien hay otros navegadores pero bien este es uno de los mas conocidos echemos un vistazo:

El httpd-conf:

Este archivo es el que ocupa los servidores y como poder entrar a estos y crear nuevos servidores
bien el navegador lynx esta de la siguiente manera:

Este navegador es algo util de utlizar ya que si no tienes buena conexion de internet
bien este navegador utiliza muy pocos kb:)

Ahora veremos un ejemplo de como agregar html en localhost

Iremos a la carpeta /srv/httpd/htdocs

al dar ls nos aparece un archivo index.html editaremos ese archivo poniendo
vim index.html y agregaremos lo siguiente:



despues estando en cualquier lugar poniendo lo siguiente lynx localhost nos aparecera de esta manera:


Listo:)

Configuracion del sistema linux (slackware)

Hola ahora veremos la configuracion que tiene el sistema
primero que nada nos tenemos que meter a la carpeta /etc/

en etc encontraremos muchas configuraciones del sistema la cual la mas principal veremos el

init
Variables de control de la forma en que inicia el sistema.
/etc/inittab

usuario@Linux:~$ vi /etc/inittab 

Tendremos las configuracion del arranque de nuestro sistema:

 

 Vemos que son las siguientes:
0: Apaga
1: Solo un usuario ala vez
2: No se usa
3: Modo multi-usuario
4: Es el modo grafico
5: Variacion de grafico
6: Reiniciar


Asi como tenemos el inittab hay otros que se pueden modificar como lo son el rc.S , rc.d , rs.M

el rc.S nos sirve para ver los archivos que cargan al inicio del arranque del sistema como lo vemos
en esta imagen:

V

 Vemos que tiene que archivos va a cargar y cuales no , tambien tenemos el rc.M

rc.M
 Este mostrara los segundos archivos que se podran cargar pero solo lo hara en modo multiusuario(root) 


Todos estos servicios se encuentran en la carpeta de etc/rc.d al darle un ls nos apareceran estos 
pocos que acabamos de mencionar bien hay muchos mas servicios que nos ofrece slackware 


Listo:)

For if's y case anidados en linux

Hola hoy veremos algunos casos de for ifs y case anidados
para empezar la sintaxis del for se construye de la siguiente manera:


 for: Ejecuta una serie de comandos un numero determinado de veces.


La sintaxis de esta construccion es la siguiente:
for nombre [in lista]
do
   comandos que pueden utilizar $nombre
done
 
 
 
para despejar mejor las dudas veamos un ejemplo de for
 
primero crearemos un archivo que se llame for.sh 
despues realizaremos lo siguiente 

A
 
 
le damos guardar con :x despues de guardarlo le daremos permisos de ejecucion 
chmod+x for.sh y al ejecutar este script nos tendra que aparecer de la siguiente manera: 


usuario@Linux:~$ ./for.sh 
1
2
3
4
5
6
7
8
9
10


Case
 
Ejecuta una o varias listas de comandos dependiendo del valor de una variable. 
La sintaxis de esta construccion es la siguiente:
case expresion in
     caso_1 )
        comandos;;
     caso_2 ) 
 comandos;;
     ......
esac 
 
Ahora veamos un ejemplo de esto: 
primero crearemos case.sh y agregaremos lo siguiente:
 
Tendremos como resultado al darle permisos de ejecucion chmod+x case.sh el siguiente:
 
 

usuario@Linux:~$ ./case.sh
 
Dame un numero: 1 
UNO 
 
si ponemos 2 imprimira DOS O TRES 
si ponemos UNO impimira 1 
si ponemos DOS o TRES imprimira 2 o 3 
y un * imprimira que no entiendo 
 
 
While
Ejecuta una seria de comandos mientras que una determinada condicion sea cumpla.
 
La sintaxis de esta construccion es la siguiente:
while condicion
do
  comandos
done 
 
Para el ejemplo crearemos el siguiente script: 
 
 Despues de darle permisos de ejecucion nos tendra que arrojar lo siguiente 
 
 
usuario@Linux:~$ ./while.sh 

Dame n: 2 

Nos dara la tabla del 2 
2 * 1 = 2 
2 * 2 = 4
2 * 3 = 6 
2 * 4 = 8
2 * 5 = 10
2 * 6 = 12
2 * 7 = 14
2 * 8 = 16
2 * 9 = 18
2 * 10= 20
 
Listo:) 

 
 
 
 
 

Condiciones en linux

Hola hoy veremos condiciones en linux las condiciones en bash existen estas construcciones para controlar el flujo de ejecucion de un script:
  • if/else: Ejecuta una serie de comandos dependiendo si una cierta condicion se cumple o no.
  • for: Ejecuta una serie de comandos un numero determinado de veces.
  • while: Ejecuta una seria de comandos mientras que una determinada condicion sea cumpla.
  • until: Ejecuta una serie de comandos hasta que una determinada condicion se cumpla.
  • case: Ejecuta una o varias listas de comandos dependiendo del valor de una variable.
  • select: Permite seleccionar al usuario una opcion de una lista de opciones en un menu.
La mayoria de condiciones utilizadas con estas construcciones son comparaciones de cadenas alfanumericas o numericas, valores de terminacion de comandos y comprobaciones de atributos de ficheros. Antes de seguir viendo como estas construcciones se pueden utilizar, vamos a ver como las condiciones se pueden definir.

If

La sintaxis de esta construccion es la siguiente:
if "condicion"
then
  "comandos"
[elif "condicion"
then
  "comandos"]
[else
  "comandos"]
fi
Como ya hemos dicho, podemos comprobar los valores de terminacion de un comando, y comparar cadenas alfanumericas/numericas y atributos de ficheros. Nada mejor que unos ejemplos para aclararnos las ideas.

Haremos un script en bash viendo si el usuario esta o no en root
primero crearemos un archivo que se llamara if.sh

usuario@Linux:~$ vi if.sh 



Despues de crear este archivo agregaremos lo siguiente:

 guardamos el archivo :x y despues le damos permisos de ejecucion
chmod+x if.sh al ejecutarlo con el comando

usuario@Linux:~$ ./if.sh 
 
 
Nos tendra que aparecer si estamos en un usuario normal 
usted no esta en casa el nombre del usuario que esta ingresado 

y si en caso de estar en root dira sea usted bienvenido root 
y listo:)

domingo, 12 de octubre de 2014

Variables de Entorno

Hola, hoy hablaremos de las variables de entorno en linux

Variables de Entorno
Las variables de entorno forman un conjunto de valores dinámicos que normalmente afectan el comportamiento de los procesos en una computadora.


Donde se generan las variables de usuario cada usuario tiene un PROFILE

ponemos el comando  vi /etc/profile y nos redirigemos ah esto :

asi:

 
usuario@Linux:~$ vi/etc/profile




para ver los profiles y las variables de entorno le ponemos
nos vamos a la carpeta profile


usuario@Linux:~$ cd /etc/profile.d
y aparecera asi despues ls






.bash_profile es el el mas importante. Es leido y los comandos incluidos en el, ejecutados, cada vez que el usuario entra en el sistema. Cualquier cambio hecho en este fichero no tendra efecto hasta que salgamos y entremos en el sistema de nuevo

Este fichero comienza estableciendo ciertas funciones auxiliares y algunos parámetros básicos. Especifica varios parámetros del historial de bash y, por razones de seguridad, desactiva el almacenamiento de un fichero de historial permanente para root. También establece un símbolo del sistema por defecto. Entoces invoca a pequeños guiones de propósito único en el directorio /etc/profile.d para proporcionar una mayor inicialización. 



podemos crear cualquier archivo no mas para ejemplo de las variables de entorno en este caso
usaremos el ejemplo del hola.sh

usuario@Linux:~$ vi hola.sh
 


despues de darle permisos chmod +x hola.sh y ejecutandolo nos tendra que aparecer
usuario@Linux:~$  
Hola usuario
te encuentras en: /home/usuario
te dejo esta frase: 
y el comando fortune mostrara la frase en ingles y listo:) 

Programacion BASH

Para empezar crearemos un archivo

ponemos el comando vi seguido del nombre del archivo en este caso se llamara hola.sh entonces el comando sera asi

usuario@Linux:~$ vi hola.sh
 
y pondremos esto: 
 
  
esto de acontinuacion fue un ejemplo sencillo de la programacion BASH en linux donde ejecutando el archivo .sh nos aparecera este es mi primer programa en linux 
Para un ejemplo mas detallado volveremos a crear otro archivo que se llamara 

usuario@Linux:~$ vi hola2.sh
 
y agregaremos esto en el script de bash 
 
 

 despues de haber guardado el archivo con :x le daremos permisos de ejecucion 
con el comando chmod +x (el nombre del archivo)
 
en este caso seria asi 
usuario@Linux:~$ chmod+x hola2.sh 
 
y saldra asi despues ejecutaremos el programa ./hola2.sh
 
 

y el programa correra con lo programado en bash 
Dime tu nombre: Luis
muy bien Luis ahora dime tu edad: 21 
21 años son muchos 

algo asi tiene que aparecer al final 

Listo:)
 

Redireccionamiento LINUX

Hola aprenderemos a redireccionar :)

Entrada y salida estándar
Muchos comandos UNIX toman su entrada de algo conocido como entrada estándar y envían su
salida a la salida estándar (a menudo abreviado como "stdin" y "stdout"). Además existe una salida
especial para los mensajes de error de cada programa (stderr).
 
Salida
  •  Salida estándar stdout 
En el cual este en comandos puede darse de la siguiente manera
    • ">" .- El cual nos ayuda a mandar la información hacia cualquier lugar que nosotros queramos mandarla
    • ">>" .- La cual hace la misma función que la anterior pero esta nos es utilizada para que no borre lo que nosotros ya hemos puesto ("lo veremos mas adelante como funciona"). 
Salida error stderr
Esta es la misma simbologia solo que esta nos puede ser util para que nos diga el error que se pudo haber generado
  • Entrada
    • Estas vienen siendo como ya había comentado la facilitación de los datos automáticos esta tiene esta simbología
      • "<" .- Que nos ayuda para que obtenga los datos de cualquier lugar que seleccionemos.
 EJEMPLOS
 
 usuario@Linux:~$ man cat > leeme.txt

como se puede apreciar, en vez de escribir la información acerca del comando cat en pantalla, el comando crea un archivo totalmente nuevo en el directorio actual.

2. Añadir el contenido de la salida a un archivo ya existente (o crearlo de no existir). En este caso se utilizan dos signos >> antes del nombre del fichero. Ejemplo:

usuario@Linux:~$ pwd >> leeme.txt

Como se puede observar, el comando añadirá la ruta del directorio actual de trabajo al final del archivo informacionCat en vez de escribir la información del directorio actual en pantalla.

Para redireccionar la entrada estándar, se utiliza el operador seguido del nombre de fichero o dispositivo de donde tomará la información. Ejemplo:

usuario@Linux:~$ more < leeme.txt


 
 

jueves, 11 de septiembre de 2014

Vinculos en slackware

Para crear un vinculo entramos a root
y le ponemos el comando

ln /etc/fstab fstab2(elnombre de fstab2 es opcional)
 y ese fue el nombre de fstab


le ponemos vi fstab2 para modificarlo
y ponemos abajo #prueba de vinculos fuertes

unlink fstab es para borrar el vinculo


Para vinculos suaves se pone

ln -s /etc/fstab

como tambien se puede hacer a una carpeta tambien se puede
hacer a un archivo de texto o algun otro archivo.

el vinculo suave lo podemos borrar con

rm y el nombre del vinculo
rm fstab

Montaje en slackware

Para la particion de disco primero le damos

ls /dev/sd*
Es para ver toodos los sda que tenemos

cfdisk /dev/sdb
Este comando es para particionar el disco deseado en este caso el disco que particionaremos sera
sdb. 

Primero seleccionamos en new despues primary
y le damos enter y selecciona el espacio
despues de configurar eso le damos write para guardar
enter y le ponemos yes y enter y le damos quit y estara listo





mkfs
Para darle formato al discoduro


ponemos el comando
mkfs.ext3 -L casa /dev/sdb1
y le dara el formato y las particion del disco duro se realizara


le ponemos cd /mnt/
y nos aparecera
root@Aycko:/mnt# que nos indica que estas en esa carpeta
y despues vamos a crear un directorio que se llame temp

asi

root@Aycko:/mnt# mkdir temp


y ya se creara despues entramos a temp

con cd temp/ y ya despues de entrar al directorio
daremos
echo"vamos a ocultar esta info" > y la vamos a mandar a un archivo que se llame
info.txt

y le damos cat info.txt
y veremos lo que escribimos en el echo


Para montar el disco pondremos el comando
mount en la carpeta mnt

mount -t ext3 /dev/sdb1 temp
y se montara en el directorio el disco

le damos umount temp/
y se borrara el montado


cd temp/
y luego la entramos a cd /home/
ls -l y nos saldra los permisos que tiene cada usuario incluyendo a root

mv ftp/ /mnt/temp
para mover y se movera a la carpeta temp

ls -l en la carpeta temp y ya aparecera la carpeta ftp que acabamos de mover

movemos
mv ayckobarriga/ /mnt/temp/

y la carpeta del usuario se movio a la carpeta temp


despues entramos a la carpeta etc
cd etc/

y copiaremos el respaldo que tiene de los archivos

cp fstab fstab.old
y se hara un respaldo de la informacion

despues le ponemos vi sftab y editaremos y pondremos shift+A
y la linea sera hasta al final y entraremos al modo de edicion
de ese archivo

despues editaremos una linea y pondremos

/dev/sdb1    /home   ext3    defaults      1     2

y le daremos esc para estar en modo comando y despues
:x para guardar


despues montaremos

mount /home/
y ya estaran los archivos actuales , los que estaban ocultos al
hacer el monteo

despues

su - ayckobarriga
y entraremos al usuario pero estaremos en otro disco duro los archivos
de ese usuario pero estara en el directorio home


reiniciamos la maquina y no cambio nada y el usuario esta normal
le ponemos

df -h para ver el espacio que tiene

y listo

Permisos en slackware

Hola:)
para poder darle permiso a un usuario nos logeamos como root

despues entramos a la carpeta de home de root y creamos el archivo para poder interactuar con el
para poder saber mejor sobre los permisos quedaria asi



despues de crear el archivo veremos una comprobacion si el archivo se ah creado
ponemos el comando ls -l

asi en mi caso

root@Aycko:/home# ls -l
y nos quedara asi

vemos que si se ah creado entonces le daremos cambio en los permisos para que un usuario
pueda leer este archivo y sobreescribir en el como root es el propietario de este archivo tambien
podemos cambiar a que un usuario sea el propietario

 para cambiar en los permisos utilizaremos el comando:


 chmod
Cambia el permiso o el modo del archivo y tenemos que especificarle como se cambian
esos permisos

como aqui vendremos el ejemplo de como cambiarlo :

para que pueda escribir en el archivo se utiliza este comando

cat archivo.txt
Es para ver el archivo que se pueda leer
en este comando podemos escribir lo que deseas pero solo podra el usuario
que tenga permiso de escribir y de leer a la vez ejemplo:



vi leeme.txt para leer
este comando solo se podra utilizar para leer y sera utilizado
para que el usuario que tiene permisos para leer solo poder leer




Para cambiar de grupo este archivo pondremos el siguiente comando:

chgrp bloguers archivo.txt


ponemos ls -l y vemos que el archivo el propietario es root y pertenece a los usuarios
que estan dentro del grupo bloguers y solo los que estan en ese grupo puedan leer el archivo



chown
Este comando cambia de propietario el  archivo  que acabamos de crear poniendo asi


y vemos que al poner ls -l

aparece que el propietario del archivo ya no es root si no ayckobarriga que es un usuario normal


chmod u+s /usr/bin/top
Quita la proteccion

chmod u-s /usr/bin/top
Vuelve la proteccion a la normalidad

miércoles, 3 de septiembre de 2014

crear un usuario non-root en slackware

Como crear un usuario en slackware

En slackware para poder crear un usuario dentro aparte del superusuario root , primero tenemos que entrar al superusuario root para poder agregar un usuario normal 

Luego de iniciar como root, es posible comenzar con la configuración:

agregamos el comando adduser para empezar a agregar el nuevo usuario

adduser



 despues nos dice que ese usuario tiene grupos que son:  audio cdrom floppy plugdev video power netdev lp scanner 
despues de darle enter nos aparecera esto


en donde configuraremos la infomacion del usuario y bien sale todos los permisos que va a tener y con que shell se logeara este usuario y en que grupos pertenece le damos que el usuario nunca expire su directorio sera /home/pepe y ya despues creara el usuario apareciendo esto: 


donde por ultimo el usuario pepe a sido agregado satisfactoriamente 

Userdel

Para borrar un usuario solo logeados como el superusuario 'root' le damos el comando

userdel y enseguida el nombre del usuario tal es el caso 

deluserpepe y nos aparecera asi: 

 en ese momento el usuario pepe fue eliminado del sistema .

Despues para verificar los permisos que ese usuario tendra. 

Para verificar los permisos que tiene cada usuario incluyendo al
superusuario 'root' 

logeado como root 

root@Aycko:-# visudo , y nos aparecera asi:


Nos saldra como un tipo manual para ver que usuarios tienen permisos
a la hora de ejecutar el comando y agregar permisos 


vi etc/passwd

 El contenido del fichero /etc/passwd determina quien puede acceder al sistema de manera legitima y que se puede hacer una vez dentro del sistema. Este fichero es la primera linea de defensa del sistema contra accesos no deseados. Debe de mantenerse escrupulosamente y libre de errores y fallos de seguridad. En el tenemos registrados las cuentas de usuarios, asi como las claves de accesos y privilegios.

Una linea ejemplo en este fichero al ejecutar esto 
root@Aycko:-# vi etc/passwd nos saldra esto: 




vi etc/group 

El archivo /etc/group contiene los nombres de los grupos UNIX definidos en el sistema y una lista de sus miembros. Hay una línea por cada grupo. Los campos están separados por ":".

y un ejemplo al ejecutar este comando: 


root@Aycko:-# vi etc/group   
aparecera esto: 


 donde cada linea contiene: 
nombre del grupo: algunos sistemas piden 8 caracteres o menos.
contraseña encriptada: histórico, no se usa. El comando newgrp no cambia el grupo por defecto de un usuario si su nombre no está listado en el grupo al que quiere cambiar, aún cuando este campo esté en blanco (lo usual).
número GID: número único identificador del grupo. Para mantener coherencia en un sistema heterogéneo es recomendable no usar como grupo por defecto de los usuarios un grupo del sistema o del proveedor (por ejemplo, users, o staff), sino un grupo creado por el administrador (por ejemplo, usuarios), ya que diferentes sistemas pueden asignar diferente GID a los mismos grupos del sistema.
lista de integrantes: nombres de login de los integrantes del grupo separados por comas, sin blancos.

vi etc/shadow 

El archivo /etc/passwd las contraseñas encriptadas, una línea por usuario; solo es visible al supervisor. Provee además información relativa a cambio de contraseñas y expiración de la cuenta. 

ejemplo de al ejecutar este comando seria : 

root@Aycko:-# vi etc/shadow

nos aparecera esto: 

 
 esto seria todo lo esencial para poder crear bien un usuario