Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Linux comandos 1

3,055 views

Published on

Aquí les dejo los coman dos completos de linux

  • Be the first to comment

Linux comandos 1

  1. 1. Quinto Círculo Linux –Comandos I Instituto Tecnológico Superior Cesar Vallejo LINUX DISTRIBUCIÓN UBUNTU Comandos I Quinto Círculo (Grupo de estudios e investigación)Angelzero 1
  2. 2. Quinto Círculo Linux –Comandos I________________________________________________________“El triunfo no esta en vencer siempre; sino, en nunca desanimase” Napoleón________________________________________________________INSTITUCIÓN: Instituto superior tecnológico Cesar Vallejo.Todos los derechos reservados: Quinto CírculoAÑO: 15 – 04 – 2007 (PRIMERA EDICION)Impreso en LIMA – PERUAutor: Angelzero – E-mail: angelzero8@gmail.comAngelzero 2
  3. 3. Quinto Círculo Linux –Comandos I INTRODUCCIONA través de este documento se tratará de explicar las características, importancia, ydesarrollo de LINUX en la distribución UBUNTU; sin embargo en próximas edicionesse tocara otras distros como Debían, Fedora, UNIX, etc.Citando un ejemplo:Pepe dice: ¿sabes cual es el comando para editar la lista de repositorios?José dice: Ah si es gedit /etc/apt/sources.listPepe dice: y ¿porque?José dice: ah pues no se, tu solo copia y punto.Este es un ejemplo típico que sucede con la mayoría de estudiantes, la idea de estudiarno es “memorizar”, y aceptar las cosas sin saber porque; es estudiar, comprender,analizar y saber “porque” sucede.Angelzero 3
  4. 4. Quinto Círculo Linux –Comandos I LINUX Distribución UbuntuObjetivos:Conocer los conceptos básicos de Linux.Conocer la estructura básica de Linux.Crear usuarios, grupos y permisos.Incentivar la investigación en seguridad informática en Linux.SOFTWARE LIBREEn 1984, surge el Movimiento de Software Libre con el proyecto GNU, liderado porRichard Stallman que inicialmente trabajaba en el MIT, para desarrollar un completosistema operativo tipo UNIX, bajo la filosofía del software libre.“Software Libre” se refiere a la libertad de los usuarios para ejecutar, copiar, distribuir,estudiar, cambiar y mejorar el software.El “Software Libre es un asunto de LIBERTAD, que va mas allá, del solo aspecto delprecio.El proyecto GNU en su propósito de crear un sistema operativo, creo herramientascomo editores, compiladores, shell, depuradores, con licencias Libre GPL.Al sistema operativo de GNU solo le faltaba el núcleo, pues el núcleo de GNUdenominado Hurd, busca tener muchas funcionalidades avanzadas. Resultandocomplejo lento su desarrollo, depuración y sobre el cual se sigue trabajando.Afortunadamente, está disponible otro núcleo.LINUX En 1991, Linus Torvalds desarrolló un núcleo compatible con Unix y lo denominóLinux. Cerca de 1992, al combinar Linux con el sistema no tan completo de GNU,resultó en un sistema operativo libre completo. (La combinación en sí misma dió unconsiderable trabajo.) Es gracias a Linux que podemos ver funcionar un sistema GNUen la actualidad.Denominamos a esta versión GNU/Linux, para expresar su composición comocombinación de un sistema GNU con Linux como núcleo.Angelzero 4
  5. 5. Quinto Círculo Linux –Comandos I Sistema de ficherosTodo lo dicho anteriormente es suficiente para aprender a organizar su informaciónordenadamente. Pero si es curioso o curiosa y desea conocer el sistema de ficherosGNU/Linux con mayor profundidad debe leer este apartado.En GNU/Linux todo son ficheros, esto es, cualquier elemento presente en el sistema estratado como un fichero desde nuestros archivos personales hasta los dispositivoshardware como la impresora, el ratón, los dispositivos de almacenamiento, etc. Estosficheros están organizados en lo que se conoce como un Sistema de ficheros. AunqueGNU/Linux es capaz de trabajar con distintos tipos (incluyendo FAT y NTFS) sussistemas de ficheros nativos son ext2 o ext3 (Ubuntu se instala sobre ext3).Si desde Nautilus pulsamos en el panel lateral el acceso al sistema de archivos veremosel árbol completo de directorios. En la barra de título de la ventana veremos el símbolo /indicando que estamos en la raíz del árbol. En GNU/Linux esta es la única raíz, noexisten letras de unidad para diferentes dispositivos como sí ocurre en otros sistemas,todo (cdrom, disquete, memoria usb, etc) cuelga de aquí.Angelzero 5
  6. 6. Quinto Círculo Linux –Comandos IEsta estructura se encuentra fuertemente jerarquizada para permitir una mayorfamiliaridad con el sistema para los usuarios, pero sobre todo, para que losprogramadores puedan ubicar los ficheros de las aplicaciones sin preocuparse de ladistribución en la que funcionará finalmente su programa. Las directrices para estaestructura siguen la especificación pública FHS (Filesystem Hierarchy Standard) ysirven de referencia para todos los desarrolladores. Por lo tanto, la mayoría de losdirectorios Ubuntu se encuentran siempre en el mismo lugar en cualquier otradistribución GNU/Linux.Se menciona algunos ficheros para tratar de que comprender la lógica del sistema.• /bin, contiene los ejecutables (binarios) esenciales para el sistema. Si observamos sucontenido encontraremos los comandos más básicos.• /boot, aquí están los archivos usados por el sistema durante el arranque, incluida laimagen del núcleo.• /dev, almacena los controladores (device drivers o device files) para el acceso a losdispositivos físicos del disco, como el ratón, las tarjetas, el escáner, etc.• /var, suele contener información variable, tanto generada por el propio sistema comopor los usuarios. Contiene algunos subdirectorios interesantes: /var/lock, alberga los ficheros de bloqueo para indicar al sistema que un determinado dispositivo es inaccesible cuando está siendo usado por alguna aplicación. /var/log, es la bitácora del sistema, puesto que aquí se almacenan los registros detallados de toda la actividad desarrollada en el transcurso de una sesión de trabajo. /var/spool/, contiene información preparada para ser transferida, por ejemplo, los trabajos de impresión o los mensajes de correo.• /lib, contiene las librerías usadas por diferentes aplicaciones, evitando que cadaprograma incluya las suyas propias con la consiguiente redundancia de ficheros.• /etc, es el directorio destinado para almacenar todos los archivos de configuración delsistema,• /home, contiene el árbol de directorios propio de cada usuario del sistema.Encontraremos un subdirectorio para cada usuario, lo que en el entorno gráfico se llamaCarpeta personal. Es una buena costumbre situar este directorio en una particiónindependiente para salvaguardar los datos en caso de catástrofe o para reinstalarcompletamente un sistema distinto respetando el trabajo anterior.• /sbin, aloja comandos esenciales de administración del sistema, normalmentereservados al administrador.• /usr, donde se almacenan las aplicaciones y recursos disponibles para todos losusuarios del sistema. Destacaremos: /usr/bin, contiene la mayoría de programas y comandos a disposición de los usuarios. /usr/share, suele contener datos compartidos independientes de la máquina, como la documentación de los programas o colecciones de imágenes para el escritorio.Angelzero 6
  7. 7. Quinto Círculo Linux –Comandos I• /tmp, es un directorio temporal usado generalmente por las aplicaciones paraalmacenar algunos ficheros en tiempo de ejecución.• /media Cuando montamos un CDRom, una memoria usb o un disquete se crea aquíautomáticamente un subdirectorio /media/cdrom0 para la primera unidad de cdrom /media/usbdisk para la memoria usb /media/floppy para el disqueteSHELL (El intérprete de comandos)El Shell es la interfaz primaria entre un usuario sentado ante su terminal y el sistemaoperativo.El intérprete de comandos de UNIX, o shell, es un proceso que muestra un indicador decomandos ($, %, o #) y aguarda que el usuario digite un comando. Toda vez que elusuario digita un comando, el intérprete lo valida, y si es correcto crea un proceso hijoque realiza la acción encomendada. Al terminar el proceso hijo, exhibe nuevamente elindicador de comando e intenta leer una nueva línea de la entrada.Versiones del kernel de linuxkernel 0.01 ===> version original de Linux Septiembre 1991kernel 2.4kernel 2.6 ===> vesion actualMODULOSMódulo se refiere a un controlador de un dispositivo o servicio que puede cargarse odescargarse cuando el usuario o algún dispositivo lo solicitan y están preparados paracargarse o descargarse dinámicamente en el kernel.En linux se encuentran en /lib/modules/X.Y.Z/...../ *.o#lsmod#insmod#apt-get install modconf#modconfApagar el SistemaPara apagar el sistema se usan las siguientes instrucciones# halt# shutdown - h nowAngelzero 7
  8. 8. Quinto Círculo Linux –Comandos I# shutdown - h - t time 3 ( Se apaga en 3 minutos)# init 0Reiniciar el SistemaPara reiniciar el sistema usaremos los siguientes comandos:# reboot# shutdown - r now# shutdown - r - t time 5 (Se reinicia en 5 minuto)# init 6date : Este comandos nos permite saber la hora y el dia, tomando como referencia elreloj del sistema.FECHA# datesáb oct 21 05:53:19 PET 2006CALENDARIOcal : Comando que nos muestra el calendario.# cal Octubre 2006do lu ma mi ju vi sá1 2 3 4 5 6 78 9 10 11 12 13 1415 16 17 18 19 20 2122 23 24 25 26 27 2829 30 31Variantes# cal 2006 (nos permitirá ver el calendario de todos los meses del año 2006)# cal 10 1982 (nos permitirá ver el calendario del mes de Octubre de 1982) October1982whoEl comando who muestra los usuarios conectados al sistema ya sea local oremotamente.Angelzero 8
  9. 9. Quinto Círculo Linux –Comandos I# wholastEl comando last nos permite ver la información de los usuarios que han usado el host.La información que proporciona este comando es, el nombre del usuario, mediante queservicio ingreso, el ip del host desde donde ingreso (si lo hizo desde otra PC), la fechade ingreso y la hora de inicio y fin del acceso al host. La forma de usarlo es de lasiguiente manera:# last usuarioUn ejemplo seria:# last rootclear : Borra todo el contenido de la pantalla.# cleartambien teclear : Ctrl + Lhistory: Historial. Comando que permite ver en lista todos los comandos que hemosutilizado hasta el momento.# historyVariante:# history 5 (muestra los 5 últimos comandos)# !n (recupera el comando #n del historial)whatisComando que informa sobre la función o funciones que realiza el comando que se lepasa como parámetro.Funciona de la siguiente manera# whatis comandoEjemplo de uso:# whatis mkdir#whatis nmap# mc (Midnight Commander) de archivos modo consolaMANEJO DE ARCHIVOS Y DIRECTORIOSVamos a ver los comandos que nos permitirán administrar directorios y archivos.Angelzero 9
  10. 10. Quinto Círculo Linux –Comandos ILISTAR ARCHIVOS Y DIRECTORIOSls : El comando que se utiliza en Unix, y por lo tanto en Linux paramostrar los ficheros#lsOpciones# ls -lPermite ver los archivos y directorios en lista, informándonos sobre sus permisos,dueños de los archivos, tamaño, fecha y hora de creación y su nombre respectivo.# ls - aPermite ver los archivos y carpetas ocultas que contiene el directorio actual.# ls -lh Igual que ls - l, solo que el tamaño de los archivos están en kb o mb.# ls -la Igual q ls - l, solo que ahora también lista los archivos ocultos.#lspci --------------- Ver dispositivos conectados a la placa madre mediante un bus PCI.#lsusb --------------- Ver los buses USB y los dispositivos conectados a los mismos.#lsmod -------------- Ver los modulos del kernelCAMBIO DE DIRECTORIOcd : Comando que nos permite movernos a través del árbol de directorios.# cdEscribiendo solo cd y luego dándole enter, esto nos ubicara en el directorio delusuario con el cual estoy logeado.Opciones# cd / Esto nos moverá al directorio raíz.# cd .. Subir un nivel en el árbol de directorios.# cd ../directorio2 directorio Moverse en el mismo nivel de directorios.# cd directorio Bajar un nivel, a la carpeta directorio.Angelzero 10
  11. 11. Quinto Círculo Linux –Comandos I# cd - Retornar al directorio que se ubicaba anteriormente.pwdEl comando pwd indica el camino absoluto del directorio en el cual nos encontramosactualmente.Este comando se usa de la siguiente manera:# pwdUn ejemplo seria:# cd /usr/src/ movernos a la carpeta /usr/src/# pwd ejecutar pwd para ver la ruta actual/usr/srcfileEl comando file determina con cierto grado de precisión el tipo de un fichero que se lepasa como argumento. Se usa de la siguiente manera# file archivoUn ejemplo de uso:# file /vmlinuz/vmlinuz: symbolic link to `boot/vmlinuz-2.6.8-2-386# file /etc /inittab/etc/fstab: ASCII text# file manual.docmanual.doc: Microsoft Office DocumentTambién para visualizar documentos tenemos:less (muestra un archivo en la pantalla pagina por pagina)#less archivocat (muestra un archivo en la pantalla)#cat archivotail (visualiza las ultimas líneas)#tail -f archivoCREACION DE DIRECTORIOSmkdir : Comando que nos permite crear directorios. Un directorio, es un archivo el cualtiene la propiedad de poder almacenar, ficheros y directorios.Angelzero 11
  12. 12. Quinto Círculo Linux –Comandos IEn Linux existe una forma muy sencilla de crear directorios. Para ello, simplemente hasde escribir:# mkdir directorioObservación: Un punto importante es recordar te que Linux es sensible a lasmayúsculas y no es lo mismo escribir mkdir directorio que mkdir DIRECTORIO.Estos son directorios diferentes, y, por tanto, para acceder a ellos habrás de escribirlo taly como los llamaste.Algunas veces nos vamos a encontrar con la tarea de crear un directorio y luego dentrode este otro y dentro del siguiente talvez otro. Una posibilidad seria crear un directorio,luego acceder a este y luego estando dentro de este crear el otro directorio y asísucesivamente; pero esto no es necesario ya que tenemos la posibilidad de crear todauna rama de directorios con el comando mkdir - p; esto seria de la siguiente manera:# mkdir - p /home/ciencias/practicas/laboratorio/2004/ programaciónBORRAR DIRECTORIO Y ARCHIVOSrmdirComando que me permite borrar un directorio vació. Para ello sólo tenemos que ponerel comando, con el respectivo nombre del directorio que queremos borrar. Si eldirectorio no estuviera vacío, nos saldrá el mensaje de error.# rmdir directoriormBorrar archivos y/o directorios.Este es un comando que debemos utilizar con mucho cuidado, ya que si borramosalgunos archivos por equivocación, Serra imposible recuperarlos.# rm archivo Borra un archivo.# rm archivo1 archivo2 archivon Borrar varios archivos a la vez.# rm * Borrar todos los archivos que se encuentran en lacarpeta desde donde es ejecutado el comandos. (¡CUIDADO...!)# rm carpeta/* Borra todos los archivos que se encuentran en carpeta, siencuentra directorios dentro de esta, no los puede borrar.Observación: También podemos borrar directorios que no se encuentren vacíosutilizando el comando rm, solo tenemos que agregarle dos parametros, uno seria - rpara borrar en forma recursiva, y - f para que borre los archivos o carpetas sinrestricción (force). Esto seria de la siguiente manera:# rm -rf directorioAngelzero 12
  13. 13. Quinto Círculo Linux –Comandos ICOPIAR ARCHIVO O DIRECTORIOcpCopiar archivos y/o directorios.Con este comando puedo copiar un archivo en una ruta específica.# cp archivo /ruta/directorio Copiar archivo en /ruta/directorio/.# cp arch1 arch2 arch3 /ruta Copiar arch1, arch2 y arch3 en /ruta# cp archivo1 archivocopia Hacer una copia de archivo1 con otronombre (archivocopia)# cp * /ruta/directorio Copiar todo el contenido de la carpetadonde nos encontramos al momento de ejecutar el comando en /ruta/directorioObservación: También podemos copiar todo un directorio, inclusive con subdirectoriossi los tuviera, esto se hace agregándole - R para que copie en forma recursiva. Tambiénpodemos adicionarle - v si quisiéramos que nos liste lo que esta copiando Así:# cp - R directorio /ruta Copia la carpeta con todo su contenido en formarecursiva, hacia la carpeta /ruta#cp -rf directorio /ruta Copia carpeta y contenido a la ruta /rutaMOVER, RENOMBRARmv Comando con el cual puedo borra archivos y/o directorios, también permiterenombrarlos.# mv archivo /ruta mover archivo a la carpeta /ruta/# mv * /ruta mover todos los archivos y carpetas que se encuentran en lacarpeta actual en el directorio /ruta# mv archivo arch _renombrado cambiar de nombre a archivo porarch_renombrado .# mv directorio nuevo _directorio cambiar de nombre a directorio pornuevo_directorioTAMAÑO DE ARCHIVO, DIRECTORIOdu :Angelzero 13
  14. 14. Quinto Círculo Linux –Comandos IComando que permite conocer el tamaño de un directorio y su respectiva jerarquía dedirectorios# du -h Visualiza los tamaños de los directorios en forma representativa (M paraMegabytes y K para kilobytes)# du -h directorio Visualiza los tamaños de los directorios que contienedirectorio .# du -ah Visualiza los tamaños de los directorios y archivos quecontiene la carpeta actual.# du -ah directorio Visualiza los tamaños en kylobytes de todo lo que seencuentre en directorio# du -sh Visualiza el tamaño total de la carpeta actual# du -sh directorio Visualiza el tamaño total del directorio .fdiskEn Linux el particionador estándar es el fdisk. Este posee una interfaz texto que permitecrear, modificar y borrar particiones de diversos tipos (Linux, FAT12/16 / 3 2, NTFS,minix, Linux Swap, HPFS, Novell, etc). Funciona en modo interactivo y para ejecutarlose le pasa como argumento el disco duro a particionar a través del dispositivocorrespondiente.# fdisk - l listar particionesDisk /dev /h d a: 255 heads, 63 sectors, 9729 cylindersUnits = cylinders of 16065 * 512 bytesDevice Boot Start End Blocks Id System/dev/ h da1 * 1 608 4883728+ b Win95 FAT32/dev/ h da2 609 9729 73264432+ 5 Extended/dev/ h da5 609 973 2931831 83 Linux/dev/ h da6 974 1046 586341 82 Linux swap#cfdisk /dev/hda ( inicia el editor de particiones fdisk ) ( ¡cuidado soloexpertos!)...........................m : menup : imprime las particionesq : salir............................dfEste se emplea para conocer información acerca de las particiones y dispositivosmontados actualmente en el sistema. Para cada dispositivo se muestra por defecto suAngelzero 14
  15. 15. Quinto Círculo Linux –Comandos Itamaño, el espacio empleado, que por cierto significa este, así como el directorio dondese ha montado.# df - h Ver particiones montadas actualmente en Mb y Gb.Filesystem Size Used Avail Use% Mounted on/dev /h d a11 3.9G 2.0G 1.7G 53% //dev /h d a8 9.2G 7.5G 1.2G 86% /home/dev /h d a7 17G 17G 410M 98% /win# df -Th Ver particiones montadas con su respectivo formato dearchivosFilesystem Type Size Used Avail Use% Mounted on/dev /h d a11 ext3 3.9G 2.0G 1.7G 53% //dev /h d a8 ext3 9.2G 7.5G 1.2G 86% /home/dev /h d a7 vfat 17G 17G 410M 98% /win#mkfs -t ext3 /dev/hda6 Formatear la partición hda6 con formato ext3ENLACE SIMBOLICOln : Este comando sirve para establecer enlaces entre archivos. Un enlace puede serrígido o simbólico, el primer tipo es simplemente una forma de dar otro nombre a unarchivo. El segundo tipo es parecido al primero, pero se pueden enlazar directorios, yademás de diferentes sistemas de archivos.# ln -s /ruta1 /archivo /ruta2/enlace (crean enlace simbólico)#ln -s /media/floppy0 /floppyEjemplo: Vamos a enlazar el archivo passwd que se encuentra en el directorio /etc, elrespectivo enlace lo vamos crear en /home, con el nombre de claves# ln - s /etc/passwd /home/claves# ln - sf /etc/shadow /home/clave_encriptada Crea enlace simbólico y eliminasi existiera igual enlace destino.MONTAJE Y DESMONTAJE DE DISPOSITIVOSmount y umountPara montar y desmontar los dispositivos se emplean los comandos mount y umountrespectivamente. Estos mantienen una lista de los dispositivos montados en el fichero/etc/mtab.Estos comandos se usan de la siguiente manera:Angelzero 15
  16. 16. Quinto Círculo Linux –Comandos IMONTAJE# mount /dev /fd0 /floppy montar disquete# mount /dev /cdrom /cdrom montar CD- RomMontar partición windows de disco duro#mkdir /mnt/windows# mount /dev/hda1 /mnt/window# mount - t vfat /dev/hda1 /mnt/windows montar partición especificandotipo de formatoMontar un DISPOSITIVO USB#mkdir /mnt/usb#mount /dev/sda /mnt/usb (si falla probar sda1 o sda2)DESMONTAJEObs: Antes de retirar un dispositivo montado hay que desmontarlo.# umount /floppy desmontar disquete# umount /cdrom desmontar CD- Rom# umount /mnt /windows desmontar partición hda1 de disco duro#umount /mnt/usb# umount - a desmontar todas las particionesEDITAR EL GRUB$sudo vi /boot/grub/menu.lstCONFIGURAR EL TECLADO#dpkg-reconfigure console-data$sudo vi /etc/X11/xorg.confCONFIGURAR LA TARJETA DE VIDEO (RESOLUCION)#dpkg-reconfigure xserver-xorg$sudo vi /etc/X11/xorg.confCONFIGURAR LA REDAngelzero 16
  17. 17. Quinto Círculo Linux –Comandos I#vi /etc/network/interfacesCONFIGURAR DNS#vi /etc/resolv.confNOMBRAMIENTO DE DISPOSITIVOS Y PARTICIONESDebemos saber de qué manera nombra Linux a los discos duros que tenemosconectados a nuestra máquina y sobre todo a sus particiones. Todos los discos duros(IDE) comienzan su nombre como hd.Un ejemplo de nombre completo de disco duro sería hda y de la primera partición de esedisco duro sería hda1.La ’a’ significa que ese disco duro está conectado al IDE1 como maestro. Si fueraesclavo tendría la ’b’, y si estuviera conectado al IDE2 como maestro, la ’c’, y siestuviera al IDE2 como esclavo, la ’d’.Si en caso tuviésemos un disco duro SATA se representaría con la letra ‘s’ como sda.El número 1 indica que es la primera partición (primaria y no lógica) del disco duro encuestión. La segunda geométricamente hablando (primaria) sería la 2 y asísucesivamente. La primera partición lógica de un disco duro se nombra con el número5, independientemente de si pertenece a la primaria 1, 2, 3 ó 4. La segunda se nombraríacon un 6 y así sucesivamente.Con saber lo que significa hda1 o hdd2 o hdc5 es suficiente de momento ADMINISTRACION DE USUARIOS, GRUPOS Y PERMISOSIntroducciónGNU/Linux es un sistema operativo con muchas características y una de estas es el estardiseñado para ser utilizado por múltiples usuarios. Aún cuando se tenga una PC con unúnico usuario, es importante recordar que no es conveniente realizar el trabajo diariodesde la cuenta de root, misma que solo debe utilizarse para la administración delsistema.Una cuenta de usuario contiene las restricciones necesarias para impedir que seejecuten mandatos que puedan dañar el sistema -programas troyanos como el Bliss-, sealteren accidentalmente la configuración del sistema, los servicios que trabajan en eltrasfondo, los permisos y ubicación de los archivos y directorios de sistema, etc.UsuariosLinux es un sistema multiusuario por lo que es necesario la administración (segura) delos distintos usuarios que van a hacer uso de los recursos del sistema.Dentro de un sistema existen al menos 3 tipos de usuarios.Angelzero 17
  18. 18. Quinto Círculo Linux –Comandos I • Usuarios normales con más o menos privilegios que harán uso de los recursos del sistema. Son generalmente inexpertos y propensos a causar problemas. Simplemente deben poder usar algunos programas y disponer de un directorio de trabajo. • Usuarios de Sistema son aquellos encargados de los demonios del sistema, recordemos que para Linux todo es un fichero, el cual tiene un dueño y ese dueño tiene privilegios sobre él. Así, es necesario que algún usuario del sistema posea los procesos de los demonios. • ROOT Este es dios. Él lo puede todo, en principio no hay restricciones para ÉL (aunque algunos programas nos avisarán de que estamos haciendo una auténtica burrada desde el punto de vista de la seguridad).Administración de UsuariosLa administración de usuarios se realiza en todas las distribuciones de manera muyparecida, dadaLa herencia UNIX, aunque en el fondo todas hacen lo mismo. Según la política quelleven lo pueden realizar de una manera u otra.$sudo vi /etc/passwd - Archivo que mantiene la base de datos de los usuarios delsistema y tiene la siguiente forma:nombre_de_usuario:password:UID:GID:comentario:home_del_usuario:shellEstos campos son: o Nombre de Usuario - Es el nombre con el que entrará en el sistema. o Password - La palabra de paso necesaria para entrar (cifrada). o UID - (User ID) Número que lo identifica en el sistema, recordemos que los ordenadores se llevan mejor con los números. o GID - (Group ID) Número que identifica al grupo principal al que pertenece el usuario. o Comentario - Opcional, si es necesario aclarar algo, esto solo es para el administrador, pues el sistema no lo usa. o home_del_usuario - Ruta absoluta del directorio de trabajo del usuario. o Shell - Intérprete de comandos del usuario, que será el que use inmediatamente después de entrar en el sistema, por defecto es /bin/bash. Para usuarios sin login, la shell no válida típica para poner en este campo es /bin/false.• $sudo vi /etc/group - Archivo de los grupos del sistema; de su administración. El archivo tiene la siguiente estructura: nombre_grupo:password:GID:lista_usuariosAngelzero 18
  19. 19. Quinto Círculo Linux –Comandos I o Nombre del Grupo - Por defecto con los comandos habituales se crea un grupo con el mismo nombre que el usuario creado, aunque pueden existir otros grupos con nombres específicos. o password - Se usa para dar a una serie de individuos un mismo directorio con una cuenta común. o GID - (Group ID) Número de Identificación en el Sistema del grupo. o lista de usuarios que pertenecen al grupo, separados por comas.• $sudo vi /etc/shadow - Para sistemas que usen shadow, que no es más que una medida de seguridad. Los sistemas que no usan shadow guardan el password en /etc/passwd pero este archivo tiene la peculiaridad de que debe ser legible por todo el mundo, si no, no podría ni hacerse un ls. Este archivo podría caer en manos de un usario ilegítimo y este ejercer técnicas de crackeo sobre las claves. Como solución del problema lo que se hace es almacenar todos los datos de los usuarios en el /etc/password menos sus contraseñas; que se almacenan en /etc/shadow, el cual sí tiene restringidos los permisos y no es accesible por los usuarios normales. usuario:password:días del último cambio: dias antes del cambio:Dias despues del cambio: tiempo de aviso:dias antes de la inhabilitacion: perido que lleva caducado:reservado: o Usuario - Nombre del usuario o password - Aquí sí, es el password cifrado. o Tiempo del último cambio de password - Pero el tiempo cuenta desde el 1 de enero de 1970, comienzo de la era UNIX. o Días antes del cambio - Periodo (en días) donde el password debe ser cambiado. o Dias despues del cambio - En los días después donde debe ser cambiado. o Tiempo del aviso - Periodo en el que el sistema tiene que avisar de la necesidad del cambio. o Inhabilitación - Días antes de la inhabilitacion de la cuenta. o Perido caducado - Días desde el 1 de enero de 1970 en el que la cuenta está deshabilitada. o Campo reservadoPor razones de seguridad son vipw para el archivo /etc/passwd y vigr para editar /etc/group;Ejemplo:$sudo vipwY nos mostrara /etc/passwd1.- Lo primero es entrar como rootAngelzero 19
  20. 20. Quinto Círculo Linux –Comandos I2.- Antes de nada, el comando su se explica al final de este capítulo. Ya estamoseditando el fichero /etc/passwd, ahí estarán las lineas de otros usuarios que ya esténcreados. Esto que sigue es un ejemplo.• Hemos escrito un nombre cualquiera (prueba), el password le ponemos x dado que esun sistema con shadow. Si queremos crear una cuenta sin contraseña, en este campo envez de la x no pondremos nada. ADVERTENCIA: Esto es un considerable riesgo deseguridad. Incluso una cuenta de usuario puede usarse para hallar información útil paraposteriormente poder atacar un sistema.3.- Ahora hay que tocar en /etc/group para crear el grupo del usuario (todo usuariotiene un grupo principal), le damos el mismo nombre que al usuario, y el GID quehemos puesto antes, el 1005. Por supuesto, tanto los UID como los GID no pueden estarrepetidos, así que nos aseguramos de coger uno que no esté ya cogido. Entonces,hacemos:Bueno lo peor será calcular la fecha de creación pero sino randomized() :-). Notad queen el campo password le hemos puesto ! porque ahora le daremos un password conpasswd. Ejecutamos passwd y pasamos el nombre del usuario como argumento. Introducimos el password para ese usuario, hay que darse cuenta de que a medidaque escribimos, por razones obvias de seguridad no se irá escribiendo nada. Repetimos la passwordSi no hay error, listo.6.- Ahora le tenemos que crear el directorio de trabajo, por convenio los directorios detrabajo de los usuarios normales están bajo /home, y suelen ser /home/usuario.7.- Copiamos los archivos de inicio desde /etc/skel , que contiene principalmentearchivos de configuración por defecto.Angelzero 20
  21. 21. Quinto Círculo Linux –Comandos I8.- Y por último, hay que hacer que tome posesión de lo que es suyo:Este último comando se explica más adelante. Ahora sólo falta hacer:También, en vez de usar su, podemos hacer login en el shell directamente con el nuevousuario creado para comprobar que lo hemos hecho correctamente.Esto es lo que hace cualquier Linux para crear una cuenta. La forma de borrar unusuario es igual de fácil, borrándolo en /etc/passwd, /etc/group y en /etc/shadow.Cualquier rastro del usuario debería también ser eliminado, además de que seríabastante recomendable (si no necesario) hacer una busqueda de los archivos que elusuario mantiene. Esta búsqueda podría ser:De esta manera los podemos guardar, revisar y hacer lo conveniente con los archivos.Más sobre find en secciones posteriores.A continuación veremos los comandos que hacen esto mismo y alguna diferencia entrelas distintas distribuciones.Comandos de AdministraciónEstos comandos nos permitirán crear, borrar y modificar las cuentas de usuarios en elsistema.adduser y useradd son dos comandos que hacen prácticamente lo mismo. Nota que elestándar es useradd, adduser puede, en algunas distribuciones ser un simple enlace auseradd, o simplemente no existir. El comportamiento por defecto de useradd es muysubjetivo dependiendo de la distribución de Linux que estemos usando. Así, mientrasque en algunas distribuciones hará casi todos los pasos anteriores por nosotros, en otrassólo añadirá el usuario a /etc/password y /etc/shadow, teniendo que realizarnosotros los pasos restantes. Aun así, las opciones que recibe useradd responden igualen todas las distros. Como ya hemos hecho con algún otro comando, puedes ver lasopciones de useradd mediante man useradd, moverte con las teclas de dirección yvolver al shell pulsando la tecla Q.Las opciones más comunes para useradd son:Angelzero 21
  22. 22. Quinto Círculo Linux –Comandos I • -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. • -G Aunque esta opción no está en el comando de ejemplo que hemos puesto arriba, es muy útil, puesto que permite especificar la lista de grupos a la que también pertenecerá el usuario aparte del grupo principal. Por ejemplo -G audio,cdrom,dip añadido en el comando anterior haría que usuario perteneciese a estos grupos además de al suyo principal.Siempre podemos matizar detalles en la creación de usuarios editando los ficheros deconfiguración que ya conocemos.La cuenta del usuario no estará activada hasta que no le asignemos un password. Esto lopodemos hacer vía password nombre_de_usuario (para cambiar el passwordprocederíamos exactamente de la misma forma). Cualquier usuario normal puedecambiar su password cuando haya entrado al sistema, bastando en este caso con escribirel comando password sin argumentos ni opciones.Para desactivar una cuenta de usuario sin necesidad de borrala del sistema, podemoseditar /etc/passwd y cambiar la x por un ! en el campo del password. La cuenta sehabilitaría asignando un password con password o bien volviendo a poner la x quehabía, quedando la cuenta entonces con el mismo password que tenía antes dedeshabilitarla.Podríamos, si nuestra distro dispone de ellas, utilizar las herramientas interactivas paracrear usuarios (a veces incluso existen interfaces gráficas de ventanas para gestionarusuarios y grupos, solo accesibles por root); generalmente adduser. Aunque puedenresultar más cómodas, siempre es conveniente saber el método general de creación deusuarios, de tal forma que esos conocimientos nos servirán para cualquier distribuciónde Linux que vayamos a usar.En algún momento podríamos necesitar editar una cuenta de usuario creada, o borrarla.Existen también comandos de administración estándares para esto; son usermod yuserdel. Puedes ver sus páginas del manual con man. Aunque, una vez más, editandolos ficheros de configuración no necesitarás memorizar opciones para efectuar esoscambios.El comando whoami muestra el nombre de usuario que está dentro del sistema usando elshell desde el que se le llama.Angelzero 22
  23. 23. Quinto Círculo Linux –Comandos IGruposEn la administración de grupos no vamos a gastar muchas energías ya que no es, en unnivel básico, algo excesivamente complejo.Los grupos es una manera en los sistemas multiusuario como Linux de otorgar una seriede privilegios a un conjunto de usuarios sin tener que dárselo de forma indivial a cadauno.El fichero encargado de mantener los grupos del sistema es /etc/group y tambiénhemos visto su estructura. Por lo que veremos los comandos que añaden, quitan ymodifican los grupos; así como notas generales en la gestión de grupos.Hemos dicho que todo usuario tiene siempre un grupo principal al que pertenece. Haydos posibilidades para los usuarios normales: que todos tengan el mismo grupoprincipal (generalmente users) o que cada usuario tenga un grupo principal específico(casi siempre del mismo nombre que el usuario). Esto responde a las necesidades decada sistema. En el primer caso, los directorios de trabajo de los usuarios suelen seraccesibles por el resto de usuarios (no es lo más común); mientras que en el caso de quecada usuario tenga un grupo principal, lo normal es que los directorios de trabajo decada usuario sean sólo accesibles por ese usuario (que sí es lo más común).La utilidad del grupo principal de un usuario se entenderá mejor cuando lleguemos a lospermisos.Además, en el sistema hay más grupos que los principales de cada usuario. La misión deestos otros grupos es la de otorgar unos permisos similares al conjunto de usuarios queforman parte de él ante un directorio, un archivo, un dispositivo, etc.Es muy común la necesidad de dar a unos cuantos usuarios permisos para que puedan,por ejemplo, leer los documentos de un directorio determinado (por ejemplo, informesde una empresa), al tiempo que al resto de usuarios no. Así, podríamos crear un grupollamado contables, y agregar los usuarios que son contables a este grupo. Después,haríamos pertenecer (como veremos en Permisos) el directorio mencionado a estegrupo, y le daríamos permisos de lectura para el grupo.Además de para compartir archivos o directorios entre varios usuarios, existen gruposcomo audio, cdrom, y similares. Dispositivos como la tarjeta de sonido, el grabador deCDs, etc. tienen como usuario "dueño" a root, y como grupo "dueño" a uno de estosgrupos. Así, para cada usuario que queramos que pueda usar la tarjeta de sonido,debemos añadirlo al grupo audio.Administración de gruposYa hemos aprendido cómo establecer el grupo principal de un usuario, y cómo hacer ala hora de su creación que pertenezca a otros grupos adicionales; así como el fichero/etc/group. Así que ya no queda mucho en este aspecto.Angelzero 23
  24. 24. Quinto Círculo Linux –Comandos IPara añadir un usuario a un grupo de forma manual, todo lo que hay que hacer es editar/etc/group y añadir al usuario a la lista del último campo. Si ya hay usuarios, éstos seseparan con comas.Si lo que queremos es crear un nuevo grupo de forma manual, la cosa es igual desencilla. Al igual que ya hicimos agregando el usuario prueba de forma manual,añadiremos otra entrada a este fichero con el nombre del grupo, la x en el password, unGID que no esté siendo usado y la lista de usuarios detrás.También tenemos comandos que hacen esto mismo: groupadd , groupdel y groupmod.groupadd sirve para crear un nuevo grupo:La opción -g va seguida del Group ID (numérico) que asignaremos al grupo, y grupo esel nombre del grupo creado. Si no indicamos la opción -g, el sistema seleccionará pornosotros un número GID que no esté siendo usado.Lo mismo que sabemos ya sobre la edicición y borrado de usuarios es aplicable a losgrupos. Lo más fácil es editar el fichero /etc/group directamente; recordando que siquitamos un grupo, ningún usuario podrá tener ese grupo como su grupo principal; yademás que tendremos que cambiar los permisos (después más en esto) de los archivosque perteneciesen a este grupo pues de no hacerlo los estaríamos dejando asignados a unGID inexistente para el sistema, y esto no es recomendable.Un comando curioso es groups, que mostrará una lista de grupos a los que el usuarioactual pertenece.Permisos y dueñosTodos y cada uno de los elementos del sistema / de Linux tienen dueño, ya seanficheros, directorios, o enlaces a dispositivos. Por un lado, tienen un usuario dueño, ypor otro, un grupo dueño. El usuario y el grupo que son dueños de un elemento notienen por qué guardar una relación del tipo que el usuario debería estar dentro delgrupo o cosas por el estilo. Son totalmente independientes. Así, puede existir un ficheroque tenga como usuario propietario a username, un usuario normal, y tener como grupopropietario al grupo root.Cuando se trabaja en el sistema, los programas "hacen dueños" de los ficheros creadosdurante la sesión al usuario de esta sesión y a su grupo principal por defecto; aunqueesto puede cambiarse. Es lógico, que los ficheros que estén bajo el directorio de trabajode un usuario le pertenezcan.Siempre que tratemos con permisos y con dueños de elementos, debemos tener siemprepresente el hecho de que el sistema de ficheros de Linux es jerárquico; esto implica quelos cambios que hagamos, por ejemplo, en un directorio, pueden influir en el resto deelementos que están contenidos en un nivel inferior a éste (los archivos que contiene,Angelzero 24
  25. 25. Quinto Círculo Linux –Comandos Ilos directorios que contiene, lo que contienen esos otros directorios, y asísucesivamente).Con un simple ls -l en cualquier parte del sistema, podemos ver en la forma usuariogrupo los dueños de cada elemento que sale en el listado largo. Entonces ya sabemoscómo comprobar esto.El comando chown (CHange OWNer - cambiar propietario) permite cambiar elpropietario de los elementos del sistema de archivos. Pero es lógico que si somos unusuario normal no podremos cambiar de propietario los elementos que pertenecen a rooto a otros usuarios. En cambio, como root podremos cambiar el propietario de cualquiercosa. Aquí describimos las opciones más usadas de este comando, pero puedes irmirando su página del manual del sistema.En el primero de los dos comandos anteriores, el usuario dueño de elementos(s) serácambiado a usuario. El grupo deuño de elemento(s) se conservará el que estuviera antesde introducir este comando.Con respecto al segundo comando, actúa exactamente igual que el anterior, con lapequeña diferencia que también cambiará el grupo dueño de elemento(s) pasando a sergrupo. Si sólo queremos cambiar el grupo de un elemento o lista de ellos, podemos usarel comando chgrp.Elemento(s) puede ser una lista de archivos y directorios, o simplemente uno de ellos.Podemos usar los wildcards conocidos (como por ejemplo el asterisco: * para indicarvarios archivos con una sola expresión. La importante opción -R permite cambiardueños de directorios y de todo lo que tengan debajo, es decir, recursivamente:Este comando cambiará el usuario y grupo dueños tanto de directorio/ como de todo loque contenga hasta cualquier nivel, es decir, todo lo que esté "debajo" de directorio, y eldirectorio mismo cambiarán de dueño.¿Y para qué todo esto de los dueños de archivos y directorios? Para poder asignarpermisos adecuadamente.Un archivo tiene distintos niveles de permisos: lectura, escritura y ejecución. Lospermisos sobre un archivo (o directorio) pueden ser distintos para el usuario dueño, paralos usuarios pertenecientes al grupo dueño, y por último para el resto de los usuarios delsistema. Así, podemos hacer que el usuario dueño puede leer, escribir, y ejecutar unfichero; que el grupo dueño solo pueda leerlo, y que el resto de usuarios del sistema notengan ningún permiso sobre él, por ejemplo.Angelzero 25
  26. 26. Quinto Círculo Linux –Comandos IUna buena asignación de dueños de elementos junto con una política adecuada depermisos sobre estos elementos, permiten obtener dos cosas: un sistema multiusuario, yun sistema seguro.Si haces un ls -l en un directorio que tenga algunas cosas verás algo como:Fíjate en el campo de más a la izquierda del listado. Podemos ver como cuatro grupos.El primero es de un caracter solamente. Este caracter es una d si el elemento listado esun directorio, una l si el elemento es un enlace, y un guión - si el elemento es unarchivo normal.A continuación hay tres grupos. Cada uno de estos grupos tiene tres letras, pudiendo serestas rwx o pudiendo ser sustituidas en algún caso por un guión. El primero de estosgrupos indica los permisos que tiene sobre el elemento listado su usuario dueño; elsegundo grupo indica los permisos que tienen sobre el elemento los usuarios quepertenezcan al grupo dueño, y el tercer grupo indica los permisos que tienen sobre elelemento el resto de usuarios del sistema.En el caso de un archivo o un enlace (sobre los que hablaremos posteriormente), la r encualquiera de estos "grupos" indica que se tienen permisos de lectura sobre el elemento.La w indica que se tienen permisos de escritura sobre el elemento, y la x indica que setienen permisos de ejecución sobre el elemento. Un guión sustituyendo a cualquiera deestas letras indica que no se tiene el permiso al que está sustituyendo. Así, veamos algúnejemplo del listado anterior:Es un archivo porque su primer caracter es un guión. Su usuario dueño es root, y sugrupo dueño es el grupo root también. root tiene todos los permisos sobre él: rwx, estoquiere decir que puede leer el archivo arch, escribir en él y ejecutarlo. El grupo root sólolo puede leer y ejecutar, y el resto de usuarios del sistema, también sólo pueden leerlo yejecutarlo.El caso de los directorios es un poco distinto. Los permisos rwx para un directorio,indican: la r y la x para el caso de un directorio difícilmente se entienden separadas.Son necesarias para que un usuario pueda "examinar" ese directorio, ver lo que tiene ynavegar por él. La w indica que el usuario que posea este permiso puede colocar nuevosarchivos en este directorio; así como también borrarlo.Angelzero 26
  27. 27. Quinto Círculo Linux –Comandos ILo más común es que los directorios que deban poder ser "examinados" por todos losusuarios tengan permisos r-x en el tercer grupo de permisos. Pero con estos permisosno podrán colocar nada dentro de ese directorio, aunque sí podrán hacerlo dentro de undirectorio de nivel inferior en el que sí tengan permisos de escritura. Ten en cuenta quesi tenemos por ejemplo un directorio llamado superior/ y dentro de éste tenemos undirectorio llamado personal/, y que un usuario tienen permisos de escritura en estesegundo directorio, que es de nivel inferior, para poder acceder a él y escribir, debe esteusuario poseer, como mínimo, permisos r-x en el de nivel superior, esto es, ensuperior/. Por otra parte, esto es absolutamente lógico: ¿cómo va a poder escribir unusuario en un directorio si no puede llegar hasta él? Esto mismo también se aplica parala lectura. Por ejemplo, el servidor web no podrá servir un directorio a la Internet si nodispone de permisos r-x para los directorios superiores a él.Para cambiar los permisos de los elementos del sistema de ficheros, usamos el comandochmod.La opción -R es opcional, y cumple exactamente la misma función que en el comandochown. A B y C son un número de una cifra respectivamente. El primer númerorepresenta los permisos que estamos asignando al usuario dueño , el segundo los delgrupo dueño, y el tercero los del resto de usuarios. Cada una de las cifras posiblescorresponde con los permisos del usuario en binario; aunque es más fácil aprendersequé hace cada cifra que pasar la cifra a binario cada vez que queramos cambiar lospermisos a algo. Algunos ejemplos: • El 4 en binario es 100, por tanto, los permisos que otorga son r--, esto es, sólo lectura. • El 5 en binario es 101, por tanto, los permisos que otorga son r-x, lectura y ejecución. • El 6 en binario es 110, por tanto, los permisos que otorga son rw-, lectura y escritura. • El 7 en binario es 111, por tanto, los permisos que otorga son rwx, lectura, escritura y ejecución.Los permisos de ejecución sólo se otorgarán a programas o scripts (con los quetrataremos después); ya que hacerlo a los archivos normales carece por completo desentido. Así, un comando de ejemplo podría ser:Este comando asignaría permisos de lectura y de escritura al usuario propietario, ypermisos de lectura a los usuarios del grupo dueño, y ningún permiso al resto deusuarios para el archivo mitexto. Puedes ir haciendo pruebas combinando los distintosnúmeros y ver los permisos que otorgan mediante ls -l. Recuerda que los directoriosque quieras que puedan ser "examinados", debe tener permisos de "ejecución" por partede los usuarios que quieras que puedan acceder a ellos, por ejemplo podrías asignarloscon el número 5. A los que además quieras que puedan crear archivos en ese directorio,Angelzero 27
  28. 28. Quinto Círculo Linux –Comandos Ipodrías darle esos permisos mediante el número 7. Con la opción -R puedes hacer quelos permisos se asignen de modo recursivo a un directorio y a todo lo que hay debajo deél.Un modo muy común para los directorios que deban ser accesibles por todo el mundo es755, de forma que el usuario dueño pueda además escribir. Los directorios/home/usuario suelen tener permisos 750 para que el resto de usuarios no puedanacceder al directorio de trabajo de un usuario. Aviso Una mala asignación de permisos puede dar lugar a ataques locales, si dejamos aalgunos usuarios permisos para modificar partes importantes del sistema de ficheros.Ten cuidado cuando cambies permisos, sobre todo si eres root.Un modo muy común de añadir permisos de ejecución a un archivo (generalmente unscript) para todos los usuarios del sistema, sin tener que estar recordando qué númerosotorgan permisos de ejecución, es usar la opción +x de chmod, por ejemplo:Esta forma de asignar permisos es extensible, y según los casos, más sencilla que la delos números. En general es así:Donde A es u (usuario), g (grupo) o bien a (todos). Cuando es a, se puede omitir.B es + o bien - , indicando el primero añadir un cierto permiso y el segundo quitarlo.C es r (lectura), w (escritura) o bien x (ejecución).Ejemplos:El primer comando otorga permisos de escritura sobre fichero a los usuarios del grupoal que el fichero pertenece.El segundo comando elimina los permisos de lectura sobre fichero a todo el mundo.El tercer comando da al usuario dueño de fichero permisos de ejecución.Angelzero 28
  29. 29. Quinto Círculo Linux –Comandos IEl comando suEl comando su (Set User) está relacionado con el login en el sistema y con lospermisos. El uso principal de este comando es que un usuario normal adquiera lospermisos de otro usuario del sistema (incluido root) siempre y cuando sepa su password.Es muy común que, si somos nosotros el "dueño" de la contraseña de root, y por tanto lapersona encargada de la administración del sistema, trabajemos normalmente comousuario normal por motivos de seguridad. Pero podemos necesitar convertirnos en rootpara alguna tarea específica: reiniciar el servidor web, modificar la configuración delsistema... para después volver a "ser" nuestro usuario normal.su llamado "a secas" como en el ejemplo anterior asume que el usuario actual quiereadquirir los permisos de root. Si proporcionamos el password adecuado ya lostendremos. Podemos ahora hacer las tareas de administración que necesitemos.Escribiendo exit volveremos a "ser" nuestro usuario normal.Hay gente que considera útil tener siempre "en segundo plano" una shell con permisosde root. Esto se puede conseguir con los comandos suspend, fg y jobs. Por ejemplo: Detenemos la shell con permisos de root y la dejamos "esperando". Nos informa de que se detuvo, y le asigna el número de referencia 1 pararecuperarla posteriormente. Recuperamos la shell con permisos de root.Mediante suspend podemos detener la shell con permisos de root que arrancamos antesmediante su y recuperarla cada vez que necesitemos permisos de root sin necesidad deteclear el password de nuevo. Escribiendo exit en la shell con permisos de rootpodríamos abandonarla definitivamente.su nos permite también adquirir los permisos de otros usuarios del sistema siempre quetengamos su password:Angelzero 29
  30. 30. Quinto Círculo Linux –Comandos ILa diferencia entre su usuario y su - usuario es, que mientras que con el primercomando simplemente adquirimos los permisos de usuario, con el segundo comando escomo si estuviésemos haciendo login desde el principio con usuario, así, todas lasvariables de entorno y demás serán cargadas igual que si hubiésemos hecho loginrealmente. Esto también se aplica para root (su -). La shell que se arranca mediante lasegunda forma se llama shell de login, y como puedes comprobar, no se puedesuspender como hicimos anteriormente. Salimos de ellas también con exit.El usuario root puede usar su o bien su - sin necesidad de introducir ningún passwordpara adquirir en un shell los permisos de cualquier usuario del sistema.sudosudo (SUperuser DO) es una herramieta que permite otorgar a un usuario o grupos deusuarios normales, permisos para ejecutar algunos comandos como root (o como otrosusuarios) sin necesidad de conocer su password. Es posible que no esté instalado en tudistribución de Linux y tengas que instalarlo tú. En capítulos posteriores tienesinformación sobre cómo instalar software adicional en el sistema.El fundamento de sudo reside en su fichero de configuración, el fichero /etc/sudoers.Este fichero tiene, en los casos más sencillos, dos partes: una parte de alias y otra partede reglas. La parte de alias, lo que hace es "agrupar" de alguna manera listas de usuariosy listas de aplicaciones (incluso listas de máquinas de una red, pero esto es másespecífico y no lo explicaremos aquí). La parte de reglas define qué grupos de usuariospueden usar qué grupos de programas con permisos distintos de los suyos y en quécondiciones pueden hacerlo. Un fichero sencillo que nos podría servir podría ser como:Angelzero 30
  31. 31. Quinto Círculo Linux –Comandos IEsto con respecto al fichero /etc/sudoers. En la parte de alias, Cmnd_Alias indica unalista de comandos (programas) que serán luego referidos mediante el nombre que ledemos (asginar alias aquí tiene similitud con asignar variables de entorno en el shell).User_Alias agrupa a una lista de usuarios bajo un mismo nombre (en nuestro casoUSERSGRAB).En cuanto a la parte de reglas, primero se especifican los usuarios (puede ser un aliasdefinido anteriormente como en el primer caso, o bien puede ser un grupo de usuariosdel sistema, precediendo su nombre por %), el ALL que sigue hace referencia a en quémáquinas podrán hacer esto, y el NOPASSWD: indica que lo harán con permisos de root ysin necesidad de teclear su password. Después viene el alias con los comandos quepodrán ejecutar en las condiciones que hemos dado.Recuerda que el fichero /etc/sudoers se edita con el comando visudo, por razones deseguridad, y como root. sudo no altera la estructura de permisos del sistema de ficherosde Linux, es decir, por muchos cambios que hagamos en el fichero de configuración desudo, los permisos de los programas seguirán siendo los mismos. La diferencia está enque estos "permisos especiales" que estamos otorgando a algunos usuarios se aplicancuando el programa que se quiere ejecutar se llama mediante sudo; así, un usuario quequiera ejectar el programa cdrdao con estos permisos especiales deberá hacerlo así:Esto es lo más básico que necesitas saber sobre sudo para ejecutar algunos comandoscómodamente como usuario normal al tiempo que mantienes la seguridad del sistema.sudo es una herramienta que permite configuraciones mucho más complejas que las quehemos visto aquí; siempre puedes leer sus páginas del manual del sistema (man sudo yman sudoers).PROCESOS EN EL SISTEMAProceso es un programa en ejecución.Proceso padre ==> init PID=1PID: Identificador de proceso# ps - A (muestra todos los procesos que están corriendo en el sistema) PID TTY TIME CMD 1 ? 00:00:00 init 2 ? 00:00:00 ksoftirqd/0 3 ? 00:00:00 events/0 4 ? 00:00:00 khelper 5 ? 00:00:00 kacpid 37 ? 00:00:01 kblockd/0 47 ? 00:00:00 pdflush 48 ? 00:00:00 pdflush#ps auxAngelzero 31
  32. 32. Quinto Círculo Linux –Comandos I#kill -9 PIDEjemplo#kill -9 200#killall nombre_proceso#killall xmms#pstree#pstree -au (Muestra una jerarquización en forma de árbol de los procesos presentesen el sistema)Información del Sistema en tiempo real#top# Ctrl + c (termina el proceso por completo)# Ctrl + z (pone en pausa un proceso que corre en primer plano)# bg (hace que el proceso en pausa empiece a funcionar pero en 2do plano)# fg (hace que el proceso en pausa empiece a funcionar en 1er plano)Angelzero 32
  33. 33. Quinto Círculo Linux –Comandos IScripts de inicio del sistema y ejecución programada de comandos.INTRODUCCIONAhora que conocemos suficientes comandos como para hacer varias cosas útiles en elsistema, hacer que algunos se ejecuten automáticamente es una necesidad inmediata.Una de las formas posibles es que estos comandos se ejecuten siempre que arranquemosel sistema. La principal utilidad de todo esto son los demonios (“Qué son”),principalmente comandos que ofrecen servicios (web, ftp, correo...). Lo ideal sería notener que preocuparnos cada vez de iniciarlos, sino que siempre estén activos. Esto loconseguiremos con los scripts de inicio.Otra de las formas es hacer que se ejecuten periódicamente (una vez cada hora, una vezal día, ciertos días de la semana a la hora especificada...). El encargado de facilitarnosesta tarea será en este caso el demonio crond.Scripts de inicio del sistema. RunlevelsLa mayoría de las distribuciones de Linux se rigen por el System V Init para gestionarlos scripts de arranque, así que es este el sistema que describimos aquí. A pesar de todohay pequeñas diferencias de una distribución a otra, principalmente relativas a en quédirectorio están determinados ficheros. En cualquier caso no son difíciles de encontrar.Otras distribuciones, como Gentoo o Slackware, tienen el método de inicio bastantedistinto (Gentoo es SystemV modificado, y Slackware usa el BSD Init).Qué son los runlevels. DirectoriosLos RUNLEVELS o también llamados NIVELES DE EJECUCIÓN son un conceptoimportante en los sistemas UNIX y por extensión en Linux. Hay varios runlevelsdisponibles, del 0 al 6 (puede haber alguno más, pero generalmente estos son los que seusan), 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áquinaque tiene dos usos, PC de escritorio y servidor de red. Estableceríamos entonces dosrunlevels distintos. En uno de ellos configuraríamos para arrancar simplemente elAngelzero 33
  34. 34. Quinto Círculo Linux –Comandos Iservidor gráfico XWindow y un entorno de ventanas, y en el otro los distintos demoniosservidores: servidor web, servidor DNS...Cada uno de estos runlevels tendría un número distinto. Si durante una épocadeterminada la máquina sólo va a funcionar como servidor, la configuraríamos para usarel runlevel correspondiente, que sólo cargaría al inicio los demonios de los servidores, yno cargaría el servidor gráfico de ventanas XWindow puesto que no lo necesita. Sidurante otra época va a funcionar como PC de escritorio, la configuraríamos para usar elotro runlevel y nos evitaríamos tener que estar deteniendo los demonios que nonecesitamos.El runlevel 0 es para apagar la máquina, y el runlevel 6 es para reiniciarla. Es obvio queno 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 (generalmentesignifican arrancar el sistema en modo multiusuario; a veces pueden ser equivalentes, oel 5 arrancar el servidor gráfico X y el 3 no hacerlo -- el equivalente en Debian suele serel 2). El nivel 1 queda reservado para el modo monousuario que nos servirá paraadministrar la máquina; normalmente este modo no tendrá red y pedirá la password deroot antes de permitir ejecutar ningún comando.En /etc/init.d residen unos scripts, uno por cada servicio, que aceptan siempre unprimer argumento, que puede ser "start" o "stop" (arrancar o detener el servicio). Encada 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/rcS.d o bien/etc/rc.d/rcS.d dependiendo de la distribución de Linux usada ( En este casousamos UBUNTU la letra es “S”), donde S es el número de runlevel correspondiente.Dentro de cada uno de ellos, hay una serie de enlaces simbólicos que apuntan hacia losscripts 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 unnúmero. El objetivo de esta forma de nombrarlos es que en un runlevel determinado seejecutan en orden alfabético. Así, para una misma letra, un número bajo indica que seráejecutado antes.init, el primer procesoInmediatamente después de que el kernel se cargue en memoria, inicialice el hardwareadecuadamente, y monte el sistema de ficheros, el comando /sbin/init da lugar al primerproceso del sistema, init, que es el padre de todos los procesos y el encargado degestionar la configuración de los runlevels para iniciar los servicios adecuados.init lee el fichero /etc/inittab (comentado a continuación). De él determina cuál es elrunlevel por defecto (en el que iniciará), y algunas opciones.Antes de iniciar el runlevel correspondiente, lo más común es que se ejecute un script(independientemente del número de runlevel). El nombre y la ubicación de este script seespecifican también en /etc/inittab. Su misión es realizar tareas que siempre sonAngelzero 34
  35. 35. Quinto Círculo Linux –Comandos Inecesarias; inicializar el teclado, los puertos serie, resolver las dependencias de losmódulos, sincronizar el reloj del sistema con el reloj del hardware, definir el nombre delhost... y cosas similares.A continuación, init recurre a los enlaces simbólicos de /etc/rcS.d (o equivalente),ejecutando cada uno de ellos con un primer argumento, en este caso, "start".Esto arranca todos los servicios correspondientes del runlevel (creando los nuevosprocesos correspondientes). Seguidamente ejecuta varios terminales que esperan ellogin de los usuarios (las terminales a las que accedemos con Ctrl+Alt+F1...). Estotambién está descrito en el fichero /etc/inittab.El sistema ya ha arrancado y ahora es usable.El fichero de configuración de init: /etc/inittabEn este fichero definiremos qué es lo que el sistema ejecutará en cada runlevel y todosesos 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_ejecutarDonde: • 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 porquealgunos valores de este campo hacen que se ignore el campo runlevels.Lo mejor es ver algún ejemplo típico de un fichero /etc/inittab para ver cómo secombinan las diversas opciones. Este fichero suele tener comentarios que clarificancómo están dispuestos los scripts de inicio por la distribución de Linux que estemosusando. En el ejemplo, los números indicados representan puntos que se comentan acontinuación.Angelzero 35
  36. 36. Quinto Círculo Linux –Comandos IEste podría ser un fichero de configuración de init a grandes rasgos. Algunasdistribuciones añadirán más cosas, por ejemplo podrían poner un campo que ejecutasexdm (el programa de login gráfico) en el runlevel especificado, mientras que otraspodrí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. Puedeeditarse este fichero y cambiarse por otro. Existen una serie de operaciones, como ya vimos, que son necesarias en todoslos runlevels, así que el script indicado en esta línea será ejecutado antes de cargarcualquier runlevel (esto lo causa "sysinit" al estar en el campo acción).Esto está resuelto de formas distintas en distribuciones distintas, pero el script indicadotendrá comentarios y referencias que nos ayudarán a entender cómo funciona en nuestrosistema.Angelzero 36
  37. 37. Quinto Círculo Linux –Comandos IEn RedHat y similares, es este fichero el que contiene los comandos a ejecutardirectamente. En Debian, el script ejecuta todos los scripts que haya dentro deldirectorio /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 variarsegún la distribución) con un argumento, el número de runlevel en cuestión. Así, estecomando se encarga de ejecutar los scripts enlazados en el directorio rcN.d, donde N esel número de runlevel, pasándoles generalmente el argumento "start" para iniciar estosservicios.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 teclasCtrl+Alt+DEL con el comando especificado, en este caso, reiniciar la máquina medianteshutdown. Estas líneas inician las terminales en los runlevels indicados. El comando que lohace puede ser getty o alguno similar. tty1 a tty6 son las terminales locales accesiblesmediante Ctrl+Alt+F1 a F6. tty7 suele estar reservado para utilizar el servidor gráficoX-Window. Estas terminales esperan a que les sea introducido un nombre de usuario ydespués llaman a login para autentificar al usuario y devolverle una shell válida en casode éxito. Algunos comandos similares a getty permiten lanzar terminales en los puertosserie (incluso permitirían un inicio de sesión remoto a través de la línea telefónicamediante un módem).La acción "respawn" indica que si el proceso de la terminal se detiene (por ejemplo, elusuario termina la sesión en una terminal), se debe volver a iniciar pidiendo un nombrede usuario de nuevo.Cambio de runlevelCon 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 nuevorunlevel (si alguno de los procesos actuales es común a ambos runlevels no será paradoy 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 efectuarun “Cambio de runlevel”.Para cambiar de runlevel se utilizará:En realidad, es equivalente telinit e init en este caso. Aunque tradicionalmente se vieneusando telinit para cambiar de nivel de ejecución.Angelzero 37
  38. 38. Quinto Círculo Linux –Comandos ISEC es el número de segundos que esperará init a que un proceso se detenga antes dematarlo. 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 nole pertenecen esos procesos no tendrá ningún derecho sobre ellos).Un claro ejemplo de cambio de runlevel es cuando utilizamos alguno de los comandosque nos permiten apagar la máquina. En definitiva lo que hacen es un cambio alrunlevel 6.Re-lectura del fichero de configuraciónSi en algún instante queremos que init vuelva a leer el fichero de configuración,tendremos que indicárselo mediante:Modo monousuarioComo cabía esperar, init también está relacionado con el establecimiento de la jerarquíade permisos al inicio del sistema. Normalmente se iniciará la máquina en modomultiusuario con todas las ventajas y características que ya hemos visto. Sin embargo,existe la posibilidad de iniciar la máquina Linux en modo monousuario.Qué pasará o qué servicios se inicializarán en modo monousuario depende de cadadistribución de Linux. En algunas incluso es posible que se muestre un prompt conpermisos de root sin ni si quiera pedir un login.En principio, poner un sistema en modo monousuario carece de utilidad práctica;aunque no está demás saber que esta posibilidad existe, y también, que no es segura.Más informaciónCada sistema puede tener una configuración ligeramente distinta en este aspecto.Nuestro papel, si administramos una máquina, es conocer cómo está configurado elarranque para poder modificarlo según nuestras necesidades.Una buena fuente de información al respecto son los comentarios que hay en losficheros de /etc/init.d (o equivalente) y /etc/initab, que en la mayoría de lasocasiones explican cómo se ha personalizado el arranque por los creadores de ladistribución.Las páginas man de init e inittab son también referencia obligada para un chico deQuinto Círculo para profundizar más en estos aspectos.Angelzero 38
  39. 39. Quinto Círculo Linux –Comandos IServicios, demoniosServicios y demonios guardan una estrecha relación con los niveles de ejecución.Descubrámoslo.Qué sonEl nombre de "servicio" es un poco ambiguo pero generalmente se refiere a un demoniodel sistema. El glosario define el término Demonio.Cada uno de ellos tiene un archivo asociado en /etc/init.d que como ya se vió es unscript bash que acepta un argumento (podría ser, al menos, "start" o "stop", aunquepueden ser otros complementarios para proveer al usuario de opciones adicionales, porejemplo "restart", "status"...).Este script asociado ejecutará el comando que inicializa el demonio con las opcionesadecuadas si se le pasa "start" como argumento.Si observas cualquier script de un servicio que haya instalado tu distribución podrásentender el esquema general que siguen todos ellos.Añadir y quitar servicios a un runlevelExisten dos posibilidades de hacer esto. Una es la vía manual (haremos enlacessimbólicos), y la otra usando las vías que nos facilite nuestra distribución.Veremos varios casos: • Poner o quitar de un runlevel programas instalados por nuestra distribución. Estos ya tendrán un fichero generalmente /etc/init.d/servicio donde servicio será generalmente (y esto es arbitrario, no es imprescindible) el nombre asociado al demonio o servicio que inicie. • Poner o quitar de un runlevel programas que hayamos compilado desde las fuentes, creados por nosotros o similar. En este caso nosotros crearemos el script en /etc/init.d y los enlaces simbólicos.Angelzero 39
  40. 40. Quinto Círculo Linux –Comandos IFichero correspondinete en /etc/init.dLa estructura de estos ficheros es, a grandes rasgos:orden_de_shell es el comando correspondiente. Este comando puede ser de dos tipos: • Directamente referirse al programa e iniciarlo con las opciones adecuadas. • Iniciarlo indirectamente llamando a un programa o función de bash (según distribución) que además de ejecutarlo guarde en un fichero su ID de proceso para posteriormente detenerlo con más facilidad.Por ejemplo, para el segundo caso, en Ubuntu está el programa start-stop-daemon y enRedHat (y derivados) está definida una función Bash en /etc/init.d/functionsllamada daemon. En el primer caso puedes leer su página man y en el segundo puedesver directamente su definición en el fichero indicado para ver cómo funciona, o fijarteen scripts de inicio ya creados.Angelzero 40
  41. 41. Quinto Círculo Linux –Comandos ICuando no se usa la segunda opción, para terminar el proceso se usa el comando killallpara enviarle una señal indicando sólo el nombre del proceso.Servicios que instala nuestra distribuciónEstos ya tienen su fichero en /etc/init.d. Se iniciarán en los runlevels en los quetengan enlace simbólico en el directorio correspondiente a su número de runlevel. Porejemplo, añadamos el servidor web Apache para que se inicie en el runlevel 3:"S80" es arbitrario (recuerda que se ejecutan por orden), pero debe ser losuficientemente "alto" para que los servicios de red ya estén iniciados.Para hacer que un servicio no se ejecute en el runlevel 3, borraremos su enlace en/etc/rc3.dServicios nuevosCon esto nos referimos a los demonios que, por ejemplo, instalemos compilando elcódigo fuente. Este procedimiento de instalación, al contrario que los paquetes de lasdistribuciones, no crea un fichero adecuado en /etc/init.d.Es nuestro turno: miraremos la documentación del paquete para ver con qué comando seinicia y con cuál se detiene, y crearemos un fichero en /etc/init.d con la mismaestructura que el que hemos visto arriba. Le daremos permisos de ejecución y lollamaremos con un nombre que nos permita identificarlo posteriormente con el demonioque iniciará.A continuación se procede exactamente igual que en el apartado anterior.Ver los servicios que se iniciarán en un runlevelEs tan sencillo como listar los enlaces que hay en /etc/rcS.d donde S es el número derunlevel.Arrancar y parar servicios por separadoCon el sistema iniciado en un runlevel determinado, puede surgirnos la necesidad deactivar o desactivar un sólo servicio. Para esto es obvio que no merece la pena cambiarde runlevel.Incluso podemos, desde la consola como root, ejecutar un kill para terminar un serviciorefiriéndonos a su proceso; o poner el comando del demonio que queremos iniciar yhacer que se ejecute en segundo plano.No obstante, aunque lo anterior es perfectamente válido, no es necesario querecordemos todas las opciones necesarias de un demonio, o su ID de proceso si losscripts de /etc/init.d tienen ya esta información.Angelzero 41
  42. 42. Quinto Círculo Linux –Comandos IAsí, podríamos iniciar, por ejemplo, el servidor de bases de datos MySQL con:En RedHat y sucedáneos, este comando es equivalente a service mysqld start.Exactamente de la misma forma se puede detener un servicio:Detendría el servicio httpd suponiendo que este ya estuviese iniciado.Crond, ejecución programada o periódica decomandos¿Qué es?Cron es una utilidad, presente en la mayoría de sistemas Linux y Unix, que permiteejecutar comandos o procesos con una frecuencia determinada.Esto se puede aplicar, por ejemplo, a hacer backups de una carpeta del sistema todos losdías a las 12 de la noche, comprobar el tamaño de un directorio o el espacio libre endisco de los usuarios del sistema y avisar cuando está a punto de agotarse, ejecutar unrevisor de correo como fetchmail y mil usos más: todo queda limitado por tuimaginación ;)¿Y esto cómo funciona?Cron se compone principalmente de 2 elementos: cron, el Demonio, y el archivo deconfiguración /etc/crontab.Si pretendemos añadir, quitar o modificar las tareas que ejecutará cron, se puede haceruso del siguiente comando:Con el cual se abrirá un editor y podremos cambiar nuestas tareas en el cron. Ladiferencia entre editar el archivo /etc/crontab directamente y utilizar el comandocrontab -e radica en que con este último no hacen falta privilegios de root “Usuarios”ya que estaremos editando un archivo de configuración específico para nuestro usuario.Una vez que se ha acabado de editar el archivo, al guardarlo, crontab se encarga deintegrar todo en cron. ¿Cómo editarlo? Pues bien, hay una forma definida de hacerlo enla que cada línea tiene este orden:Angelzero 42
  43. 43. Quinto Círculo Linux –Comandos IY estos son los posibles valores para cada elemento:Valores de etc/crontabSi no quieres especificar un valor concreto para alguna de las variables, se debe colocarel signo * el cual significa algo así como "todos" los valores. Si lo que quieres esespecificar un rango, has de usar el signo - de este modo: 0-5 ó 6-9 o similar. Si por elcontrario deseas indicar varios valores por separado puedes hacer uso de las comas:4,7,9,15 . Y si quieres excluir algún valor se usa / : 0-5/4 de modo que se ejecutará de 0a 5 excepto el 4 (depende de si te refieres a minutos, horas, dias de la semana...). Elsigno / también puede ser usado para determinar intervalos, por ejemplo cada 15minutos: */15.Otro aspecto a tener en cuenta es que si el comando no está en el PATH deberá serespecificado con su ruta completa. Veamos algunos ejemplos:En estos ejemplos, se ejecutará el programa fetchmail todos los días del mes, todos losdías de la semana, todos los meses, cada hora, cada 5 minutos.El comando se ejecutará todos los días a las 4:00 de la mañana.Con esta línea, el computador se apagará todos los miércoles a las 12 del mediodía.Angelzero 43
  44. 44. Quinto Círculo Linux –Comandos ILos campos que describen el instante de ejecución son por orden:minuto 0-59hora 0-23día del mes 0-31mes 0-12 (o su nombre con las tres primeras letras en inglés)día semana 0-7 (0 o 7 indica domingo, o su nombre con las tres primeras letras eninglés)Un campo puede contener:Un asterisco (*) para indicar todos los posibles valores.Un valor fijo para indicar un minuto, hora, día o mes.Un rango de valores, dos números separados por guiones. Un rango puede terminar en/numero para indicar el incremento.Una lista de valores separados por comas.Un valor */numero para indicar todos los valores con incremento de "número".EjemplosVemos diversas formas de configurar la ejecución de la orden /usr/bin/fetchmail:Ejecutarlo a las 12 de la noche cada díaEjecutarlo a las 12:15 de la noche cada díaEjecutarlo 15 después de cada hora exacta, a las y cuartoEjecutarlo el día 1 del mes a las 6:30Angelzero 44
  45. 45. Quinto Círculo Linux –Comandos IEjecutarlo cada dos días a las 6:30Ejecutarlo los días 1,3,7,12,15 y 20 del mes a las 6:30Ejecutarlo el día 1 de julio a las 6:30Ejecutarlo los lunes cada 10 minutosEjecutarlo de lunes a viernes aLa hora en punto0 * * * 1-5 /usr/bin/fetchmail….próxima edición Shell scriptingAngelzero 45
  46. 46. Quinto Círculo Linux –Comandos I Glosario de términosAAdduserEl comando adduser lo utiliza root, o alguien que tenga autoridad para ello, con el finde crear un nuevo usuario. Al comando adduser le sigue el nombre de cuenta que se vaa crear. Cabe destacar que en algunas distribuciones este comando a cambiado sunombre por useradd.La sintaxis de este comando vendría a ser por ejemplo:adduser nombre_usuarioAliasEl comando alias se usa para crear alias o nombres alternativos para comandos.Generalmente, estos alias son abreviaturas del verdadero comando. Dichos alias sesituan en el .bashrc de cada usuario, por ejemplo alias rmd="rm -Rf" haría que alteclear el comando rmd nos borrara lo que indiquemos en modo recursivo.AproposEl comando apropos significa literalmente apropiado o relativo (a otros). Cuando lesigue un parámetro, buscará en las páginas man entradas que incluyan el parámetro.Básicamente, con esto se realiza una búsqueda de palabras clave en todas las páginasman. Es el equivalente del comando man -k parametro.BBash(Bourne Again SHell) Intérprete de comandos. Es el shell por defecto en la mayoría delas distribuciones de GNU/Linux de hoy en día. Se encarga de interpretar los comandosdel usuario para llamar a los programas que están en los directorios de la variable$PATH o en los alias, a parte de ejecutar sus propios comandos: asignación devariables, bucles, etc.BufferSegún el diccionario, "memoria intermedia". Es una memoria que ciertos programasusan para diversas funciones, normalmente para guardar datos en memoria para su usoen un plazo corto de tiempo.BIOSSigla de Basic Input/Output System (sistema de entrada/salida básico). Se utiliza pararealizar todas las funciones necesarias para colocar en estado inicial el hardware delsistema cuando se conecta a la alimentación de energía. El BIOS controla el proceso dearranque, proporciona rutinas de entrada/salida de bajo nivel (de aquí su nombre) y(usualmente) permite que el usuario modifique los detalles de la configuración delhardware del sistema.Angelzero 46
  47. 47. Quinto Círculo Linux –Comandos ICCatcat le indica al sistema que "concatene" el contenido de un archivo con la salidaestándar, normalmente la pantalla. Si ese archivo es binario, el comando cat se puedeconfundir y la salida puede no ser muy sugerente. Generalmente, este proceso tambiénes muy ruidoso. Lo que en realidad ocurre es que el comando cat está desplazándosepor los caracteres del archivo, y el terminal está haciendo todo lo que puede parainterpretar y mostrar los datos del archivo. Tendría básicamente un formato del tipo catfichero.Código fuenteEl formato entendible por las personas de las instrucciones que conforman un programa.También se le conoce como «fuentes» o «source code».ComandoMedio por el cual se le ordena una acción determinada al sistema operativo a través deun intérprete de comandos, tal y como puede ser Bash.CompilarProceso por el cual se "traduce" un programa escrito en un lenguaje de programación alo que realmente entiende el ordenador.DDemonioAparte del significado que todos conocemos, en Unix/Linux se conoce como unprograma que permanece en segundo plano ejecutandose continuamente para dar alguntipo de servicio. Ejemplos de demonio, son los servidores de correo, impresora,sistemas de conexion con redes, etc.DependenciasCuando se refiere a paquetes, las dependencias son requerimientos que existen entrepaquetes.Por ejemplo, el paquete "foo" puede requerir ficheros que son instalados por el paquete"bar".En este ejemplo, "bar" debe estar instalado, pues sino "foo" tendrá dependencias sinresolver.Normalmente, RPM no permitirá que se instalen paquetes con dependencias sinresolver.DistribuciónUn sistema operativo (en general Linux), que se ha empaquetado para facilitar suinstalación.DistroViene a se una distribución de un Sistema Operativo (UNIX/LINUX).Angelzero 47
  48. 48. Quinto Círculo Linux –Comandos IDNSDomain Name Server. Servidor de nombres de dominio. Servicio de red que nos facilitala búsqueda de ordenadores por su nombre de dominio. Se encarga tanto de traducirnombres a direcciones IP como del paso contrario.EEntrada/Salida estándarPor defecto la entrada de datos estándar se establece en el teclado y la salida de datosestándar en la pantalla del monitor, esto lo podemos variar a través de tuberías. Porejemplo, podemos hacer que la entrada sea el ratón y la salida la impresora.Expresión RegularConjunto de caracteres que forman una plantilla para buscar y reemplazar cadenas detexto dentro de textos más largos.FFSFFree Software Foundation. Fundación que pretende el desarrollo de un sistemaoperativo libre tipo UNIX. Fundada por Richard Stallman, empezó creando lasherramientas necesarias para su proposito, de modo que no tuviera que depender deninguna compañia comercial. Después vino la creación del núcleo, que todavía seencuentra en desarrollo.GGNUGnu is Not Unix. Proyecto de la FSF para crear un sistema UNIX libre.GNU/LinuxSistema operativo compuesto de las herramientas GNU de la FSF y el núcleodesarrollado por Linus Torvalds y sus colaboradores.GPLGeneral Public License. Una de las mejores aportaciones de la FSF. Es una licencia queprotege la creación y distribución de software libre.HHardwareEl hardware es el soporte físico de una computadora, se compone de diferentesdispositivos de hardware que pueden estar dentro o fuera de la caja de la computadora.Dentro del hardware entran la placa base, la cpu, la memoria, el teclado, el ratón...HostUn host es una computadora que se encuentra dentro de una red, y que ofrece algún tipode servicio o recurso al resto.Angelzero 48
  49. 49. Quinto Círculo Linux –Comandos IIIntérprete de comandosEl intérprete de comandos (SHELL) es el programa que recibe lo que se escribe en laterminal y lo convierte en instrucciones para el sistema operativo. (Ejemplos, bash, Sh,Tcsh, etc)IPLas direcciones IP (Internet Protocol) son el método mediante el cual se identifican losordenadores individuales (o, en una interpretación más estricta, las interfaces de red dedichos ordenadores) dentro de una red TCP/IP. Todas las direcciones IP (versión 4, lamás utilizada actualmente) consisten en cuatro números separados por puntos, dondecada número está entre 0 y 255.A veces, la abreviatura IP puede significar "Intelectual Property", o lo que es lo mismo,Propiedad Intelectual.ISPSiglas de Internet Service Provider. Empresa u organización que ofrece acceso aInternet a usuarios finales y corporativos.KKernelParte principal de un sistema operativo, encargado del manejo de los dispositivos, lagestión de la memoria, del acceso a disco y en general de casi todas las operaciones delsistema que permanecen invisibles para nosotros.LLibreríasSe refiere al conjunto de rutinas que realizan las operaciones usualmente requeridas porlos programas.Las librerías pueden ser compartidas, lo que quiere decir que las rutinas de la libreríaresiden en un fichero distinto de los programas que las utilizan. Las rutinas de libreriapueden «enlazarse estáticamente» al programa, en cuyo caso se agregan físicamente lascopias de las rutinas que el programa necesita. Estos binarios enlazados estáticamenteno requieren de la existencia de ningún fichero de biblioteca para poder funcionar. Losprogramas enlazados con bibliotecas compartidas no funcionarán a menos que seinstalen las librerias necesarias.LoginPrograma encargado de la validación de un usuario a la entrada al sistema. Primero pideel nombre del usuario y despues comprueba que el password sea el asignado a este.Logoutlogout se utiliza para salir de un sistema como usuario en curso. Si es el único usuarioque está registrado, se desconectará del sistema.Angelzero 49
  50. 50. Quinto Círculo Linux –Comandos IMMódulosUn módulo es un conjunto de rutinas que realizan funciones a nivel de sistema, y quepueden cargarse y descargarse dinámicamente desde el núcleo cuando sea requerido.Los módulos con frecuencia contienen controladores de dispositivos, y estánfuertemente ligados a la versión del núcleo; la mayoría de los módulos construidos conuna versión dada de núcleo, no se cargarán de manera apropiada en un sistema que corraun núcleo con versión distinta.MultitareaCapacidad de un sistema para el trabajo con varias aplicaciones al mismo tiempo.MultiusuarioCapacidad de algunos sistemas para ofrecer sus recursos a diversos usuarios conectadosa través de terminales.NNúcleoNucleo o kernel.PPaqueteFichero que contiene software; está escrito en un cierto formato que permite la fácilinstalación y borrado del software.ParticiónEl segmento del espacio de almacenamiento de una unidad de disco que puedeaccederse como si fuese un disco entero.PATHVariable del entorno, cuyo valor contiene los directorios donde el sistema buscarácuando intente encontrar un comando o aplicación. Viene definida en los ficheros.bashrc o .bash_profile de nuestro directorio home.PPPPoint to Point Protocol. Protocolo de transmisión de datos, utilizado en la mayoria delas conexiones a internet domésticas.ProcesoPrograma en ejecucción dentro de un sistema informático.Angelzero 50

×