Heinsohn Privacidad y Ciberseguridad para el sector educativo
Doc. bismarck brito
1. ¿Qué
necesitam
os?
Para instalar Linux necesitamos obviamente una computadora. No es necesario que sea una computadora de
últimageneración,yaque lacantidaddedistribucionesGNU/Linux existentes nos permite hacer uso de máquinas
que normalmente consideraríamos obsoletas. Claro está, que si quieres hacer uso de lo último en software
relacionado con GNU/Linux, si te recomiendo que tengas un equipo al menos menor a tres años, con una tarjeta
aceleradora de vídeo y una buena cantidad de memoria RAM:
A continuación listo los requerimientos mínimos y recomendados para realizar una instalación exitosa de una
distribución GNU/Linux.
Requerimientos mínimos:
Procesador Existe una distribución GNU/Linux para cualquier arquitectura.
Memoria RAM 256 MB
Disco Duro 1 GB
Requerimientos mínimos recomendados:
Procesador Existe una distribución GNU/Linux para casi cualquier arquitectura.
Memoria RAM 512 MB
Disco Duro 5 GB
INSTALACIÓN DEL SISTEMA OPERATIVO
Preparación para instalar Unix
Unavez queusted ha obtenido una distribución de Unix, estará preparado para instalar el sistema. Esto supone
ciertogradodeplanificación,sobretodosien su ordenador se usan actualmente otros sistemas operativos. En las
secciones siguientes describiremos cómo preparar la instalación de Unix de forma general.
2. Instalacióndel software de UNIX
DespuésdemodificarsusparticionesparareservarespacioaUnix,ustedestápreparadoparainstalarelsoftware.A
continuación se muestra un resumen del procedimiento a seguir:
o Ejecutar fdisk bajo Unix para crear las particiones de Unix;
o Ejecutar mke2fs y mkswap para crear los sistemas de ficheros y el espacio de intercambio;
Instalar el software de Unix;
Finalmente,instalarelcargadorLILO en eldiscoduro,ocrearundiscode arranqueconelfinde arrancarsu nuevo
sistema Unix.
Como hemos dicho, uno (o más) pasos de los anteriores pueden estar automatizados por los programas de
instalación,segúnladistribuciónqueestéutilizando.Porfavor,consulteladocumentaciónde su distribución para
ver las instrucciones específicas.
Arranque de UNIX
El primer paso es iniciar el computador con el dispositivo de arranque de Unix, que suele ser un disco "boot" que
contieneunpequeñosistemaUnix.Tras arrancar con el floppy, se le presentará un menú de instalación de algún
tipoque le guiaráenel procesodeinstalación. En otras distribuciones, se le mostrara un prompt de login cuando
arranque.Aquísesueleentrarcomorootoinstall para comenzar el proceso de instalación. La documentación que
viene consuparticulardistribuciónleexplicaráquénecesitaparaarrancarUNIX.La mayoría de las distribuciones
de Unix utilizan un disquete de arranque que le permite introducir parámetros de su hardware en tiempo de
arranque, para forzar la detección de sus dispositivos.
Comunicaciónentre procesos
Tuberías o pipes: | sirven para comunicar procesos, usualmente para pasar el resultado de un proceso a otro
proceso: por ejemplo ps axf | grep bash: lista todos los procesos y filtra los que se llamen bash. La tubería en
definitiva lo que hace es unir la salida de un comando con la entrada de otro.
Redirecciónde entrada/salida
3. Proceso >fichero: con este símbolo podemos redirigir la salida estándar de un comando a un fichero. Téngase en
cuentaunacosa.Sidecimosficherosiemprelovamosadecirdemaneragenérica,puedeser un fichero de texto o la
pantalla de terminal, ahí cabe TODO.
Compresiónde ficheros ydirectorios
ExistenvariasopcionesdecompresióndeficherosenLinux:gzip,bz2, rar,zip,y todosellosse puedencombinarcon
el empaquetar o archivador TAR.
Tar Archivador: agrupa ficheros en uno, además se le puede decir que comprima.
tar cfp resultado.tar /etc /var : guarda el contenido de /etc y /var dentro del fichero resultado.tar
tar xfp resultado.tar : saca todo el contenido de resultado.tar
tar zcfp usr.tgz /usr : archiva y comprime con gzip el directorio /usr
tar jcfp usr.tgz /usr : archiva y comprime con bzip2 el directorio /usr
tar zxfp usr.tgz : Descomprime el fichero anterior
Accediendo a dispositivos yparticiones
Para acceder a diskettes, cdroms, dvds, pen drives, cualquier dispositivo USB, etc... Es necesario “montarlo” de
forma manual, salvo que todo esté configurado de una forma cómoda con automount.
Enlinux hay unúnicosistemadeficheros,ysise meteunCD ounUSB enel sistemahayque montarlo sobre algún
directoriodelsistema.Existenalgunosdirectoriospredefinidosparaesto,aunque en principio lo podemos montar
donde nos dé la gana
Las flechas
A travésdelasteclascursoraspodemosvolver a los comandos que hemos introducido anteriormente, algo que los
usuarios de MSDOS recordarán como el DOSKEY.
Encualquiermomentopodemosmovernosaliniciooalfinal delcomandopodemosusarlas teclas Inicio o fin, o en
su defecto Ctrl-A o Ctrl-E.
Ejecución de comandos
4. Para ejecutar un comando en el shell basta con ponerlo, y si el comando se encuentra dentro de los directorios
indicados en la variable PATH se ejecutará sin problemas.
Linux~# uptime
20:49:05 up 2:35, 2 users, load average: 0.00, 0.00, 0.00 linux~#
Comandos built-in del Shell
El shelldisponedeunconjuntodecomandosquevienendeserie. Son comandos muy sencillos que pueden ayudar
en la programación de scripts. Vamos a listarlos, pueden usarse dentro de un script o desde el propio prompt:
●! : Negación
●#: comentarios
●: : comando nulo
●. : El punto sirve para ejecutar ficheros. Con los scripts del mismo directorio se hace: ./script.sh
●Alias: sirve para crear alias de comandos largos: alias dir='ls -l | more'
●Bind: gestiona la librería readline.
●Bg: pasa procesos a background o segundo plano
●Break: fuerza la salida de fors, whiles, selects o untils
●Builtin: permite modificar el comportamiento de comandos
●Cd: el cambio de directorio
●Command: ejecutar determinado comando con sus argumentos
●Continue: salta a la siguiente iteración en fors, whiles, selects o untils
●declare: declaración de variables
●Dirs: muestra la pila de directorios
5. ●disown: quita los procesos dependientes del shell para que no dependan de este
●do, done: parte de las iteraciones
●Echo: mostrar datos por salida
●Enable: habilitar o deshabilitar los comandos builtin.
●Exec: ejecuta un comando en lugar del proceso actual
●Exit: termina el script o el shell
●Export: convierte las variables en globales
●Fc: editar comandos del historial
●Fg: pasar comandos a primer plano
●Getopts: para tomar los argumentos opcionales del script, al estilo de c
●Help: muestra la ayuda
●History: el historial de comandos
●If: para crear estructuras condicionales
●Jobs: muestra los procesos que tenemos en marcha
●Kill: envío de señales a procesos.
●Let: ejecución de operaciones aritméticas
●Local: declaración de variables locales
●Logout: salida del shell
●Printf: sacar datos formateados como en c
●Pwd: muestra el directorio actual
●Pushd: mete un directorio en la pila
6. ●Read: lee desde la entrada estándar
●Readonly: previene que variables de shell sean sobrescritas
●return: para terminar funciones
●Select: estructura de selección
●Set: muestra variables del shell, y puede establecer muchas opciones
●Shopt: establece o quita opciones de shell
●Shift: desplaza posiciones en el shell
●Source: similar al.
●Suspend: suspende el shell actual, suele hacerse en el su.
●Test: para construir condicionales.
●time: mide el tiempo de ejecución de un comando.
●times: muestra tiempos acumulados de procesos.
●Trap: para atrapar señales.
●True: constante booleana.
●Type: distingue si un comando es builtin, función, alias, palabra clave,..
●Ulimit: muestra los límites de recursos del sistema
●Umask: muestra/establece permisos que sse deben aplicar a nuevos ficheros
●Unalias: quita los alias.
●Unset: des establece funciones o variables.
●Until: para crear iteraciones.
●Wait: detiene la ejecución a la espera que termine otro proceso.
7. ●While: para crear iteraciones..
Desconexiónde la máquina
Enprincipio,unadesconexióncorrectaadviertealosotrosusuariosparaquesedespidanantesdequeel sistema se
pare,eliminaracuidadosamentetodoslosprocesosnoesencialesactualizaravariosficheros yregistros,sincronizara
el disco con los buffers en memoria, y finalmente eliminara el resto de los procesos.
Algunos sistemas pueden estacionar automáticamente las cabezas del disco bajo software, como parte de la
desconexión. De hecho, algunas máquinas unix incluyen el conmutador de potencia controlado de modo que el
último paso del proceso de desconexión es la desactivación física de la máquina.
La Secuencia de Arranque.
Booting the UNIX System...
Y cargaentoncesel núcleo(kernel)del sistemaoperativo, que es normalmente /unix. Se puede presionar una tecla
mientrassevisualizael mensaje"Booting",y el cargadorpermitiráintroducirelnombre del núcleo alternativo para
cargar.Este núcleo alternativo debe residir in /stand/unix. Como parte de la secuencia de inicialización, el núcleo
puede visualizar cuanta memoria total real hay instalada en el sistema, si esta cantidad difiere de la cantidad de
memoria física, debe haber un problema de hardware que debería ser reparado. Como parte del proceso de
inicialización,el núcleoanalizalasrutinasdedispositivoasociadascontarjetasadicionalesinstaladasylosmensajes
"Wangtek...", etc. aparecen es esta etapa.
Estados Init.
El procedimiento de arranque del sistema Unix se complica por la posibilidad de hacer entrar al sistema en
diferentes estados, es decir, el sistema puede adoptar varios modos de operación conocidos como estados init,
debido a que /etc/init es el programa responsable del mantenimiento del sistema en funcionamiento correcto.
El estadomáscomúnmenteutilizadoeselmodomultiusuario,esteeselestadodelsistemautilizadopara casi todas
lasinteraccionesenestasnotasyel únicoque permite más deunusuario.Otroestado históricamenteutilizadopero
8. derarousohoy,esel mododeusuario único, este último es una versión de Unix de multitarea, por lo que permite
múltiples procesos, pero no múltiples usuarios, este estado puede ser utilizado para una actualización del kernel
(núcleo) del Unix rápida. Existen otros estados, la designación de estos estados se muestra en la siguiente tabla:
Estado Función
Alterando los valores default de la creaciónde cuentas.
Parallevara caboestaoperaciónseleccione"Modify Defaults", después usted apreciara una forma en pantalla, en
estaapreciaraque el cursor estará posicionado en el campo de "Login group". Algunos de los campos pueden ser
modificados al momento de crear la cuenta del usuario en el modo de modificación, estos campos son solamente
informacionales; sus valores pueden ser cambiados. Estos campos son los siguientes:
Logingroup
El grupo asociado con la cuenta cuando el usuario entra. Este campo puede ser cambiado, pero no deberá estar vacío. Este
campo es el grupo del usuario en /etc/passwd. Presionando F3 se muestra una lista de los grupos existentes.
Groups
Los grupos en los que este usuario es un miembro.
LoginShell
Estado Función
0 Desenchufar la máquina
1 Modo de usuario único
2 Modo de multiusuario
3 Modo de multiusuario con red
4 No usado
5 Desconexión a ROM (o desconexión y arranque)
6 Desconexión y arranque
9. El shellqueel usuarioutilizara,elvalordefaultestádefinidoenel archivo/etc/default/authsh.Silarutacompletaes
ingresada,elshelldescritoporestarutaessimplementeelusadocomoelshellusadopor el usuario. Sin embargo si
no se especifica la ruta, se asume que se trata del shell predefinido, es decir, el shell que se encuentra en el
subdirectorio /usr/lib/mkuser.
Home directory
Definedonderesidiránlosarchivos de usuario. La opción del directorio default se enfatiza; presione Return para
seleccionar el directorio de default. Las opciones del directorio de trabajo son las siguientes:
· Create: Crea un nuevo directorio para el usuario.
· Do not create: no crear un directorio para el usuario.
· Populate existing: use el directorio especificado existente.
Más adelante analizaremos usuarios que comparten directorios de trabajo.
User ID
Esel númerode identificación del usuario (ID). Una vez seleccionado un número de identificación, este no puede
ser cambiado porque podría causar inconsistencia en la auditoria del sistema.
Type ofuser
En la mayoría de los casos el tipo de usuario es "individuo" o "pseudo-usuario". Por default este campo asume el
valor "individuo" que identifica a la gente real con nombres. Los usuarios "pseudo-user" son cuentas anónimas
dedicadas a ciertas tareas administrativas del sistema.
Account that maysu to this user
Se refiere al usuario responsable de esta cuenta. Este campo puede ser cambiado si y solo si el usuario no es un
individuo.Parausuariosindividualesestecampoestavacío,peroparausuarios no individuales no deberá de estar
vacío.Porejemplo,lacuentaderootdeberátenerel nombredel usuarioresponsable de la cuenta. Presione F3 para
ver la lista de los usuarios del sistema.
10. Compartiendo directores detrabajo
Sepuedecrear cuentas que compartan el mismo directorio de trabajo (login directory); para hacer esto, se crea el
directorio normalmente durante la adición de un nuevo usuario. Usted debería después de salir del sysadmsh e
introducir los siguientes comandos (reemplazando o medir con el nombre real del directorio).
Cd homedir
Chmod 775
Chown aunth
Además, introducir uno de los comandos siguientes de acuerdo al shell de login usado para la cuenta:
Bourne o Korn shell
Chmod 660 .profile
Chmod 660 .kshrc (korn Shell solamente)
C-shell
Chmode 660 .login .chsrc
Estoaseguraquelos miembros delmismogrupodelogin puedancompartirestedirectorio.Notequesiusted asigna
diferente grupo de login de varios usuarios, estos no podrán compartir el directorio.