Taller 4 - Centos 7
Taller 4 - Centos 7
Taller 4 - Centos 7
$> fechita
Borrando archivo original
$> rm -f /usr/bin/fecha
Ejecutando fechita, vemos que an funciona
$> fechita
Listando enlace
$> ls -l /usr/bin/fechita
Enlace de Directorios
$> ln -s /usr/bin /programas
$> ls -l /
Comandos de Visualizacin y extraccin de informacin de archivos
################################################################################
###############
cat
tac
cut
ion
grep
egrep
s
fgrep
tail
head
more
less
wc
sed
tr
pr
Redireccin y Tubera:
-------------------------------------------------------------------------------------->
Redicciona la salida estndar a un archivo, sobreescribindolo si existe
>> Redicciona la salida estndar a un archivo, aadiendo al final del mismo
<
Redirecciona la entrada estndar desde un archivo
| (Tuberia, concatenando comandos). permite combinar las salidas estndar de 2
o ms
comandos
---------------------------------------------------------------------------------------Ejercicios
---------------$> cat /etc/passwd
Muestra el contenido de un archivo sin pausa
$> tac /etc/passwd
Muestra el contenido de un archivo sin pausa pero al reves,
lo mismo que cat pero al reves
$> more /etc/services
Muestra un archivo con pausa por pagina, enter para seguir avanzando
$> less /etc/services
Muestra un archivo en modo interactivo
Su principal uso es para visualizar archivos grandes como los logs
$> less /var/log/messages
Visualiza los logs del sistema
$> tail /etc/passwd
Muestra las ultimas 10 lineas de un archivo
$> tail -1 /etc/passwd
Muestra la ultima linea de un archivo
$> tail -5 /etc/passwd
Muestra las ultimas 5 lineas de un archivo
$> tail -f /var/log/messages
Muestra en forma interactiva los cambios en las ultimas lineas
de un archivo: ctrl+c para salir
Sirve para ver los logs en tiempo real
$> tail -f /var/log/squid/access.log | grep pepito
Este ejemplo me mostrara la navegacin del usuario pepito en
tiempo real
$> cat /etc/services | less
visualiza el contenido del archivo /etc/services y el resultado
se concatena en less
$> less /etc/services
Tiene el mismo resultado que el comando anterior
$> cat -n /etc/services | less
Lo mismo que los archivos anteriores pero mostrando los numeros de
linea
$> cat /etc/hosts /etc/redhat-release
Concatena la visualizacion de los dos archivos en una sola salida
por el stdout (pantalla)
$> cat>archivo
hola mundo
linux es chevere
ctrl+c
usado de esta forma cat acta como un editor de texto
$> cat archivo
Muestra lo que se escribio anteriormente
$> cat /etc/passwd > passwords
Creando archivo a partir de la salida estandar
$> cat /etc/group >> passwords
Aade al final del archivo
$> grep imap /etc/services ; echo hola
Filtra por palabra la visualizacion del archivo ";" se usa para
$> pr /etc/services
Visualiza en formato de impresion
$> pr /etc/services | less
$> pr /etc/services > /dev/lp0
Impresion del archivo /etc/services lp0 es el puerto paralelo
Expresiones Regulares:
------------------------------------------------------------------*
--> 0 o mas coincidencias
+
--> 1 o mas coincidencias
?
--> una coincidencia
{1,}
--> equivalente a +
{0,}
--> equivalente a *
{1}
--> equivalente a ?
{2,5}
--> de 2 a 5 coincidencias
^
--> que comienza
$
--> que termina
[a-z]
--> solo letras minusculas
[A-Z]
--> solo letras mayusculas
[a-zA-Z]
--> solo letras
[a-zA-Z]
--> alfabeto espaol
[0-9]
--> solo numeros
( )
--> bloque de expresiones
(exp1 |exp2)
--> coincidencia de exp1 o exp2
[^exp]
--> negacion de la expresion
\
--> caracter de escape
.
--> cualquier caracter
$> grep alumno /etc/passwd
Muestra todas las lineas en el fichero /etc/passwd que contengan la
expresion alumno
$> grep -v alumno /etc/passwd
Filtra las lineas que no contengan la expresion alumno
$> grep "^a" /etc/passwd
Busca las lineas que comienzan con a
$> egrep "[0-9]" /etc/hosts
Acepta un mayor conjunto de expresiones regulares, filtra las lineas
que contengan numeros
$> fgrep alumno /etc/passwd
Filtra por palabras no por expresiones regulares, es ms rpido que
grep y egrep
$> fgrep -R alumno /etc 2>/dev/null
Buscamos la palabra alumno en cualquier archivo del /etc direccionando la salida
de error al /dev/null
Ejercicio: Arma una expresion regular para validar numeros de ips
Solucion:[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}
$> egrep -R "[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}" /etc 2>/dev/null
Ejercicio: Escribe una expresion regular para validar emails en
################################################################################
########################
Archivos importantes de usuarios, grupos y contraseas
-------------------/etc/passwd
(lista de usuarios)
/etc/group
(lista de grupos)
/etc/shadow
(lista de contraseas de usuarios)
/etc/gshadow (lista de contraseas de grupos)
Crear usuarios
-------------crear un nuevo usuario, su directorio de trabajo y su grupo igual al nombre de u
suario
$> useradd -md /home/tuxito tuxito
crear o cambiar la contrasea de un usuario
$> passwd tuxito
* Plantilla de los home directory
--------------------------------------------------------Cuandro creamos un usuario; el home directory del mismo
se crea en base a la plantilla de directorio /etc/skel
Ej: al ejecutar el useradd -md /home/tuxito tuxito
es como si hubiese ejecutado:
$> cp -R /etc/skel /home/tuxito
$> chown -R tuxito.tuxito /home/tuxito
Ahora nos logueamos como tuxito
$> su - tuxito
mostrar informacin del usuario actual
$> id
salir de la sesion actual
$> exit
$> id
crear usario linuxero con descripcion, grupo principal y grupos adicionales,
as como su intrprete de comandos
$> useradd -md /home/linuxero -c "linuxero fanatico" \
-g users -G video,audio -s /bin/bash linuxero
$> passwd linuxero
$> grep linuxero /etc/passwd
linuxero:x:1003:100:linuxero fanatico:/home/linuxero:/bin/bash
Donde:
linuxero = nombre del usuario
x
= la clave del usuario esta en /etc/shadow
1003 = uid del usuario
100 = gid del usuario
linuxero fanatico = descripcin
/home/linuxero
= directorio de trabajo del usuario
99999
99
indica que el password puede permanecer sin cambiar por much
os aos)
7
= El nmero de das de alerta al usuario antes que su clave expire
(7 es una semana)
= Nmero de das que se deshabilitar la cuenta, una vez que expire
el password
= Nmero de das desde la era Unix que la cuenta ser deshabilitada
= Campo reservado para futuro uso
Opciones del passwd para cambiar las opciones de la contrasea
#################################################################
$> passwd --help
-d, --delete
delete the password for the named account (root only)
-l, --lock
lock the named account (root only)
-u, --unlock
unlock the named account (root only)
-x, --maximum=DAYS
maximum password lifetime (root only)
-n, --minimum=DAYS
minimum password lifetime (root only)
-w, --warning=DAYS
number of days warning users receives before password
expiration (root only)
-i, --inactive=DAYS
number of days after password expiration when an accou
nt becomes disabled (root
only)
Ejemplo:
Modificamos la expiracion de contrasea del usuario linuxero a 30 das
$> passwd -x 30 linuxero
Verificamos el cambio
$> grep linuxero /etc/shadow
Bloqueamos el login del usuario linuxero, deshabilitando su contrasea
$> passwd -l linuxero
Verificamos el cambio
$> grep linuxero /etc/shadow
Desbloqueamos el login
$> passwd -u linuxero
Modificar usuarios
--------------------$> grep tuxito /etc/passwd
$> usermod -c "tuxito hacker" tuxito (modificamos a sus usuarios)
$> grep tuxito /etc/passwd
$> vim /etc/passwd (modifica el archivo de usuario)
Borrar usuarios
--------------------$> userdel linuxero (borra el usuario pero no su directorio de trabajo)
$> userdel -r tuxito (borra el usuario incluyendo su directorio)
Crear un Grupo
------------------------$> groupadd fanaticos
vuelvan a crear tuxito
Agregar un usuario a un grupo
---------------------------------------$> gpasswd -a tuxito fanaticos (agrega al usuario tuxito al grupo fanaticos)
$> grep fanaticos /etc/group
$> vim /etc/group
se puede agregar un usuario directamente a un grupo editando el archivo groups
Permisos de archivos y directorios
------------------------------------$> ls -l /etc/hosts
inodo tamao en bytes fecha y hora
|
|
|
|
|
|
-rw-r--r--. 2 root root 240 2009-05-04 08:15
|______ | |
|
|
|
| |
|
|
|
| dueo grupo
|
|
---> permiso especial
|
|---> triada de permisos para el archivo
|
y el resto del mundo
de modificacion
/etc/hosts
|
|
ruta del archivo
del dueo, usuario
|
--> r=read 4
|
--> w=write 2
|
--> x=exec 1
|
Informacin del tipo de archivo
############################################################
1. Regular file(-)
2. Directory files(d)
Special files
3. Block file(b)
4. Character device file(c)
5. Named pipe file or just a pipe file(p)
6. Symbolic link file(l)
7. Socket file(s)
$> su $> cd
$> ls -l saludo
$> chmod 664 saludo
(6=permiso dueo,6=permiso grupo,4=permiso de otros)
$> ls -l saludo
$> chmod 777 saludo
$> ls -l saludo
Se pueden usar letras para cambiar los permisos con chmod
u=user, g=group, o=others, a=all
r=read, w=write, x=execution
-=quita permisos , +=aade permisos
quitar al resto del mundo todos los permisos al archivo saludo
$> chmod o-rwx saludo
$> ls -l saludo
Agregar permisos de lectura escritura y ejecucion al dueo y grupo del archivo
$> chmod ug+rwx saludo
$> chown alumno saludo (cambia de dueo al archivo)
$> ls -l saludo
$> chgrp alumno saludo (cambia de grupo al archivo)
$> ls -l alumno
$> chown -R alumno.alumno /home/alumno
----- -----dueo grupo
cambia de dueo y grupo al directorio /home/alumno incluyendo sus subdirectorios
* Nota
------------------------------------------------------------------------el comando chmod lo puede ejecutar el dueo del archivo y el usuario root
`:::'
`:'
BIENVENIDO A LA MATRIX
$> ssh root@localhost
Variables de entorno y alias
--------------------------------------$> set (variables del sistema,visualiza las variables de entorno existentes)
$> env (variables del usuario-similar al anterior)
$> export SALUDO="hola mundo" (define una variable de entorno)
$> echo $SALUDO (muestra el valor de la variable de entorno)
$> echo $SA----> TAB
$> echo $PATH
Variables de entorno predefinidas
###########################################################
Existen muchas variables de entorno del sistema, ej:
Variable que define las rutas de los directorios que guardan comandos ejecutable
s del sistema
$> echo $PATH
Variable que define la forma del prompt
$> echo $PS1
Alterando una variable predefinida
$> export PS1="[\u@\h \w]\$ "
Definiendo y modificando variables de entorno del usuario
##############################################################
$> su - alumno
$> vim .bashrc
.
.
export SALUDO="hola que tal" --> ultima linea
$> su - alumno
$> echo $SALUDO
Variables de Entorno globales
-------------------------------------------------/etc/bashrc -----> Fedora, CentOS
/etc/profile -----> Ubuntu o Debian
Archivo que se ejecutan en cada inicio de sesion para todos los usuarios, por ta
nto puedo definir variables de entorno y alias permanentes para todos los usuari
os.
$> su $> vim /etc/bashrc
.
.
.
export DESPEDIDA=chao
export PATH=/scripts:$PATH
export ORAHOME=/opt/oracle
$> su $> echo $DESPEDIDA
$> su - alumno
$> echo $DESPEDIDA
$> echo $PATH
/scripts:/bin...
$> echo $ORAHOME
$> su $> mkdir /scripts
$> cd /scripts
$> vim backuphome
#!/bin/bash
tar -zcpvf /backup/home.tgz /home
$>
$>
$>
$>
Alias de comandos
------------------------------------------------------Para ver los alias existentes
$> alias
Modificar y crear alias
$> vim /etc/bashrc (agregar al final)
alias listado="ls --color"
alias dir="ls --color"
$> su $> alias
$> listado
$> unalias listado (elimina un alias de manera temporal)
Para borrar permanenteme, borrar el alias del
/etc/bashrc
$> alias
Misc
###################################################################
Linux desde el navegador
http://angrave.github.io/sys/#playground