Documente Academic
Documente Profesional
Documente Cultură
GNU/Linux
1.- Proceso de Arranque
a) Enumere los pasos del proceso de inicio de un sistema GNU/Linux, desde
que se prende la PC hasta que se logra obtener el login en el sistema.
Respondido en la práctica 1.
El proceso de arranque init de Sys V es el primer proceso que se ejecuta en el sistema, es el más importante, del que
dependen el resto de todos los demás
procesos. En el arranque de GNULinux, el núcleo ejecuta init. Este programa, ahora como proceso, cargará los
subprocesos necesarios para la puesta en marcha
del sistema.
Inmediatamente después de que el kernel se cargue en memoria, inicialice el hardware adecuadamente, y monte el
sistema de ficheros, el comando /sbin/init da lugar al primer proceso del sistema, init, que es el padre de todos los
procesos y el encargado de gestionar la configuración de los runlevels para iniciar los servicios adecuados.
Completo en la práctica 1.
Los RUNLEVELS o también llamados NIVELES DE EJECUCIÓN son un concepto importante en los sistemas
UNIX y por extensión en Linux. Hay varios runlevels disponibles, del 0 al 6 (puede haber alguno más, pero
generalmente estos son los que se usan), y cada uno de estos runlevels es una configuración de arranque distinta.
¿Qué quiere decir esto? Entendámoslo bien. Pongamos por caso que tenemos una máquina que tiene dos usos, PC de
escritorio y servidor de red. Estableceríamos entonces dos runlevels distintos. En uno de ellos configuraríamos para
arrancar simplemente el servidor gráfico XWindow y un entorno de ventanas, y en el otro los distintos demonios
servidores: servidor web, servidor DNS...
Cada uno de estos runlevels tendría un número distinto. Si durante una época determinada la máquina sólo va a
funcionar como servidor, la configuraríamos para usar el runlevel correspondiente, que sólo cargaría al inicio los
demonios de los servidores, y no cargaría el servidor gráfico de ventanas XWindow puesto que no lo necesita. Si
durante otra época va a funcionar como PC de escritorio, la configuraríamos para usar el otro runlevel y nos
evitaríamos tener que estar deteniendo los demonios que no necesitamos.
El runlevel 0 es para apagar la máquina, y el runlevel 6 es para reiniciarla. Es obvio que no debemos poner el número
de runlevel por defecto a ninguno de estos dos; de hacerlo, el sistema no llegaría a arrancar. Otros runlevels típicos
son el 3 y el 5 (generalmente significan arrancar el sistema en modo multiusuario; a veces pueden ser equivalentes, o
el 5 arrancar el servidor gráfico X y el 3 no hacerlo -- el equivalente en Debian suele ser el 2). El nivel 1 queda
reservado para el modo monousuario que nos servirá para administrar la máquina; normalmente este modo no tendrá
red y pedirá la password de root antes de permitir ejecutar ningún comando.
En /etc/init.d residen unos scripts, uno por cada servicio, que aceptan siempre un primer argumento, que puede
ser "start" o "stop" (arrancar o detener el servicio). En cada runlevel podremos decidir cuáles de estos scripts se
ejecutarán y cuáles no.
Para hacer esto, cada runlevel tiene un directorio asociado, /etc/rcN.d o bien /etc/rc.d/rcN.d dependiendo
de la distribución de Linux usada, donde N es el número de runlevel correspondiente. Dentro de cada uno de ellos,
hay una serie de enlaces simbólicos que apuntan hacia los scripts de los servicios en /etc/init.d. Para un
runlevel determinado, sólo habrá enlaces para los servicios que se quieran ejecutar en ese runlevel.
Los nombres de esos enlaces son ANNservicio, donde A es una letra, y NN es un número. El objetivo de esta
forma de nombrarlos es que en un runlevel determinado se ejecutan en orden alfabético. Así, para una misma letra, un
número bajo indica que será ejecutado antes.
En este fichero definiremos qué es lo que el sistema ejecutará en cada runlevel y todos esos extraños scripts de
/etc/init.d empezarán a tener sentido.
El fichero tiene diversas entradas, del tipo:
identificador:runlevels:acción:orden_a_ejecutar
Donde:
identificador es un nombre asociado a cada línea del fichero generalmente no superior a 4 caracteres.
runlevels es una lista de runlevels (todos seguidos) para los cuales esta línea se tendrá en cuenta.
acción indica de qué forma o bajo qué condiciones se ejecuta el comando del campo siguiente.
orden_a_ejecutar es el comando que se ejecuta para esta entrada en los runlevels especificados.
De los campos anteriores, el campo acción merece especial interés, sobre todo porque algunos valores de este
campo hacen que se ignore el campo runlevels. Las distintas opciones de este campo se pueden consultar en la
página man inittab.
Lo mejor es ver algún ejemplo típico de un fichero /etc/inittab para ver cómo se combinan las diversas
opciones. Este fichero suele tener comentarios que clarifican cómo están dispuestos los scripts de inicio por la
distribución de Linux que estemos usando. En el ejemplo, los números indicados representan puntos que se comentan
a continuación.
# Número de runlevel por defecto
id:2:initdefault:
# Script que se ejecuta siempre en cada inicio,
# independientemente del runlevel
si::sysinit:/etc/init.d/rcS # (Debian y similares)
si::sysinit:/etc/rc.d/rc.sysinit # (Redhat y similares)
# Comando para cada runlevel
# En RedHat y sucedáneas es rc.d, Debian es init.d
l0:0:wait:/etc/rc.d/rc 0
l1:1:wait:/etc/rc.d/rc 1
l2:2:wait:/etc/rc.d/rc 2
l3:3:wait:/etc/rc.d/rc 3
l4:4:wait:/etc/rc.d/rc 4
l5:5:wait:/etc/rc.d/rc 5
l6:6:wait:/etc/rc.d/rc 6
# Qué hacer en todos los runlevels si se presiona la combinación
# de teclas CTRL+ALT+DEL en una terminal
ca:12345:ctrlaltdel:/sbin/shutdown t1 a r now
# Lanzar las terminales para el login de los usuarios
1:2345:respawn:/sbin/getty 38400 tty1
2:23:respawn:/sbin/getty 38400 tty2
3:23:respawn:/sbin/getty 38400 tty3
4:23:respawn:/sbin/getty 38400 tty4
5:23:respawn:/sbin/getty 38400 tty5
6:23:respawn:/sbin/getty 38400 tty6
Este podría ser un fichero de configuración de init a grandes rasgos. Algunas distribuciones añadirán más cosas, por
ejemplo podrían poner un campo que ejecutase xdm (el programa de login gráfico) en el runlevel especificado,
mientras que otras podrían tenerlo como un servicio aparte. Estudiemos el fichero por partes:
En el ejemplo, el runlevel 2 es en el que iniciará el sistema por defecto. Puede editarse este fichero y
cambiarse por otro.
Existen una serie de operaciones, como ya vimos, que son necesarias en todos los runlevels, así que el script
indicado en esta línea será ejecutado antes de cargar cualquier runlevel (esto lo causa "sysinit" al estar en el
campo acción).
Esto está resuelto de formas distintas en distribuciones distintas, pero el script indicado tendrá comentarios y
referencias que nos ayudarán a entender cómo funciona en nuestro sistema.
En RedHat y similares, es este fichero el que contiene los comandos a ejecutar directamente. En Debian, el
script ejecuta todos los scripts que haya dentro del directorio /etc/rcS.d por orden alfabético, lo cual
resulta ciertamente más ordenado.
Para cada runlevel se ejecuta el comando rc (cuya localización puede variar según la distribución) con un
argumento, el número de runlevel en cuestión. Así, este comando se encarga de ejecutar los scripts enlazados
en el directorio rcN.d, donde N es el número de runlevel, pasándoles generalmente el argumento "start" para
iniciar estos servicios.
La acción "wait" indica a init que debe esperar a que la ejecución de rc termine, esto es, a que se hayan
iniciado los servicios.
Esta línea asocia el evento de la pulsación de la combinación de teclas Ctrl+Alt+DEL con el comando
especificado, en este caso, reiniciar la máquina mediante shutdown.
Estas líneas inician las terminales en los runlevels indicados. El comando que lo hace puede ser getty o
alguno similar. tty1 a tty6 son las terminales locales accesibles mediante Ctrl+Alt+F1 a F6. tty7 suele
estar reservado para utilizar el servidor gráfico X-Window. Estas terminales esperan a que les sea introducido
un nombre de usuario y después llaman a login para autentificar al usuario y devolverle una shell válida en
caso de éxito. Algunos comandos similares a getty permiten lanzar terminales en los puertos serie (incluso
permitirían un inicio de sesión remoto a través de la línea telefónica mediante un módem).
La acción "respawn" indica que si el proceso de la terminal se detiene (por ejemplo, el usuario termina la
sesión en una termin
Con el sistema en marcha, es posible cambiar de runlevel en un momento determinado. Esto causará la detención de
los procesos del runlevel actual e iniciará los del nuevo runlevel (si alguno de los procesos actuales es común a ambos
runlevels no será parado y luego iniciado de nuevo). Si un proceso de los que deben detenerse no lo hace, será
matado por init.
En un momento determinado puede interesar más detener un sólo proceso que efectuar un “Cambio de runlevel”.
Para cambiar de runlevel se utilizará:
# telinit t SEC NUM
En realidad, es equivalente telinit e init en este caso. Aunque tradicionalmente se viene usando telinit para cambiar
de nivel de ejecución.
SEC es el número de segundos que esperará init a que un proceso se detenga antes de matarlo. Si no se especifica
esta opción, el número de segundos por defecto es 5.
NUM es el número de runlevel o nivel de ejecución al que se quiere cambiar.
Un usuario no privilegiado no podrá cambiar de runlevel (por otra parte es obvio, si no le pertenecen esos procesos
no tendrá ningún derecho sobre ellos).
Un claro ejemplo de cambio de runlevel es cuando utilizamos alguno de los comandos que nos permiten apagar la
máquina. En definitiva lo que hacen es un cambio al runlevel 6.
Los scripts rc se encargan de cargar o cerrar los servicios necesarios para que el sistema funcione, de acuerdo con el
runlevel que se está iniciando. Por ejemplo: lpd (servicio para imprimir), fetchmail (servicio para coger correo-e),
sshd (SecureShell, para abrir sesiones remotas de una manera segura), networking (abre las conexiones de red)...
Todos estos servicios se encuentran en /etc/init.d/.
Sin embargo, no todos los servicios se cargan en todos los runlevels. Por ejemplo, networking no se cargará si el
runlevel es 1 o 2. Entonces, ¿Cómo sabe el rc que servicios tiene que cargar?. Los servicios a cargar se encuentran en
el directorio /etc/rcX.d/, donde X es el runlevel a cargar: /etc/rc0.d para el runlevel 0, /etc/rc1.d para
el runlevel 1... En realidad, en estos directorios no hay más que enlaces simbólicos a /etc/init.d/
2.- Usuarios
a) ¿Qué archivos son utilizados en un sistema GNU/Linux para guardar la información de los usuarios?
Cualquiera que sea el tipo de usuario, todas las cuentas se encuentran definidas en el archivo de configuración
'passwd', ubicado dentro del directorio /etc. Este archivo es de texto tipo ASCII, se crea al momento de la instalación
con el usuario root y las cuentas especiales, más las cuentas de usuarios normales que se hayan indicado al momento
de la instalación.
La información de cada usuario está dividida en 7 campos delimitados cada uno por ':' dos puntos.
/etc/passwd
Campo 1 Es el nombre del usuario, identificador de inicio de sesión (login). Tiene que ser único.
La 'x' indica la contraseña encriptada del usuario, además también indica que se está haciendo uso
Campo 2 del archivo /etc/shadow, si no se hace uso de este archivo, este campo se vería algo así como:
'ghy675gjuXCc12r5gt78uuu6R'.
Número de identificación del usuario (UID). Tiene que ser único. 0 para root, generalmente las
Campo 3 cuentas o usuarios especiales se numeran del 1 al 100 y las de usuario normal del 101 en delante, en
las distribuciones mas recientes esta numeración comienza a partir del 500.
Numeración de identificación del grupo (GID). El que aparece es el número de grupo principal del
Campo 4
usuario, pero puede pertenecer a otros, esto se configura en /etc/groups.
Campo 5 Comentarios o el nombre completo del usuario.
Campo 6 Directorio de trabajo (Home) donde se sitúa al usuario después del inicio de sesión.
Campo 7 Shell que va a utilizar el usuario de forma predeterminada.
b) ¿A que hacen referencia las siglas UID y GID? ¿Pueden coexistir UIDs
iguales en un sistema GNU/Linux? Justifique.
Los usuarios en Unix/Linux se identifican por un número único de usuario, User ID, UID. Y pertenecen a un grupo
principal de usuario, identificado también por un número único de grupo, Group ID, GID. El usuario puede
pertenecer a más grupos además del principal.
c) ¿Qué es el usuario root? ¿Puede existir más de un usuario con este perfil
en GNU/Linux? ¿Cuál es la UID del root?
Usuario root
• También llamado superusuario o administrador.
• Su UID (User ID) es 0 (cero).
• Es la única cuenta de usuario con privilegios sobre todo el sistema.
• Acceso total a todos los archivos y directorios con independencia de propietarios y permisos.
• Controla la administración de cuentas de usuarios.
• Ejecuta tareas de mantenimiento del sistema.
• Puede detener el sistema.
• Instala software en el sistema.
• Puede modificar o reconfigurar el kernel, controladores, etc.
# useradd g users d /home/usuario s /bin/bash m k /etc/skel usuario
g Indica cuál es el grupo principal al que pertenece el usuario; en este caso, users
d Establece el que será el directorio de trabajo del usuario, por convenio para usuarios normales, es
/home/nombre_de_usuario
s Es la shell por defecto que podrá usar el usuario después de hacer login. Lo normal es que sea
/bin/bash, esto es, el shell bash.
m k Estas dos opciones se complementan. La primera, hace que se cree el directorio de trabajo del usuario
en el caso de que este no exista. La segunda, copia los ficheros del directorio especificado al que se ha creado
del usuario.
usuario Por último, usuario es el nombre del usuario que estamos creando.
who : muestra quién está conectado al sistema. Si se da un argumento que no es una opción, who usa
ese en vez de /etc/utmp como el nombre del fichero que contiene el registro de los usuarios conectados.
Con frecuencia, se da /etc/wtmp como argumento de who para ver aquellos usuarios que previamente se
conectaron al sistema.
3.- FileSystem
a) ¿Cómo son definidos los permisos sobre archivos en un sistema GNU/Li-
nux?
Para entender mejor el concepto de permisos se tendrá que tener en cuenta que cada usuario puede pertenecer a uno o
más grupos. Cada usuario pertenece por lo menos a un grupo, que es establecido en el momento en que el usuario se
crea. El administrador del sistema puede agregar al usuario a otros grupos. Estos grupos son necesarios para poder
establecer una política de acceso más organizada dado que en cualquier momento se podría dar a un archivo el acceso
a personas de un grupo determinado. Lo único que se tendría que hacer es agregar a los usuarios que se quieran dar
permisos a ese grupo.
Para cada objeto (archivo) que se encuentre en el sistema, GNU/Linux guarda información administrativa en la tabla
de inodos, tema que abarcaremos en mayor detalle más adelante. Entre los datos que se guardan en esta tabla se
encuentran la fecha de creación del archivo, modificación del archivo y la fecha en que se cambio el inodo. Pero
además contiene los datos en los que se centra toda la seguridad en Un*x. Estos son
• El dueño de archivo
• El grupo del archivo
• Los bits de modo o también llamados permisos de archivo
En este tramo nos centraremos en primer medida en entender los permisos y en establecer la forma en que pueden
trabajar con ellos.
Conceptos
Al ser Un*x y GNU/Linux sistemas operativos multiusuario, para que se puedan proteger los archivos se estableció
un mecanismo por el cual se otorgan permisos a un determinado usuario y/o grupo. Esto permite, por ejemplo, que si
existe un archivo creado por un usuario en particular, este será propiedad del usuario y también tendrá el grupo del
usuario. Se permite que los archivos sean compartidos entre usuarios y grupos de usuarios. Por ejemplo si shrek
quisiera puede prohibir los accesos a un archivo determinado que le pertenezca a todos los usuarios que no
pertenezcan a su grupo de usuarios.
Los permisos están divididos en tres tipos: lectura, escritura y ejecución (rwx). Estos permisos pueden estar fijados
para tres clases de usuario: el propietario del archivo, el grupo al que pertenece el archivo y para todo el resto de los
usuarios. El permiso de lectura permite a un usuario leer el contenido del archivo o en el caso de que el archivo sea
un directorio, la posibilidad de ver el contenido del mismo. El permiso de escritura permite al usuario modificar y
escribir el archivo. En el caso de un directorio permite la crear nuevos archivos en él o borrar archivos existentes. El
permiso de ejecución permite al usuario ejecutar el archivo, si tiene algo para ejecutarse. Para los directorios permite
al usuario cambiarse a él con el comando cd.
Como se interpretan los permisos
Para poder interpretar los permisos de archivos nada mejor que utilizar el comando ls la. Con esto vemos un
listado largo de un directorio.
[shrek@pantano:~]$ ls la
total 13
drwxrsrx 2 shrek user 1024 May 2 09:04 .
drwxrwsrx 4 root staff 1024 Apr 17 21:08 ..
rw 1 shrek user 2541 May 2 22:04 .bash_history
rwrr 1 shrek user 164 Apr 23 14:57 .bash_profile
rwrr 1 shrek user 55 Apr 23 14:44 .bashrc
rwxrwxrx 1 shrek user 0 Apr 14 19:29 a.out
rwxrwxrx 1 shrek user 40 Apr 30 12:14 hello.pl
r 1 shrek user 64 Apr 29 14:04 hola
rwxrwr 1 shrek user 337 Apr 29 13:57 lista
rwrwr 1 shrek user 40 Apr 30 12:31 listador
rwrwr 1 shrek user 0 May 2 09:04 null
rwxrwxrx 1 shrek user 175 Apr 30 12:30 prue.pl
rwxrwxrx 1 shrek user 56 Apr 23 15:08 que.sh
Como se puede apreciar en este listado, también están el directorio actual, representado por un punto . y el directorio
padre representado por dos puntos .. . Ellos también poseen permisos y atributos que son mostrados. Para ir
entendiendo un poco más vamos a explicar que significan los primeros 10 dígitos. Tomemos como ejemplo el
siguiente archivo
rwrr 1 shrek user 337 Apr 29 13:57 lista
Para esclarecer un poco mas que significa cada uno de estos caracteres al inicio, utilizaremos unas tablas. Primero
veamos aquellos caracteres que podrían aparecer en el primer lugar, que en el ejemplo anterior es un solo guión. Esto
nos indica que es un archivo común. La tabla siguiente explica el significado del primer símbolo de acuerdo al tipo
de archivo.
Permiso Significado
r Permiso de lectura
Permiso Significado
w Permiso de escritura
x Permiso de ejecución
8,9,10 other Establece los permisos para los usuarios que no entran en las categorías
anteriores
De esta forma se le ha sacado a todos los grupos y usuarios los permisos de lectura.
chown: chown cambia el propietario de cada fichero, usuario o grupo, según el
primer argumento que no sea una opción, el cual se interpreta como
sigue. Si sólo se da un nombre de usuario (o UID numérico), entonces
ese usuario se convierte en el propietario de cada fichero dado y el
grupo al que pertenece el fichero no cambia. Si al nombre de usuario
sigue un signo de dos puntos y un nombre de grupo (o GID numérico),
sin espacios entre ellos, entonces también se cambia el grupo al que
pertenece cada fichero.
chgrp: cambia el grupo al que pertenece cada fichero dado a grupo, que
puede ser o bien un nombre de grupo o bien un identificador de grupo
numérico (GID).
c) Explique los conceptos de “full path name” y “relative path name”. De
ejemplos claros de cada uno de ellos.
d) ¿Con qué comando puede determinar en qué directorio se encuentra
actualmente? ¿Existe alguna forma de ingresar a su directorio personal sin
necesidad de escribir todo el path completo? ¿Podría utilizar la misma idea
para acceder a otros directorios? ¿Cómo? Explique con un ejemplo
b) Indique que comandos se podrían utilizar para ver que procesos están en
ejecución en un sistema GNU/Linux.
En cada computadora siempre existirá una gran cantidad de procesos que se ejecutan de manera
simultánea sin que el usuario se de cuenta de ello. Cuando el usuario ejecuta un programa, es decir,
genera un proceso, este se llevará a cabo de dos maneras posibles:
• Modo foreground: Son procesos generados por programas interactivos, es decir, que requieren la
atención del usuario.
• Modo background: Son procesos que no requieren la interacción con el usuario para su ejecución.
Los procesos siempre estarán caracterizados por un número de proceso y por un número de trabajo (job
number).
Para dejar un proceso en background se utilizan los comandos de control de trabajos:
ctrl-z Detiene un programa que se este ejecutando en modo foreground.
bg Coloca el trabajo recién suspendido en modo background.
fg Vuelve a colocar el trabajo en modo foreground.
jobs -l Muestra una lista de los trabajos en background.
Tuberías o pipes
Este mecanismo nos permite pasar la salida de un comando a otro. Para ello se usa la sintaxis:
<comando1> | <comando2>. Con esto, la salida de comando1 será la entrada de comando2. Vamos a
ver unos ejemplos:
$ rpm qa | grep <nombre_paquete>
El primero de los dos comandos nos haría una lista de todos los paquetes instalados. Imaginemos
que sólo queremos saber si tenemos instalado uno en concreto. Con el segundo comando limitamos
la salida a los paquetes que en el nombre que contengan el patrón que especificamos en
<nombre_paquete>.
Redirecciones
En GNU/Linux, al final todo es tratado como si fuera un fichero y como tal, tenemos descriptores de fichero para
aquellos puntos donde queramos acceder. Hay unos descriptores de ficehro por defecto:
• : Entrada estándar (normalmente el teclado).
• 1: Salida estándar (normalmente la consola).
• 2: Salida de error.
Para redirigir las salidas utilizaremos el descriptor de fichero seguido del símbolo '>' (o < si redirigimos la entrada
hacia un comando, pero eso todavía no lo explicaremos). Veamos unos ejemplos:
$ ls l >fichero
Guarda la salida de ls -l en fichero. Si no existe lo crea, y si existe lo sobreescribe.
$ ls l >>fichero
Añade la salida del comando a fichero. Si no existe lo crea, y si existe, lo añade al final.
$ ls l 2>fichero
Si hay algún error, lo guarda en fichero (podría salir un error si no tuviéramos permiso de lectura en el directorio).
Es importante ver que si no se especifica el descriptor de fichero se asume que se redirige la salida estándar. En
el caso del operador < se redirige la entrada estándar, es decir, el contenido del fichero que especificáramos, se
pararía como parámetro al comando.
Si quisiéramos redirigir todas las salidas a la vez havia un mismo fichero, podríamos utilizar >&. Además, con el
carácter & podemos redirigir salidas de un tipo hacia otras, por ejemplo, si quisiéramos redirigir la salida de error
hacia la salida estándar podríamos indicarlo con: 2>&1. Es importante tener en cuenta que el orden de las
redirecciones es significativo: se ejecutarán de izquierda a derecha.
wc : El nombre del comando wc proviene de word count, y como es de suponer, sirve para contar palabras.
Pero no sólo palabras como se verá a continuación. Su sintaxis es como sigue:
wc [opción...] [archivo...]
Contar bytes.
-l
Contar líneas.
-w
Contar palabras.
6.- Indique que acción realiza cada uno de los comandos indicados a continuación
considerando su orden. Suponga que se ejecutan desde un usuario que no es root ni
pertenece al grupo de root. (Asuma que se encuentra posicionado en el directorio de
trabajo del usuario con el que se logueo). En caso de no poder ejecutarse el comando
indique la razón:
a) ls -l > prueba: Guarda en un archivo llamado prueba mucha más informacion sobre los archivos, como el
usuario y el grupo al que pertenece, el tamaño, los permisos, etc.
b) ps > PRUEBA : Guarda en un archivo llamado prueba los procesos actuales.
c) chmod 710 prueba
d) chown root:root PRUEBA: chown: no se puede acceder a `PRUEBA': No existe el fichero ó directorio.
e) chmod 777 PRUEBA: chmod: no se puede acceder a `PRUEBA': No existe el fichero ó directorio .
f) chmod 700 /etc/passwd: chmod: cambiando los permisos de `/etc/passwd': Operación no permitida.
g) passwd root: passwd: No debería ver o modificar la información de la contraseña para root.
h) rm PRUEBA: rm: no se puede borrar `PRUEBA': No existe el fichero ó directorio
i) man /etc/shadow: No existe entrada de manual para /etc/shadow
j) find / -name *.conf : Busca en el raiz todos lo arvhivos que sean .conf
k) usermod root –d /home/newroot -L
l) cd /root : entra a el directorio /root
m) rm *
n) cd /etc
o) cp * /home –R
p) shutdown
7.- Indique que comando seria necesario ejecutar para realizar cada una de las
siguientes acciones:
a) Terminar el proceso con PID 23 kill -1 23
b) Terminar el proceso llamado init. ¿Qué resultados obtuvo? killall init - ninguno
c) Buscar todos los archivos de usuarios en los que su nombre contiene la
cadena “.conf” find /home -name *.conf
d) Guardar una lista de procesos en ejecución el archivo /home/<su nombre
de usuario>/procesos ps > /home/matias/procesos
e) Cambiar los permisos del archivo /home/<su nombre de usuario>/xxxx a:
a. Usuario: Lectura, escritura, ejecución
chmod u+r+w+x /home/matias/prueba
b. Grupo: Lectura, ejecución
chmod g+r+x /home/matias/prueba
c. Otros: ejecución
chmod o+x /home/matias/prueba
f) Cambiar los permisos del archivo /home/<su nombre de usuario>/yyyy a:
a. Usuario: Lectura, escritura.
b. Grupo: Lectura, ejecución
c. Otros: Ninguno
g) Borrar todos los archivos del directorio /tmp
h) Cambiar el propietario del archivo /opt/isodata al usuario iso2007
i) Guardar en el archivo /home/<su nombre de usuario>/donde el directorio
donde me encuentro en este momento, en caso de que el archivo exista no
se debe eliminar su contenido anterior.
8.- Indique que comando seria necesario ejecutar para realizar cada una de las
siguientes acciones:
a) Ingrese al sistema como usuario “root”
b) Cree un usuario. Elija para como nombre, por convención, la primer letra de su
nombre seguida de su apellido. Asígnele una contraseña de acceso.
c) ¿Qué archivos fueron modificados luego de crear el usuario y qué directorios
se crearon?
d) Crear un directorio en /tmp llamado cursada2007
e) Copiar todos los archivos de /var/log al directorio antes creado.
f) Para el directorio antes creado (y los archivos y subdirectorios contenidos en
él) cambiar el propietario y grupo al usuario creado y grupo users.
g) Agregue permiso total al dueño, de escritura al grupo y escritura y ejecución a
todos los demás usuarios para todos los archivos dentro de un directorio en
forma recursiva.
h) Acceda a otra terminal virtual para loguearse con el usuario antes creado.
i) Una vez logueado con el usuario antes creado, averigüe cual es el nombre de
su terminal.
j) Verifique la cantidad de procesos activos que hay en el sistema.
k) Verifiqué la cantidad de usuarios conectados al sistema.