Sei sulla pagina 1di 7

Prácticas A.S.O./A.S.O.P.

- Boletı́n L01
Introducción, paquetes y herramientas básicas útiles para la
administración

Nota:

Los boletines asumen conocimientos básicos para desenvolverse en un entorno de shell, (pwd,
cd, ls, cp, rm, mkdir, rmdir, mv, comodines y redirección de shell, etc. . . )
Accede al sistema como superusuario, root (el profesor te proporcionará la contraseña), y crea
un nuevo usuario con las siguientes órdenes:
• adduser <miusuario> //Añade un nuevo usuario
• passwd <miusuario> //Le cambia la clave al usuario
Para trabajar puedes usar tanto los terminales gráficos como los de modo texto. Hay un terminal
gráfico y 6 en modo texto. La siguiente combinación de teclas permiten cambiar de uno a otro:
• Ctrl + Alt + F1 (. . . F6) ⇒ para cambiar a uno de los 6 terminales de modo texto.
• Ctrl + Alt + F7 ⇒ para cambiar al terminal gráfico.
Se recomienda el uso de las páginas del manual o ayuda usando la orden man.

El superusuario
La orden su
La orden /bin/su ejecuta un nuevo shell, con los identificadores de usuario (UID) y grupo (GID)
del nuevo usuario indicado. Se operará con estos nuevos identificadores hasta terminar con la orden
“exit”. Por defecto, se utilizará el usuario root. Por ejemplo, si pilar ejecuta las siguientes órdenes:

su → se convertirá en el usuario root


su antonio → se convertirá en el usuario antonio

Algunos parámetros de la orden su son:


Si es ejecutado sin opciones el valor de la mayorı́a de las variables de entorno no varı́a, excepto
las variables HOME y SHELL. En caso de haber cambiado a un usuario distinto del root
también cambian las variables USER y LOGNAME.
-m: preserva el entorno, sólo se cambia el ID, sin cambiar ninguna variable.
-l (“ele” de “login”): se cambian todas las variables de entorno, como si se hubiera hecho
un login de nuevo. (En algunas versiones esta opción ha sido eliminada y han dejado sólo la
siguiente).
- (signo “menos”): equivalente a -l
-c: ejecuta la orden indicada. (¡OJO! La orden tiene que delimitarse entre comillas dobles).
[pilar@colon DOCENCIA]$ su -c "/usr/sbin/adduser antonio"
Password:

Indicando un nombre de usuario el cambio se realiza al nuevo usuario:


[pilar@colon DOCENCIA]$ whoami
pilar
[pilar@colon DOCENCIA]$ su antonio
Password:
[antonio@colon DOCENCIA]$ whoami
antonio

1
Al administrador del sistema, nunca se le pide la contraseña al ejecutar esta orden.
Ejercicios

1. Como usuario “normal”, usando la orden su cambia al usuario root y comprueba el efecto de
los parámetros. (Puedes utilizar echo $variable y ps antes y después de ejecutar la orden).

1.1 ¿Qué procesos se crean?


1.2 De las siguientes variables HOME, SHELL, USER, LOGNAME, UID y GROUPS. ¿cuáles son las
que cambian y cuáles no?

2. Para probar la orden su en modo orden ejecuta, como usuario normal, las siguientes órdenes:

2.1 Crea un fichero en tu directorio: touch prueba.txt


2.2 Con su, cambia el usuario propietario de dicho fichero usando la orden: chown root
prueba.txt

La orden who
La orden who muestra las sesiones abierta, asociando el nombre del usuario a la terminal. Pero, la
verdadera identidad de un usuario depende de su UID, que se puede obtener con la orden id.

Ejercicios

3. Si cambiamos de usuario con la orden su, ¿lo aprecia la orden who? ¿Por qué?
4. ¿Qué diferencia hay entre ejecutar whoami y who am i?

Ficheros
En los siguientes ejercicios vamos a practicar con los permisos especiales t y s. Cuando los apliques,
observa dónde aparece la letra correspondiente al usar ls.
5. Crea tu propio directorio temporal en /pruebas: todos los usuarios pueden escribir en él y
borrar sus ficheros, pero no pueden borrar los ficheros de otros usuarios.
6. Al ejecutar la siguiente secuencia de instrucciones, ¿funciona la última instrucción? ¿Cómo se
podrı́a conseguir que funcionase utilizando el bit s?

cp /bin/cat /tmp/micat; echo ’na na na’ > /tmp/fichero; chmod go-rwx


/tmp/fichero
su otro usuario
/tmp/micat /tmp/fichero

7. Al ejecutar las siguientes instrucciones, ¿con qué usuario y grupo se crea el fichero hola?

su root; mkdir /practicas; chgrp mail /practicas


cd /practicas; touch hola

8. ¿Qué habrı́a que hacer para que el fichero hola perteneciese al grupo mail sin tener que ejecutar
la orden chgrp después de crear el fichero? Soluciónalo y crea el fichero propietario para
comprobar que ahora tiene el grupo deseado.
9. Crea un fichero y hazle un enlace fı́sico dentro del mismo directorio. Con la orden ls --il
comprueba los datos de los ficheros y verifica que son enlaces fı́sicos. A continuación borra el
fichero inicial. Comprueba si puedes trabajar con el enlace fı́sico. ¿Por qué sucede esto? Recuerda
que la orden ln permite crear enlaces fı́sicos y simbólicos.
10. Crea un fichero y hazle un enlace simbólico dentro del mismo directorio. A continuación borra
el fichero inicial. ¿Puedes trabajar con el enlace simbólico? ¿Por qué ocurre esto?

2
Las páginas de manual
La orden man se utiliza para conseguir ayuda de una orden. Las páginas de manual están ordenadas
en secciones (existe una sección para programación, otra para administración del sistema, etc.). Tam-
bién existen para funciones de biblioteca (como las que se utilizan en un programa en C), para ficheros
de configuración, etc. La búsqueda la realiza en un orden establecido mediante la variable MANSECT,
definida en su fichero de configuración. El fichero /etc/man.config es su fichero de configuración
y en él, además, se puede especificar los directorios donde encontrar las páginas de ayuda.
Modos tı́picos de uso:

man <tema>: cuando el tema que queremos consultar suele aparecer en una única sección.
Ejemplos: man ls; man man.config; man strcpy; man stdio.
man -a <tema>: mostrará todas las páginas que hay sobre ese tema. Para avanzar de una a
otra hay que pulsar la tecla “q”. Por ejemplo, man -a mount mostrará todas las páginas de
manual existentes de la orden mount.
man -S<sección> <tema>: para consultar la página de manual de un tema y una sección
concreta. El número de sección aparece en la primera lı́nea de la página entre paréntesis:

MOUNT(8) Linux Programmer’s Manual MOUNT(8)

Un ejemplo de uso serı́a man -S8 mount.


man cp ls man: visualiza las páginas de manual de varios temas al mismo tiempo, utilizando
“q” para avanzar de una a otra.
man -k orden: sirve para buscar todas las entradas que contienen la cadena “orden”. Para ello
guarda un listado de todas las páginas man que hay en el fichero /usr/share/man/whatis
o /var/cache/man/whatis, dependiendo de la versión instalada.
/usr/bin/whatis orden: muestra un listado de todas las páginas de manual que hay para
esa orden, indicando la sección en la que está y una breve descripción de la misma.

Nota: otra orden para obtener información es info


.

Ejercicios:

11. ¿Qué muestra la orden man man?


12. Comprueba si la información mostrada por man -k mount es la misma que la mostrada por
/usr/bin/whatis mount. ¿Cuál es la diferencia?
13. Usa la herramienta konqueror para “navegar” por la ayuda del sistema:

13.1 Ejecuta la orden konqueror man:ls


13.2 Ejecuta la orden konqueror info:bash. En este caso podrás usar el sistema de ayuda
info de una manera mucho más cómoda de lo habitual.

Mensajes
Ejercicios:

14. Cambia los mensajes /etc/motd y /etc/issue. ¿Permanecen los cambios cuando se reinicia
la máquina? (Recuerda que estos mensajes sólo se visualizan en los terminales en modo texto).
15. Comprueba para qué sirven la orden mesg y el fichero $HOME/.hushlogin.

3
Administración de paquetes
El sistema de paquetes utilizado por RedHat es RPM (Red Hat Package Manager), sistema que
hereda Fedora Core desde sus inicios.
Normalmente el formato de los paquetes es: nombre-versión-revisión.[i386 | src | noarch].rpm. Los
paquetes “i386.rpm” ya están compilados para procesadores Intel x86 y compatibles y preparados
para ser instalados. Los paquetes “src.rpm” son los fuentes, que habrá que compilar para poder hacer
uso de los mismos (utilizando para la compilación la orden rpmbuild). Los paquetes “noarch.rpm”
no son especı́ficos de ningún tipo de máquina. El sistema gestiona una base de datos de los paquetes
instalados que se puede usar para obtener información de su estado y sus ficheros.
Ten en cuenta que al guardar un paquete en la base de datos, el nombre del fichero .rpm suele
cambiar, normalmente la forma de indicar la versión. Una vez que un paquete está instalado podremos
referenciarlo usando simplemente su nombre, ya no será necesario indicar la versión. Por ejemplo, el
paquete coreutils--6.9--9.fc8.i386.rpm pasará a llamarse coreutils.
Pueden existir dependencias entre paquetes, de forma que para instalar un paquete sea necesario
instalar antes otros paquetes, o que al querer desinstalar un paquete no deje porque haya dependencias
con otros que hay instalados (al eliminar el paquete los otros no funcionarı́an correctamente). Estas
dependencias son controladas por el sistema RPM.
A continuación se presentan algunos modos básicos de uso:

Instalación: rpm -i <paquete rpm>.


Actualización: rpm -U <paquete rpm>. En caso de que exista un fichero de configuración
modificado de la versión anterior lo guarda como nombre fichero.rpmsave. En ocasiones,
si un fichero de configuración fue modificado, y el nuevo fichero de configuración ha cambiado
de formato y no puede ser adaptado, se deja el fichero antiguo y se crea uno nuevo que se
llamará nombre fichero.rpmnew. El administrador es el responsable de adaptar el fichero
antiguo de configuración al nuevo formato.
Eliminación: rpm -e <paquete>.
Consultas: rpm -q[li] <paquete> ; rpm -qp[li] <paquete rpm>.
Verificación del estado del paquete: rpm -V <paquete>.

Ejercicios:

16. ¿Cuántos paquetes hay instalados en el sistema? (Usa la orden wc para contar los paquetes).
17. ¿A qué paquete pertenece el fichero de configuración /etc/passwd?

a) ¿Cuáles son las caracterı́sticas de ese paquete?


b) ¿Qué ficheros pertenecen a ese paquete?
c) ¿Ha sido modificado el paquete o alguno de sus ficheros desde que se instaló en el sistema?

18. Déscargate el paquete sudo de la página web de la asignatura, instálalo, comprueba que se ha
instalado, y después bórralo.

Yum - Yellowdog Updater Modified


yum es una herramienta que permite actualizar de forma automática o interactiva paquetes. Puede
ser usada para mantener actualizados los sistemas que usen paquetes rpm, de una manera cómoda y
sencilla.
Esta herramienta permite varias formas de uso, para instalar o actualizar paquetes, borrarlos, etc.
A continuación se lista un breve resumen de las mismas:

yum check-update: avisa de los paquetes pendientes de actualizar.


yum update paquete: para actualizar un paquete.

4
yum update: para actualizar todos los paquetes.
yum install paquete1 [paquete2 ...]: instala la última versión del paquete o paquetes
indicados.
yum remove | erase paquete1 [paquete2 ...]: elimina el paquete que se le indica.
yum clean [ packages | headers | all ]: permite limpiar los ficheros que se acumulan en
el directorio caché de yum.
yum -h: para otener más información.

También es posible configurarlo para que de forma automática, cada noche, realice la actualización
del sistema. Para ello, bastará con activar un “demonio” para ser lanzado durante el arranque.

Ejercicios:

19. Utilizando la herramienta yum, instala el paquete fortune-mod. Comprueba que se ha realizado
la instalación de forma correcta, ejecuta para ello la orden /usr/bin/fortune.
20. Con yum, comprueba las actualizaciones que hay pendientes para los paquetes instalados en el
sistema.
21. Elimina el paquete fortune-mod haciendo uso de la herramienta yum.

Otros métodos para instalar paquetes


Existen otras herramientas que nos permiten actualizar o instalar automáticamente paquetes,
realizando búsquedas para localizarlos. Entre otros podemos destacar:

up2date y pirut (RH y Fedora),


apt, synaptic y adept (Debian y Ubuntu).

Algunas veces, sin embargo, no dispondremos de la versión adecuada del software en rpm y ne-
cesitaremos instalar directamente el paquete desde su formato .tgz. Los pasos comunes en este caso
son:

Para ver el contenido: tar tvzf <paquete.tar.gz>.


Para desempaquetar: tar xvzf <paquete.tar.gz>.
Luego se siguen las instrucciones concretas (readme, configure, setup, install, etc.).

Ejercicios complementarios

Herramientas básicas útiles para la administración


La orden find es una orden muy potente que se utiliza para buscar ficheros y directorios
que cumplan ciertos criterios; la búsqueda se realiza recursivamente. Además, permite indicar
operaciones a realizar sobre cada uno de los ficheros y directorios encontrados. El formato de
esta orden es:

find <lista de caminos> <expresiones>

Se busca por defecto en el directorio (o directorios) indicado y en todos sus subdirectorios, de


forma recursiva. Algunos de los criterios que se pueden utilizar para realizar la búsqueda son:

• -name <nombre>: nombre del fichero a buscar (se pueden utilizar comodines).
• -iname <nombre>: idem a la anterior, pero sin distinguir mayúsculas y minúsculas.
• -user <usuario>: propietario al que debe pertenecer el fichero.

5
• -group <grupo>: grupo al que debe pertenecer el fichero.
• -type <c|b|d|l|f>: tipo del fichero a buscar (carácter, bloque, directorio, enlace simbóli-
co o fichero regular).
• -mtime [+|-]n: modificado hace más de, menos de o exactamente n dı́as.
• -atime [+|-]n: utilizado hace más de, menos de o exactamente n dı́as.
• -size [+|-]n: con un tamaño de más, menos o exactamente 512*n bytes.
• !: delante de un criterio, lo niega.
• -o: o lógico de criterios.
• -a: y lógico de criterios (esta es la opción por defecto cuando se indican varios criterios).

Los criterios se pueden agrupar con paréntesis y hacer operaciones lógicas entre ellos. La única
precaución a tomar es que los paréntesis se especifican como “\(” y “\)”.

Ejemplos:

• find /usr -type f -size +2 -o ! -user antonio -print: busca, a partir del
directorio /usr, aquellos ficheros regulares cuyo tamaño sea superior a 1KB o no pertenezcan
al usuario antonio. Muestra los nombres de aquellos ficheros que cumplan el criterio.
• find . -group proyecto -exec chmod a+r+w {} \;: busca, a partir del directo-
rio actual, todos los ficheros y directorios que pertenezcan al grupo proyecto, y sobre cada
uno que encuentres ejecuta la orden especificada con -exec. Nota: es importante destacar
el espacio que hay entre “}” y “\”. La expresión “{}”será sustituida por el nombre de cada
uno de los ficheros que se encuentren. Por otro lado, la expresión “\;” indica el final de la
orden a ejecutar con exec.

La orden grep busca un patrón determinado en un fichero. Normalmente sólo se usa para realizar
búsquedas en ficheros, pero puede ser muy útil para algunas órdenes administrativas.

• ¿Qué hacen las siguientes ordeness?:


ps aux | grep pilar
ls -la | grep ˆd

La orden awk sirve para manipular selectivamente la salida de otras órdenes. Por ejemplo:

ps aux | grep bash | awk ’{ print $1 }’

¿Sabes hacer lo mismo con cut?


La orden xargs opera sobre una serie de objetos sin importarle de que tipo son (el exec de
find siempre opera sobre ficheros encontrados). Esta orden se utiliza bastante como salida final
de una tuberı́a.

ps aux | grep bash | awk ’{print $2 }’ | xargs renice +10

Se le puede especificar el no de argumentos qué debe ir tomando (finger se ejecuta una vez
para cada “usuario” devuelto por la tuberı́a anterior):

ps aux | grep bash | awk ’{print $1 }’ | xargs -n 1 finger

Te permite colocar los argumentos que se le pasa a la función en el lugar deseado

ps aux | grep bash | awk ’{print $2 }’ | xargs -i kill -15 {}

6
Ejercicios:

22. Consigue un grep recursivo, pero que solamente busque en los ficheros de menos de 2KB, y que
pertenezcan al root, y tengan como grupo propietario el grupo root.
23. Como superusuario borra todos los ficheros del subdirectorio /tmp que no pertenezcan ni al
superusuario ni al usuario creado al inicio de las prácticas. Utiliza la orden find y que te
pregunte cada vez que vaya a ejecutar la acción.
24. Busca todos los ficheros regulares que pertenezcan al propietario bin y al grupo bin, que existan
a partir del directorio /, que tengan un tamaño mayor a 2KB, y que no descienda por los sistemas
de ficheros montados a partir del /. Si hubiese salida de error debes dirigirla a una fichero llamado
$HOME/error. De los ficheros encontrados se tiene que hacer un “ls -l”.
25. Muestra el contenido del directorio /usr/bin donde cada lı́nea debe tener el siguiente formato:

gzip - > Modificado el Wed, 08 de Jul de 1998

El nombre del dı́a de la semana y el mes pueden aparecer en inglés o español. (Pista: orden find
con opción printf).
26. Realiza una búsqueda de todos los ficheros que tengan una tamaño superior a 2KB, sean de
tipo fichero, ordena la salida, y que te haga de todos ellos un ls -la. El ls -la debe quedar
ordenado.

Potrebbero piacerti anche