gnu/linux – electiva libre i universidad de...

48
GNU/Linux – Electiva Libre I Universidad de Córdoba Departamento de Ingeniería de Sistemas y Telecomunicaciones

Upload: others

Post on 08-Oct-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: GNU/Linux – Electiva Libre I Universidad de Córdobanetworkingsignora.pbworks.com/f/moduloElectivaI_ver4.pdf · La interfaz con el usuario, es por medio de un lenguaje de control

GNU/Linux – Electiva Libre I

Universidad de CórdobaDepartamento de Ingeniería de Sistemas y Telecomunicaciones

Page 2: GNU/Linux – Electiva Libre I Universidad de Córdobanetworkingsignora.pbworks.com/f/moduloElectivaI_ver4.pdf · La interfaz con el usuario, es por medio de un lenguaje de control

Índice de contenido

1. Conceptos generales del Sistema Operativo GNU/Linux............................................3

1.1 Generalidades de GNU/Linux y el software libre........................................................3

1.2 Historia del Sistema Operativo GNU/Linux ................................................................6

1.3 Conceptos previos de software libre...........................................................................8

2. Comandos básicos utilizados en el sistema GNU/Linux...........................................10

2.1 Listado de comandos mas utilizados........................................................................10

2.2 Como ingresar a la consola en GNU/Linux...............................................................13

2.3 Ejemplos de ejecución de algunos comandos básicos.............................................13

2.4 Manejo de archivos y directorios...............................................................................15

2.4.1 Estructura del sistema de archivos....................................................................15

2.4.2 Modos de acceso a un fichero en GNU/Linux...................................................17

2.4.3 Comandos para el manejo de archivos y directorios.........................................18

2.4.4 Herramienta gráfica Nautilus (GNU/Linux Ubuntu 9.04)....................................28

3. Administración de usuarios y grupos.........................................................................33

3.1 El superusuario o root................................................................................................33

3.2 Adquirir permisos de superusuario ..........................................................................34

3.3 Tipos de usuarios en GNU/Linux...............................................................................34

3.4 Ficheros importantes en la creación de usuarios y grupos.......................................35

3.5 Comandos para mantenimiento de usuarios.............................................................38

3.6 Comandos para mantenimiento de grupos...............................................................42

3.7 Herramienta gráfica para crear usuarios y grupos....................................................44

Bibliografía.........................................................................................................................46

Page 3: GNU/Linux – Electiva Libre I Universidad de Córdobanetworkingsignora.pbworks.com/f/moduloElectivaI_ver4.pdf · La interfaz con el usuario, es por medio de un lenguaje de control

Introducción

Este modulo de Electiva Libre I (GNU/Linux Básico), esta destinado para los estudiantes

novatos en el uso del sistema operativo GNU/Linux. Esto con el propósito de que tengan

una guía o manual de referencia que les permita comenzar a dar sus primeros pasos en la

utilización del nuevo sistema.

El desarrollo de este modulo esta conformado por tres unidades que incluyen temas

básicos para los usuarios inexpertos en el mundo de GNU/Linux y el software libe. En la

unidad uno encontramos los conceptos generales del Sistema Operativo, en la unidad dos

se estudiaran los comandos básicos utilizados en el sistema y en la unidad tres

realizaremos algunas labores administrativas, como es la administración de usuarios y

grupos.

La primera unidad del modulo expone generalidades sobre el sistema, como son algunos

hechos y personajes importantes en su desarrollo. También se explica una pequeña

reseña histórica sobre el sistema y algunos conceptos básicos para empezar a utilizarlo.

En la segunda unidad se presentan algunos comandos básicos necesarios para empezar

a utilizar el sistema, se estudia la sintaxis de uso, así como su ejecución en la consola del

sistema. En esta unidad se hace énfasis en el manejo de comandos para manipular

ficheros.

La última unidad presenta algunos conceptos y técnicas relacionadas con la

administración del sistema. Primeramente se estudian las características del usuario

administrador del sistema (root), los tipos de usuarios, Para finalmente gestionar la

creación de usuarios y grupos.

Page 4: GNU/Linux – Electiva Libre I Universidad de Córdobanetworkingsignora.pbworks.com/f/moduloElectivaI_ver4.pdf · La interfaz con el usuario, es por medio de un lenguaje de control

1. Conceptos generales del Sistema Operativo GNU/Linux

Objetivos

● Tener una visión general de algunos antecedentes, personajes y hechos que

relacionan al sistema operativo GNU/Linux con la comunidad del software libre.

● Distinguir las principales características, herramientas de software y distribuciones

GNU/Linux de la actualidad.

● Conocer la historia y los hechos que anteceden el desarrollo de las primeras

versiones del kernel de Linux, núcleo del sistema operativo GNU/Linux.

● Estudiar y distinguir los principales conceptos, utilizados en el mundo del software

libres, necesarios para comenzar a estudiar el sistema operativo GNU/Linux.

1.1 Generalidades de GNU/Linux y el software libre

El sistema operativo GNU/Linux en todas sus distribuciones esta sumamente ligado a una

filosofía propuesta por la FSF1 (Free Software Foundation), la cual promueve la libre

distribución y uso del software.

Toda esta filosofía del software libre nace a mediados de la década de los 80's, gracias al

señor Richard Stallman2, quien es uno de los fundadores de la Free Software Foundation,

organización creada en Octubre de 1985. Richard Stallman tambien es uno de los

propulsores iniciales del proyecto GNU acrónimo en ingles que significa GNU's Not Unix.

Una de las ideas principales que propuso el proyecto GNU3 en sus inicios, fue la creación

de un sistema operativo libre de usar, con aplicaciones de usuario también libres para que

corrieran sobre el sistema operativo. La idea era utilizar un licenciamiento GPL4 (GNU

Public License) que protegira la libre distribución, modificación y uso del software

1 http://es.wikipedia.org/wiki/Free_Software_Foundation http://www.fsf.org/ 2 http://es.wikipedia.org/wiki/Richard_Stallman 3 http://www.gnu.org/ http://es.wikipedia.org/wiki/GNU 4 http://es.wikipedia.org/wiki/Licencia_p%C3%BAblica_general_de_GNU

Page 5: GNU/Linux – Electiva Libre I Universidad de Córdobanetworkingsignora.pbworks.com/f/moduloElectivaI_ver4.pdf · La interfaz con el usuario, es por medio de un lenguaje de control

desarrollado por el proyecto GNU.

En la actualidad el producto de software mas popular, relacionado con la filosofía

expuesta anteriormente, es el sistema operativo GNU/Linux. El nombre completo del

sistema operativo es GNU/Linux, porque fue una integración entre las herramientas de

software desarrolladas por el proyecto GNU y el kernel desarrollado por Linus Torvalds.

En la actualidad es tanta la popularidad del sistema, que muchas personas utilizan el

termino generalizado Linux, para referirse a todo el sistema operativo.

Gracias a la licencia GPL, bajo la cual fue publicado el kernel de Linux y las herramientas

de software del proyecto GNU, así como otros desarrollos de software libre, muchas

empresas e instituciones crearon distribuciones basadas en el sistema operativo

GNU/Linux, a las cuales agregaron algunas características propias de la distribución.

GNU/Linux hoy en día en la mayoría de sus distribuciones, maneja el concepto o filosofía

del software libre, en donde solo se cobra por los medios físicos de instalación, manuales

y soporte técnico del sistema. Además proporciona a sus usuarios aplicaciones gráficas,

gracias a sus entornos de escritorio Gnome y KDE5 que facilitan el uso del sistema

operativo de una forma amigable para los usuarios novatos.

Dentro de las aplicaciones mas comunes en las distribuciones GNU/Linux encontramos:

El navegador WEB Mozilla

La herramienta de oficina OpenOffice

Los manejadores de bases de datos MySQL y PostgreSQL

Los editores de texto: Emacs, gedit, entre otros

El servidor Web Apache

GNU/Linux es un sistema operativo que cuenta con mucha popularidad en el mundo de la

programación y la configuración de servidores, por ser un sistema operativo robusto,

estable y seguro, que puede ser modificado por cualquier programador.

5 http://www.gnome.org/ http://www.kde.org/

Page 6: GNU/Linux – Electiva Libre I Universidad de Córdobanetworkingsignora.pbworks.com/f/moduloElectivaI_ver4.pdf · La interfaz con el usuario, es por medio de un lenguaje de control

Las características de GNU/Linux son similares a las del sistema operativo Unix, esto se

debe a que GNU/Linux es un sistema basado en Unix. Esto se debe a que cumple con el

estándar POSIX, el cual define la interfaz de los sistemas operativos basados en Unix.

Entere las características principales del sistema encontramos:

Es un sistema operativo multiusuario y multitarea.

Los ficheros del sistema tienen su propia protección o permisos de acceso.

La interfaz con el usuario, es por medio de un lenguaje de control programable

llamado Shell.

Esta escrito en el lenguaje de programación C y emplea gestión de memoria por

intercambio (swap).

A continuación se destacan algunas de las distribuciones6 GNU/Linux importantes y

populares que existen en el mercado, ya que son muchas las empresas que se dedican a

desarrollar distribuciones con características propias en todo el mundo:

Redhat

SuSE

Ubuntu

Fedora

Debian

Mandriva

Gentoo

6 http://www.ubuntu.com/ http://www.redhat.com/ http://es.opensuse.org/Bienvenidos_a_openSUSE.org http://fedoraproject.org/es/ http://www.debian.org/ http://www2.mandriva.com/ http://www.gentoo.org/

Page 7: GNU/Linux – Electiva Libre I Universidad de Córdobanetworkingsignora.pbworks.com/f/moduloElectivaI_ver4.pdf · La interfaz con el usuario, es por medio de un lenguaje de control

1.2 Historia del Sistema Operativo GNU/Linux

Para hablar de la historia y evolución de el sistema operativo GNU/Linux tenemos que

remontarnos inicialmente al sistemas operativo UNIX, el cual comenzó como un proyecto

de investigación de los laboratorios BELL de AT&T7 en el año 1969. El grupo de

investigadores estaba integrado por Ken Thompson, Dennis Ritchi, Douglas Mcllroy, entre

otros miembros de los laboratorios Bell.

AT&T y laboratorios BELL, se dieron cuenta de que UNIX se estaba convirtiendo en un

producto comercializable, es así como el sistema sale de estas empresas y comienza a

utilizarse primeramente en las universidades (Illinois, Harvard y Berkeley) en proyectos

investigativos.

Principalmente en la universidad de Berkeley, fue donde se dieron los desarrollos mas

importantes fuera de los laboratorios Bell, entre ellos se destacan los avances en gestión

de memoria y la implementación del protocolo de red TCP/IP, que permitiera interconectar

computadoras en redes de área local.

Posteriormente el manejo del licenciamiento por parte de AT&T, hizo que otras empresas

adquirieran la propiedad intelectual sobre el kernel de Unix, desarrollando versiones con

modificaciones y características propias de los fabricantes, dando origen a una familia de

sistemas operativos basados en Unix8 como: AIX de la empresa IBM, SCO de Santa Cruz

Operation, BSD de la Universidad de Berkeley, Solaris de Sun Microsystems, entre otros

sistemas basados en Unix.

El manejo del licenciamiento genero una problemática con la propiedad intelectual del

código de Unix por parte de AT&T, por esta razón el investigador en sistemas operativos

Andrew Tannenbaum9, desarrollo en el año 1987 un sistema operativo gratuito basado en

Unix, que pudiera utilizarse en las universidades a nivel investigativo. Tannenbaum

escribió el código del sistema Minix como una copia del sistema operativo Unix , por esto

7 SILBERSCHATZ, Abraham; GALVIN, Peter Baer. Sistemas Operativos Quinta edición. Editorial PEARSON. México 1999. 912 paginas.

8 http://es.wikipedia.org/wiki/Unix 9 http://es.wikipedia.org/wiki/Andrew_S._Tanenbaum

Page 8: GNU/Linux – Electiva Libre I Universidad de Córdobanetworkingsignora.pbworks.com/f/moduloElectivaI_ver4.pdf · La interfaz con el usuario, es por medio de un lenguaje de control

el kernel de Minix tenia todas las características del sistema Unix.

El sistema operativo Minix10 era distribuido libremente con el código fuente para correr

inicialmente en procesadores Intel. Por esta razón el estudiante Linus Torvalds, de la

universidad de Helsinki en Finlandia, comenzó a escribir en 1991 el código del kernel de

Linux basándose en el núcleo de Minix.

Linus Torvalds ingreso a la universidad en el año de 1988, y luego de aprender a

programar en lenguaje C, este empezó a desarrollar el núcleo del sistema Linux para que

pudiera correr sobre maquinas Intel 80386. En mayo de 1991 se lanza la primera versión

(0.01) del sistema, con un soporte básico para los dispositivos y recursos del sistema.

En octubre de 1991 el sistema también ejecutaba el interprete de comandos bash (Bourne

Again Shell) , esta es la shell por defecto de los sistema GNU/Linux.

En el año 1994 se lanza la versión 1.0 de Linux, esta mejoro el sistema de ficheros,

implemento soporte para redes con el protocolo TCP/IP, así como soporte para un mayor

numero de dispositivos hardware como tarjetas de red y sonido.

El núcleo de Linux se hizo popular en el mundo de las redes y la programación por ser un

sistema distribuido libremente en Internet bajo la licencia publica general del proyecto

GNU (GPL), esto permitió que muchos programadores del mundo descargaran el kernel,

lo modificaran y aportaran en el desarrollo de las nuevas versiones del kernel haciendo

mejoras del mismo.

Como Linux era un software que podía descargarse, modificarse y usarse libremente

según los términos de la licencia GPL, surgieron algunos proyectos (Debian y Red Hat),

que utilizaron las diferentes versiones del kernel de Linux y las aplicaciones desarrolladas

por el proyecto GNU para crear un sistema operativo o distribución propia.

10 http://es.wikipedia.org/wiki/Minix

Page 9: GNU/Linux – Electiva Libre I Universidad de Córdobanetworkingsignora.pbworks.com/f/moduloElectivaI_ver4.pdf · La interfaz con el usuario, es por medio de un lenguaje de control

En la actualidad existen diferentes versiones del kernel11 de Linux que pueden ser

descargadas libremente desde la pagina oficial del proyecto, y distribuciones GNU/Linux

que se descargan desde los sitios WEB oficiales para ser usadas.

1.3 Conceptos previos de software libre

Software Libre: Es una filosofía de libertad aplicada al desarrollo y distribución de

software, que permite adaptar los programas a las necesidades del usuario, con la

oportunidad de redistribuirlo sin necesidad de pagar por hacerlo. Las cuatro libertades12

del software permiten utilizar el programa con cualquier propósito (Libertad 0), estudiar el

código y el funcionamiento del programa para adaptarlo a las necesidades del usuario

(Libertad 1), distribuir las copias (libertad 2), mejorar un programa y publicar las mejoras

(libertad 3).

Open Source 13 : Este término se utilizo para remplazar la ambigüedad que existía con el

concepto Free software, debido a que esta palabra tenía varios significados en idioma

ingles. Open Source es una comunidad que fue liderada en sus inicios por Bruce Perens y

Eric Raymond, una de las finalidades de este movimiento es permitir acceder al código

fuente de un programa y poder modificarlo, pero al momento de redistribuirlo se puede

utilizar una licencia conveniente para el desarrollador del programa.

Qué es GNU 14 ?: Es un acrónimo recursivo en ingles que significa GNU No es Unix. El

proyecto GNU fue iniciado por Richard Stallman a mediados de la década del 80 y

buscaba la creación de un sistema operativo gratuito, con aplicaciones de usuario libres

para que corrieran sobre el sistema operativo.

Licencia GPL 15 (GNU Public License): Es una licencia de software que garantiza las 4

libertades del software descritas por la FSF y además especifica que todo programa

distribuido bajo esta licencia es software libre.

11http://www.kernel.org/

12 http://www.gnu.org/philosophy/free-sw.es.html 13 http://es.wikipedia.org/wiki/C%C3%B3digo_abierto 14 http://es.wikipedia.org/wiki/GNU 15 http://es.wikipedia.org/wiki/GNU_General_Public_License http://www.fsf.org/licensing/licenses/gpl.html

Page 10: GNU/Linux – Electiva Libre I Universidad de Córdobanetworkingsignora.pbworks.com/f/moduloElectivaI_ver4.pdf · La interfaz con el usuario, es por medio de un lenguaje de control

Free Software Foundation 16 : Fundada por Richard Stallman en 1985, para recaudar

fondos, prestar apoyo logístico, técnico y legal al software desarrollado en el proyecto

GNU.

GNU/Linux: Es un sistema operativo de propósito general, que integra las aplicaciones

libres desarrolladas por el proyecto GNU, con el kernel creado por Linus Torvalds.

Páginas man: Las páginas del manual en las distribuciones GNU/Linux, son los manuales

o la documentación que acompaña a cada una de las aplicaciones o comandos del

sistema.

16 http://es.wikipedia.org/wiki/Free_Software_Foundation

Page 11: GNU/Linux – Electiva Libre I Universidad de Córdobanetworkingsignora.pbworks.com/f/moduloElectivaI_ver4.pdf · La interfaz con el usuario, es por medio de un lenguaje de control

2. Comandos básicos utilizados en el sistema GNU/Linux

Objetivos

● Estudiar la sintaxis y el uso de algunos de los comandos básicos utilizados por el

sistema GNU/Linux.

● Utilizar la consola del sistema para ejecutar algunos comandos básicos utilizados

por el sistema GNU/Linux.

● Conocer la estructura básica del sistema de archivos de GNU/Linux y estudiar la

sintaxis de uso de los comandos utilizados para el manejo de archivos.

2.1 Listado de comandos mas utilizados

En el siguiente listado encontraremos los comandos17 mas utilizados en el sistema

operativo GNU/Linux:

cat <nombre del fichero>, este comando nos permite visualizar la información que

contiene un fichero plano.

cd <directorio>, este comando nos permite cambiar de un directorio a otro, accede al

directorio que se especifique después del comando.

chmod <permisos del fichero> <archivo>, cambia los permisos de acceso al fichero,

teniendo en cuneta los tres grupos de permisos establecidos para el fichero.

clear, este comando limpia el texto de la pantalla o el contenido de la consola.

17 http://www.ajpdsoft.com/modules.php?name=news&file=article&sid=155 http://ubunturoot.wordpress.com/2007/11/06/comandos-basicos-para-linux/ http://www.webtutoriales.com/tutoriales/linux/comandos-linux.23.html VIÑAS, Roger Baig; LLINAS, Francesc. Sistema Operativo GNU/Linux básico. Primera edición. UOC.

España 2003. 261 paginas.

Page 12: GNU/Linux – Electiva Libre I Universidad de Córdobanetworkingsignora.pbworks.com/f/moduloElectivaI_ver4.pdf · La interfaz con el usuario, es por medio de un lenguaje de control

cp <fichero origen> <directorio donde se copia>, este comando permite copiar el fichero

nombrado en el parámetro de origen, en otro lugar del disco definido por el parámetro de

destino.

find <opción> <fichero>, realiza la búsqueda de un fichero con base a opciones pasadas

como parámetro.

date, esta orden imprime en pantalla la fecha y la hora actual.

ps, informa cuales son los procesos que se están ejecutando en el sistema.

kill <proceso>, este comando elimina el proceso pasado como parámetro. Este comando

es útil cuando queremos matar procesos que se inician al momento de arrancar el

sistema.

df (Disk free), informa sobre el espacio disponible en el sistema de archivos.

du (Disk Usage), indica cuanto ocupa de espacio un directorio con todos los ficheros que

contiene dentro.

file <fichero>, la orden file permite establecer de que tipo es el fichero, pasado como

parámetro.

head <numero de líneas> <fichero>, este comando muestra las primeras líneas de un

fichero plano, el parámetro “-n” permite determinar el número de líneas que se quieren

mostrar.

tail <numero de líneas> <fichero>, este comando visualiza el final de las líneas de un

fichero plano, esta orden funciona de manera contraria a head.

Page 13: GNU/Linux – Electiva Libre I Universidad de Córdobanetworkingsignora.pbworks.com/f/moduloElectivaI_ver4.pdf · La interfaz con el usuario, es por medio de un lenguaje de control

last, la orden last nos muestra información a cerca de los últimos usuarios que han

accedido en el sistema.

passwd <nombre_usuario>, este comando permite cambiar o asignar la contraseña de

acceso al sistema. Este comando es de gran utilidad en GNU/Linux porque es

recomendable para un usuario cambiar periódicamente la contraseña de acceso al

sistema.

ls <atributos> <directorio>, lista los ficheros y directorios que se encuentran en el

directorio donde estemos trabajando o el pasado como parámetro. Este listado se filtra y

se visualiza, con base a los atributos pasados como parámetro.

man <comando>, edita un manual de ayuda completo, del comando o programa pasado

como parámetro.

mkdir <nombre>, crea un directorio en el sistema de archivos, con el nombre especificado

como parámetro después del comando.

more <fichero>, Este comando edita el contenido de un fichero plano igual que el

comando cat, pero esta orden tiene mayor utilidad cuando el contenido del fichero es muy

extenso y para mostrar su contenido se requiere mas de una pantalla.

mv <fichero1> <fichero2>, se utiliza para cambiar el nombre del primer fichero por el

segundo. También se puede emplear para mover un fichero a un directorio especifico.

pwd, informa cual es el directorio o ruta en la que se encuentra trabajando el usuario.

rm <atributo> <fichero>, borra el fichero pasado como parámetro después del comando,

esta orden pude ir acompañada de algún atributo.

Page 14: GNU/Linux – Electiva Libre I Universidad de Córdobanetworkingsignora.pbworks.com/f/moduloElectivaI_ver4.pdf · La interfaz con el usuario, es por medio de un lenguaje de control

rmdir <directorio>, borra un directorio pasado como parámetro, pero teniendo en cuenta

que el directorio este vacío, es decir que no tenga ficheros en su interior.

who, muestra un listado con la información de los usuarios que están utilizando el

sistema.

2.2 Como ingresar a la consola en GNU/Linux

En la actualidad existen dos entornos de escritorio muy utilizados por las distribuciones

GNU/Linux, estos son Gnome y KDE. En KDE la aplicación se llama Konsole y en Gnome

se llama gnome-terminal.

Como ingresar a la consola de GNU/Linux Ubuntu:

Para ingresa a la aplicación gnome-terminal en Ubuntu 9.04 es muy sencillo, simplemente

se va al menú Aplicaciones --- Accesorios --- Terminal.

2.3 Ejemplos de ejecución de algunos comandos básicos

catpedro@ubuntupedro:~$ cat nomFichero******** Probando el comando cat ********

Contenido del Fichero...Contenido del Fichero...Contenido del Fichero...pedro@ubuntupedro:~$

datepedro@ubuntupedro:~$ datemié ago 9 12:21:32 COT 2006pedro@ubuntupedro:~$

Page 15: GNU/Linux – Electiva Libre I Universidad de Córdobanetworkingsignora.pbworks.com/f/moduloElectivaI_ver4.pdf · La interfaz con el usuario, es por medio de un lenguaje de control

pspedro@ubuntupedro:~$ ps PID TTY TIME CMD 7838 pts/0 00:00:00 bash 10396 pts/0 00:00:00 pspedro@ubuntupedro:~$

killpedro@ubuntupedro:~$ ps PID TTY TIME CMD 7838 pts/0 00:00:00 bash 7836 pts/0 00:00:00 gnome-terminal 10396 pts/0 00:00:00 pspedro@ubuntupedro:~$ kill -9 7836pedro@ubuntupedro:~$ ps PID TTY TIME CMD 7838 pts/0 00:00:00 bash 10396 pts/0 00:00:00 pspedro@ubuntupedro:~$

dfpedro@ubuntupedro:~$ dfS.ficheros Bloques de 1K Usado Dispon Uso% Montado en/dev/hda5 19251772 1451036 16822784 8% /tmpfs 453328 0 453328 0% /dev/shm/dev 19251772 1451036 16822784 8% /.devnone 5120 2824 2296 56% /devpedro@ubuntupedro:~$

dupedro@ubuntupedro:~$ du -sk12140 .pedro@ubuntupedro:~$

filepedro@ubuntupedro:~$ file pedro.sxwpedro.sxw: Zip archive data, at least v2.0 to extractpedro@ubuntupedro:~$

pedro@ubuntupedro:~$ file pantallasospantallasos: directorypedro@ubuntupedro:~$

pedro@ubuntupedro:~$ file listalista: ASCII textpedro@ubuntupedro:~$

headpedro@ubuntupedro:~$ head -3 dia#Dias de la semanaecho ""if [ $# -lt 1 ]; thenpedro@ubuntupedro:~$

Page 16: GNU/Linux – Electiva Libre I Universidad de Córdobanetworkingsignora.pbworks.com/f/moduloElectivaI_ver4.pdf · La interfaz con el usuario, es por medio de un lenguaje de control

tailpedro@ubuntupedro:~$ tail -3 dia exit 1 ;;esacpedro@ubuntupedro:~$

lastpedro@ubuntupedro:~$ lastpedro pts/0 :0.0 Wed Aug 9 12:14 still logged inpedro :0 Wed Aug 9 12:12 still logged inreboot system boot 2.6.10-5-386 Wed Aug 9 12:12 (00:39)root pts/0 :0.0 Tue Aug 8 06:05 - down (00:00)pedro :0 Tue Aug 8 06:02 - down (00:03)reboot system boot 2.6.10-5-386 Tue Aug 8 06:02 (00:03)root pts/0 :0.0 Sun Aug 6 06:40 - down (00:00)pedro pts/0 :0.0 Sun Aug 6 06:32 - 06:32 (00:00)pedro :0 Sun Aug 6 06:31 - down (00:09)reboot system boot 2.6.10-5-386 Sun Aug 6 06:30 (00:09)root pts/0 :0.0 Sun Aug 6 06:26 - down (00:00)root pts/1 :0.0 Sun Aug 6 06:22 - 06:22 (00:00)pedro pts/0 :0.0 Sun Aug 6 06:19 - 06:24 (00:05)pedro :0 Sun Aug 6 06:15 - down (00:10)reboot system boot 2.6.10-5-386 Sun Aug 6 06:14 (00:11)root pts/0 :0.0 Wed Aug 2 13:08 - down (00:00)pedro pts/0 :0.0 Wed Aug 2 13:05 - 13:08 (00:02)pedro :0 Wed Aug 2 13:02 - down (00:06)reboot system boot 2.6.10-5-386 Wed Aug 2 13:02 (00:06)reboot system boot 2.6.10-5-386 Wed Aug 2 04:29 (00:00)pedro :0 Wed Aug 2 04:27 - 04:28 (00:00)

wtmp begins Wed Aug 2 04:27:43 2006pedro@ubuntupedro:~$

passwdroot@ubuntupedro:/home/pedro # passwd locoEnter new UNIX password:Retype new UNIX password:Sorry, passwords do not matchpasswd: Authentication information cannot be recoveredroot@ubuntupedro:/home/pedro #

2.4 Manejo de archivos y directorios

2.4.1 Estructura del sistema de archivos

La estructura del sistema de archivos del sistema GNU/Linux es jerarquía, es decir tiene

una estructura en forma de árbol. El directorio raíz del sistema de archivos es el root, este

se representa por el carácter “/”.

Page 17: GNU/Linux – Electiva Libre I Universidad de Córdobanetworkingsignora.pbworks.com/f/moduloElectivaI_ver4.pdf · La interfaz con el usuario, es por medio de un lenguaje de control

El carácter también es utilizado para separar los directorios al especificar una ruta. El

ejemplo de una ruta valida puede ser:

● /home/pedro

● /home/pedro/trabajos

● /bin/cat

● /etc/passwd

Page 18: GNU/Linux – Electiva Libre I Universidad de Córdobanetworkingsignora.pbworks.com/f/moduloElectivaI_ver4.pdf · La interfaz con el usuario, es por medio de un lenguaje de control

Como se muestra en las dos graficas anteriores, existen varios ficheros de tipo directorio

que conforma el sistema de archivos de GNU/Linux. Entre principales directorios de la

distribución GNU/Linux Ubuntu encontramos:

● bin: Dentro de este directorio encontramos los ficheros ejecutables o programas

básicos que utilizan los usuarios normales para interactuar con el sistema.

● boot: Dentro de este directorio se encuentran los archivos relacionados con el

arranque del sistema.

● dev: En este directorio del sistema de archivos se encuentran los principales

ficheros relacionados con el hardware de la computadora.

● etc: En este directorio están los ficheros relacionados con la configuración y

administración del sistema.

● home: Directorio donde se crean los directorios de trabajo de cada usuarios del

sistema para que estos guarden sus ficheros.

● lib: Aquí encontramos las librerías del sistema.

● media: Este directorio esta relacionado con el montaje de las unidades de disco

externas.

● root: Este es directorio de trabajo del superusuario (root) del sistema GNU/Linux.

● sbin: En este directorio se encuentran los comandos relacionados con la

administración del sistema y solo pueden ser ejecutados únicamente por el

superusuario (root).

● tmp: Este directorio se utiliza para almacenar archivos temporalmente, cuando el

sistema se reinicia, los ficheros se borran.

● usr: En este directorio se almacenan los programas de usuario.

2.4.2 Modos de acceso a un fichero en GNU/Linux

Para determinar los permisos de acceso a un fichero supongamos que tenemos listado en formato largo el siguiente archivo:

drwxr-xr-x 1 pedro pedro 6194 2006-07-12 21:54 trabajos

Los caracteres subrayados corresponden a los modos o permisos de acceso al fichero.

Page 19: GNU/Linux – Electiva Libre I Universidad de Córdobanetworkingsignora.pbworks.com/f/moduloElectivaI_ver4.pdf · La interfaz con el usuario, es por medio de un lenguaje de control

● El primer carácter (d) determina que el fichero es un directorio.

● El primer grupo de permisos (rwx) determina que el usuario creador del fichero,

tiene permisos de lectura (r) escritura (w) y ejecución (x) sobre el fichero. Es decir

tiene todos los privilegios sobre el archivo.

● El segundo grupo de permisos (r-x) determina que los usuarios pertenecientes al

mismo grupo de trabajo del usuario propietario del fichero, tendrán permisos de

lectura y ejecución sobre el archivo. Es decir solo podrán ves el contenido del

fichero pero no podrán modificarlo.

● El tercer grupo de permisos (r-x) determina que cualquier otro usuario del sistema

solo tiene permisos de lectura y ejecución sobre el archivo. Es decir solo podrán

ver el contenido del fichero pero no podrán modificarlo.

2.4.3 Comandos para el manejo de archivos y directorios

Listado de información

El comando utilizado para listar el contenido del directorio en el que nos encontramos

trabajando o el directorio pasado como parámetro es ls, para filtrar la salida por pantalla

de este comando podemos utilizar diferentes parámetros precedidos por el signo menos

(-). Entre las opciones más importantes del comando ls encontramos:

● -a: Muestra un listado con todos los archivos y directorios incluidos los ocultos.

● -l: Muestra el listado de los archivos de un directorio con un formato largo, es decir

visualiza en pantalla toda la información del fichero, entre la que encontramos:

modos de acceso, número de enlaces, propietario, grupo, tamaño en bytes, fecha

de la última creación y nombre del fichero.

● -R: Lista recursivamente todos los directorios y subdirectorios.

● -t: Muestra el listado de archivos de un directorio según la fecha de modificación,

ordenando los ficheros que se han modificado recientemente primero.

d rwx r-x r-x

Tipo de archivo

Usuario Grupo Otros

Page 20: GNU/Linux – Electiva Libre I Universidad de Córdobanetworkingsignora.pbworks.com/f/moduloElectivaI_ver4.pdf · La interfaz con el usuario, es por medio de un lenguaje de control

pedro@ubuntupedro:~$ lsautomatix.htm ejmplos.doc pantallasosbuscar General pedro.sxw Desktop lista pruba1dia list saludopedro@ubuntupedro:~$

pedro@ubuntupedro:~$ ls -ltotal 468-rwx------ 1 pedro pedro 138800 2009-03-08 18:28 Automatix.htm

-rwxr-xr-x 1 pedro pedro 956 2009-06-15 04:20 buscardrwxr-xr-x 2 pedro pedro 4096 2009-08-06 06:36 Desktop-rwxr-xr-x 1 pedro pedro 691 2009-06-15 10:23 dia-rw-r-r-- 1 pedro pedro 21504 2009-08-10 03:26 ejemplos.docdrwxr-xr-x 34 pedro pedro 4096 1969-12-31 19:00 General-rw-r-r-- 1 pedro pedro 313 2009-06-15 04:44 lista-rwxr-xr-x 1 pedro pedro 655 2009-06-01 06:02 listardrwxr-xr-x 2 pedro pedro 4096 2009-08-06 06:36 pantallasos-rw-r-r-- 1 pedro pedro 5732 2009-01-16 12:54 pedro.odt-rwxr-xr-x 1 pedro pedro 99 2009-01-16 13:06 prueba1-rw-r-r-- 1 pedro pedro 389 2009-03-08 15:44 saludopedro@ubuntupedro:~$

La primera columna indica los modos o permisos de acceso al fichero, como se explico en

el apartado anterior el primer carácter determina el tipo de fichero y los otros nueve

caracteres, las ternas de permisos. La segunda columna o campo especifica al número de

enlaces que tiene el fichero dentro del sistema de archivos.

Las dos columnas siguientes definen el nombre del usuario propietario del fichero y el

grupo de trabajo al que pertenece este usuario. La quinta columna indica el tamaño en

bytes del archivo, la próxima columna corresponden a la fecha y hora de la ultima

modificación que se realizo sobre el fichero y por ultimo el nombre del fichero.

Creación de directorios

Para crear directorios se utiliza el comando mkdir, la sintaxis para utilizar este comando

es la siguiente:

mkdir <nombre del directorio>

Debemos tener permisos de escritura (w) sobre el directorio en el que deseamos crear el

nuevo directorio.

Page 21: GNU/Linux – Electiva Libre I Universidad de Córdobanetworkingsignora.pbworks.com/f/moduloElectivaI_ver4.pdf · La interfaz con el usuario, es por medio de un lenguaje de control

Por ejemplo supongamos que estamos en el directorio de trabajo del usuario pedro:

pedro@ubuntupedro:~$ pwd/home/pedropedro@ubuntupedro:~$

Si quiero crear un directorio llamado estudiantes dentro de el directorio pedro entonces

escribo la siguiente orden:

pedro@ubuntupedro:~$ mkdir estudiantes

Para comprobar que se creo el nuevo directorio dígito el comando ls -l:

pedro@ubuntupedro:~$ ls -ltotal 468-rwx------ 1 pedro pedro 138800 2009-03-08 18:28 Automatix.htm

-rwxr-xr-x 1 pedro pedro 956 2009-06-15 04:20 buscardrwxr-xr-x 2 pedro pedro 4096 2009-08-06 06:36 Desktop-rwxr-xr-x 1 pedro pedro 691 2009-06-15 10:23 dia-rw-r-r-- 1 pedro pedro 21504 2009-08-10 03:26 ejemplos.docdrwxr-xr-x 1 pedro pedro 4096 2009-08-11 10:43 estudiantesdrwxr-xr-x 34 pedro pedro 4096 1969-12-31 19:00 General-rw-r-r-- 1 pedro pedro 313 2009-06-15 04:44 lista-rwxr-xr-x 1 pedro pedro 655 2009-06-01 06:02 listardrwxr-xr-x 2 pedro pedro 4096 2009-08-06 06:36 pantallasos-rw-r-r-- 1 pedro pedro 5732 2009-01-16 12:54 pedro.odt-rwxr-xr-x 1 pedro pedro 99 2009-01-16 13:06 prueba1-rw-r-r-- 1 pedro pedro 389 2009-03-08 15:44 saludopedro@ubuntupedro:~$

Si quiero guardar mis programas en una carpeta que se llame programas dentro del

directorio estudiantes, creo una carpeta que se llame programas dentro del directorio

estudiantes. Ejecuto los siguientes comandos:

pedro@ubuntupedro:~$ pwd/home/pedropedro@ubuntupedro:~$ cd estudiantespedro@ubuntupedro:~/estudiantes$ mkdir programaspedro@ubuntupedro:~/estudiantes$ lsprogramaspedro@ubuntupedro:~/estudiantes$

Miro en que directorio de trabajo me encuentro con el comando pwd, luego entro al

directorio estudiantes con el comando cd. Posteriormente creo el nuevo directorio

programas con el comando mkdir y finalmente ejecuto el comando ls para ver el nuevo

Page 22: GNU/Linux – Electiva Libre I Universidad de Córdobanetworkingsignora.pbworks.com/f/moduloElectivaI_ver4.pdf · La interfaz con el usuario, es por medio de un lenguaje de control

directorio dentro de estudiantes.

Movimiento entre directorios

Para desplazarnos por el sistema de ficheros en GNU/Linux y poder cambiarnos de un

directorio a otro se utiliza el comando cd. Al utilizar este comando se usa la siguiente

sintaxis:

cd <directorio o ruta del directorio a desplazarnos>

Supongamos que tenemos la siguiente estructura jerárquica de archivos tal como se

muestra en la figura, en donde tenemos el directorio raíz (/) al cual pertenece un directorio

llamado home, dentro del directorio home existe un subdirectorio llamado pedro o

cualquier otros directorio de trabajo. Dentro de pedro hay un subdirectorio llamado

pedrogs y en el interior de este están los subdirectorios documentos, programas y talleres.

Recordemos que en el directorio /home, es donde se almacenan los directorios de trabajo

de los usuarios del sistema. En este caso /home/pedro, será el directorio de trabajo del

usuario pedro.

$ cd documentos$ pwd/home/pedro/pedrogs/documentos$

Estamos en el directorio documentos, para irnos al directorio talleres tenemos que

retroceder al directorio pedrogs y luego desplazarnos al directorio talleres:

/home /pedro /pedrogs /documentos /programas

/talleres

Page 23: GNU/Linux – Electiva Libre I Universidad de Córdobanetworkingsignora.pbworks.com/f/moduloElectivaI_ver4.pdf · La interfaz con el usuario, es por medio de un lenguaje de control

Se debe tener en cuenta que el comando utilizado para desplazarnos al directorio

inmediatamente anterior al que nos encontramos es cd..

$ cd.. $ pwd/home/pedro/pedrogs$ cd talleres

De esta forma (cd..) nos devolvemos a pedrogs y luego nos vamos al directorio talleres.

En el caso de directorios absolutos, nos podemos mover dando la ruta completa del

directorio al que deseamos desplazarnos. Por ejemplo, para acceder dentro del directorio

talleres que se encuentra dentro del directorio pedrogs, debemos saber la ruta completa

para desplazarnos de manera directa (/home/pedro/pedrogs/talleres).

Si deseamos movernos a nuestro directorio de trabajo, podemos hacerlo dando la

trayectoria completa hacia el fichero:

$ cd /home/pedro

Existen varias maneras de regresarse al directorio de trabajo de un usuario. La primera es

usando una variable de entrono ($HOME) que tiene definido el directorio del usuario, y se

usa de la siguiente manera:

$ cd $HOME$ pwd/home/pedro$

La otra puede ser simplemente usando el comando cd sin pasarle ningún parámetro:

$ cd$ pwd/home/pedro$

Page 24: GNU/Linux – Electiva Libre I Universidad de Córdobanetworkingsignora.pbworks.com/f/moduloElectivaI_ver4.pdf · La interfaz con el usuario, es por medio de un lenguaje de control

Copiado de archivos

Para copiar archivos se utiliza el comando cp, este comando se ejecuta de la siguiente

manera:

cp <origen> <destino>

El comando permite copiar el archivo especificado en el parámetro origen hacia el destino,

si el destino es un directorio podemos indicarle varios ficheros de origen, estos ficheros de

origen serán copiados en el directorio de destino.

Teniendo en cuenta la siguiente estructura jerárquica anterior, supongamos que estamos

en el directorio talleres y deseamos copiar un archivo llamado taller1, al directorio pedro:

$ pwd /home/pedro/pedrogs/talleres$ cp taller1 /home/pedro

Varios archivos también se pueden copiar al mismo tiempo a un directorio utilizando el

comodín *. Supongamos que estamos en el directorio pedro y queremos copiar todos los

archivos que terminen en .sh, para almacenarlos en el directorio pedrogs.

$ cp *.sh /home/pedro/pedrogs

Para hacer la operación anterior pero con todos los archivos que contengan los caracteres

ejemplo:

$ cp ejemplo* /home/pedro/pedrogs

/home /pedro /pedrogs /documentos /programas

/talleres

Page 25: GNU/Linux – Electiva Libre I Universidad de Córdobanetworkingsignora.pbworks.com/f/moduloElectivaI_ver4.pdf · La interfaz con el usuario, es por medio de un lenguaje de control

Para copiar de forma recursiva podemos utilizar el parámetro -r, este copia todos los

ficheros y directorios contenidos en un directorio de origen, hasta un directorio de destino.

Si queremos copiar el contenido del directorio pedro, con todos los ficheros y

subdirectorios que cuelgan dentro de él, en el directorio pedrogs:

$pwd /home$ cp -r pedro /home/pedro/pedogs

Borrado de archivos y directorios

Para borrar archivos o directorios el sistema proporciona los comandos rm y rmdir, con

rm podemos eliminar cualquier tipo de fichero en el sistema y rmdir permite borrar

directorios siempre que estos no contengan otro fichero dentro de el.

Entre los atributos que podemos pasar como parámetro al comando rm encontramos:

● -r: Realiza un borrado recursivo, eliminando un directorio y los subdirectorios que

este contenga, de manera recursiva.

● -i: Realiza una pregunta de confirmación antes de borrar un fichero.

La sintaxis para ejecutar el comando es la siguiente:

rm <-r -f -i> <archivo>

Para eliminar un directorio, este tiene que estar vació y utilizamos la siguiente sintaxis:

rmdir -r <directorio>

Con la siguiente orden le indicamos al shell bash que antes de borrar el archivo

ejemplos.doc nos pida confirmación:

$ rm -i ejemplos.doc rm: remove 'ejemplos.doc'? y$

Page 26: GNU/Linux – Electiva Libre I Universidad de Córdobanetworkingsignora.pbworks.com/f/moduloElectivaI_ver4.pdf · La interfaz con el usuario, es por medio de un lenguaje de control

Con la acción anterior borramos un archivo, cuando este se encuentra en el mismo

directorio del fichero que se quiere borrar.

También podemos eliminarlo dando la ruta absoluta de la ubicación del mismo:

$ rm -i /home/pedro/ejemplos.docrm: remove 'ejemplos.doc'? y$

Supongamos que deseamos eliminar un directorio que no esta vació, en este caso el

contenido del directorio que vamos a borrar es el de pedrogs.

$ ls -l total 2-rw-rw-rw- 1 pedro pedro 2124 2009-06-01 06:02 taller.txt-rw-rw-rw- 1 pedro pedro 4988 2009-06-15 04:44 prueba.txt$

ahora intentemos borrar el directorio pedrogs:

$ rmdir pedrogs/rmdir: pedrogs: Directory not empty$

No se puede borrar porque tiene dos archivos dentro de él, para borrarlo primero

debemos borrar los archivos contenidos en el directorio pedrogs, la siguiente instrucción

me permite borrar todos los archivos contenidos en el directorio:

$ rm pedrogs/*

Una vez borrados los archivos que cuelgan del directorio pedrogs, puedo borrar el

directorio sin ningún problema:

$ rmdir pedrogs

Para borrar el directorio pedrogs de una sola vez, lo puedo hacer de manera recursiva con

el comando:

Page 27: GNU/Linux – Electiva Libre I Universidad de Córdobanetworkingsignora.pbworks.com/f/moduloElectivaI_ver4.pdf · La interfaz con el usuario, es por medio de un lenguaje de control

$ rm -r pedrogs

Renombrado y traslado de archivos

Para cambiar el nombre de un archivo por otro o mover un fichero de un lugar a otro,

utilizamos el comando mv, este también permite mover varios archivos a otro directorio.

La sintaxis para ejecutar el comando puede ser la siguiente:

mv <archivo1> <archivo2> o mv <archivos> <directorio>

Si tenemos un archivo que se llama ejemplos y lo queremos renombrar por otro que se

llame trabajo basta con ejecutar el siguiente comando:

$ mv ejemplos trabajo

El ejemplo anterior funciona si los dos archivos están en el mismo directorio.

También puedo mover uno o varios ficheros a un directorio especifico en el sistema de

archivos. El siguiente ejemplo mueve el archivo lista al directorio pedrogs:

$ mv lista /home/pedro/pedrogs

Cambio de permisos, propietario y grupo

El comando chmod, permite cambiar los modos o permisos de acceso a un archivo o

directorio, su sintaxis es la siguiente:

chmod <u/g/o>+/-<permiso (r/w/x)> <archivo>

Después de escrito el comando se debe especificar a que usuario queremos modificarle

los permisos de acceso, las identidades de este parámetro pueden ser:

● u (user): Especifica que se quieren modificar los permisos de acceso al usuario

Page 28: GNU/Linux – Electiva Libre I Universidad de Córdobanetworkingsignora.pbworks.com/f/moduloElectivaI_ver4.pdf · La interfaz con el usuario, es por medio de un lenguaje de control

propietario del fichero.

● g (group): Especifica que se quieren modificar los permisos de acceso a los

usuarios que pertenecen al mismo grupo de trabajo del propietario del fichero.

● o (others): Especifica que se quieren modificar los permisos de acceso a los otros

usuarios del sistema, Es decir a los usuarios que no pertenecen al grupo de trabajo

del propietario del fichero.

Luego de especificar la identidad del usuario, colocamos la operación + o – para añadir o

eliminar un permiso, ya sea al usuario dueño del fichero, a los usuarios del grupo u otros

usuarios del sistema.

Los modos o permisos pueden ser cualquier combinación de rwx:

● r (read): Lectura

● w (write): Escritura

● x (exec): Ejecución

Si el usuario pedro quiere que un archivo en particular, digamos que se llama carta1, no

sea leído por nadie en el sistema salvo por él y por el usuario root tendría que usar:

$ ls -l-rw-rw-rw- 1 pedro usuarios 21504 2009-06-15 04:44 carta1$ chmod go-rw carta1

Al digitar nuevamente el comando ls -l, veremos que los nuevos permisos de acceso al

fichero son los siguientes:

$ ls -l-rw------- 1 pedro usuarios 21504 2009-06-15 04:44 carta1$

A continuación en los permisos de acceso del fichero llamado programa1, se agregara el

permiso de escritura para los miembros del mismo grupo del usuario propietario del

fichero:

$ ls -l -rw-r--r-- 1 pedro usuarios 1563 2009-06-15 04:20 programa1$ chmod g+w programa1

Page 29: GNU/Linux – Electiva Libre I Universidad de Córdobanetworkingsignora.pbworks.com/f/moduloElectivaI_ver4.pdf · La interfaz con el usuario, es por medio de un lenguaje de control

$ ls -l-rw-rw-r-- 1 pedro usuarios 1563 2006-09-15 04:20 programa1$

Otro ejemplo cambiando permisos al ejemplo anterior seria:

$ chmod go-r,o+w programa1-rw--w--w- 1 pedro usuarios 1563 2009-06-15 04:20 programa1 $

2.4.4 Herramienta gráfica Nautilus (GNU/Linux Ubuntu 9.04)

Para el manejo de archivos y directorios, el sistema operativo GNU/Linux Ubuntu nos

ofrece una poderosa herramienta para la gestión de archivos y carpetas, muy similar al

Explorador de Windows, llamada Nautilus.

Nautilus es un shell gráfico para el entorno de escritorio Gnome, que facilita la

administración de sus archivos y el resto del sistema en general. Las siguientes figuras

nos describen el aspecto de la herramienta.

El procedimiento para acceder a la herramienta Nautilus de la distribución GNU/Linux

Ubuntu, es la siguiente: Nos vamos al menú Lugares, luego nos desplazamos al submenú

Carpeta personal:

Lugares --- Carpeta personal

Lugares --- Equipo

Page 30: GNU/Linux – Electiva Libre I Universidad de Córdobanetworkingsignora.pbworks.com/f/moduloElectivaI_ver4.pdf · La interfaz con el usuario, es por medio de un lenguaje de control

Entre los principales elementos que encontramos en esta ventana están:

● Una Barra de Títulos, que muestra el nombre del directorio en el que nos

encontramos:

● Una Barra de Menús que nos ayuda a realizar la operaciones sobre los archivos:

● Una Barra de Herramientas estándar, que contiene los siguientes botones:

Page 31: GNU/Linux – Electiva Libre I Universidad de Córdobanetworkingsignora.pbworks.com/f/moduloElectivaI_ver4.pdf · La interfaz con el usuario, es por medio de un lenguaje de control

● El Botón Adelante, para desplazarnos a la próxima pagina, el botón Subir y el

botón Recargar, para actualizar cambios en el directorio, entre otros:

● El Botón Inicial, el cual nos devuelve o nos posiciona en el directorio de trabajo

que el usuario tiene por defecto, para almacenar la información. También conocido

con el nombre de Home:

● El Botón Equipo, que nos muestra las diferentes unidades del sistema y el

sistema de archivos.

● Posee una Barra de Direcciones, nos muestra la ruta donde estamos ubicados en

el momento, y en la cual podemos escribir la ruta del directorio del sistema de

archivos, en el cual deseamos ubicarnos.

Page 32: GNU/Linux – Electiva Libre I Universidad de Córdobanetworkingsignora.pbworks.com/f/moduloElectivaI_ver4.pdf · La interfaz con el usuario, es por medio de un lenguaje de control

Otra forma de acceder a Nautilus es cuando estamos trabajando en la terminal, entonces

simplemente dimitamos el nombre de la herramienta, como si de un comando se tratara,

tal como vemos en el siguiente gráfico:

Nautilus permite visualiza los archivo de tres formas, una es ver como iconos, ver como

lista y lista compacta:

Page 33: GNU/Linux – Electiva Libre I Universidad de Córdobanetworkingsignora.pbworks.com/f/moduloElectivaI_ver4.pdf · La interfaz con el usuario, es por medio de un lenguaje de control

Si hacemos clic derecho sobre cualquier archivo se nos despliega un menú de contexto,

parecido al de Explorador de Windows, con opciones como: Abrir con, Copiar el archivo,

Cortar el archivo, Crear un enlace, Renombrar..., Mover a la papelera, Enviar a..., Crear

archivador..., propiedades, con las cuales podremos hacer muchas operaciones sobre

los archivos del sistemas:

Page 34: GNU/Linux – Electiva Libre I Universidad de Córdobanetworkingsignora.pbworks.com/f/moduloElectivaI_ver4.pdf · La interfaz con el usuario, es por medio de un lenguaje de control

3. Administración de usuarios y grupos

Objetivos

● Conocer quien es el usuario administrador de los sistemas GNU/Linux y cuales son

las labores administrativas básicas, que este realiza dentro del sistema.

● Estudiar la estructura de los ficheros /etc/passwd, /etc/group y /etc/shadow,

importantes para la creación de usuarios y grupos en el sistema.

● Conocer la sintaxis de los principales comandos utilizados para crear, eliminar y

modificar la información de usuarios y grupos del sistema.

● Conocer alguna herramientas gráficas que facilitan la creación de usuarios y

grupos el los sistemas GNU/Linux.

3.1 El superusuario o root

En el sistema GNU/Linux existe un usuario que administra el sistema llamado root18 y

tiene todos los privilegios de acceso, sobre los recursos del sistema para realizar

cualquier tipo de cambios o configuraciones. Entre las acciones que puede realizar el

superusuario root encontramos: Eliminar ficheros, matar procesos, configurar ficheros,

crear usuarios, instalar paquetes, etc.

En los sistemas GNU/Linux el root tiene un identificador de usuario que lo distingue de los

demás usuarios, esta identificación es el número 0 y se le asigna cuando se instalan la

mayoría de distribuciones GNU/Linux.

Como se menciono el root tiene acceso a todos los recursos y además cuenta con los

conocimientos técnicos necesarios para realizar las labores administrativas pertinentes,

que proporcionen a los usuarios un entorno para trabajar de forma segura y estable.

18 http://es.wikipedia.org/wiki/Root

Page 35: GNU/Linux – Electiva Libre I Universidad de Córdobanetworkingsignora.pbworks.com/f/moduloElectivaI_ver4.pdf · La interfaz con el usuario, es por medio de un lenguaje de control

3.2 Adquirir permisos de superusuario

Una forma de entrar de manera sencilla al sistema como root, es ingresando por la opción

single-user que ofrece el menú de arranque GRUB de GNU/Linux.

Cuando estamos en una cuenta de usuario se pueden adquirir los permisos del usuario

root o de otro usuario normal del sistema, siempre que se conozca su contraseña. Para

este propósito utilizamos el comando su seguido del password.

$ su

Password: [ Escribimos el password de root ]

#

usuario@maquina $ su otro_usuario

Password: [ Password de "otro_usuario" ]

otro_usuario@maquina $

El sistema GNU/Linux Ubuntu posee un comando especial llamado sudo19 para realizar

labores administrativas, se utiliza de la siguiente forma:

$ sudo <comando para labor administrativa>

Password: [ Password del usuario root ]

3.3 Tipos de usuarios en GNU/Linux

El sistemas operativos GNU/Linux encontramos tres tipos de usuarios con perfiles o roles

diferentes en cuanto al uso:

● Usuarios normales: Son usuarios inexpertos o novatos en el uso del sistema,

cuando son dados de alta en el sistema se les asigna un directorio de trabajo, una

shell (generalmente la bash) y no cuentan con privilegios para acceder a todos los

recursos del sistema.

● Usuarios del Sistema: Son usuarios creados por el sistema cuando este se instala

inicialmente para administrar algunos servicios que cargan automáticamente

19 http://fabianperez.blogspot.com/2008/03/el-usuario-root-en-ubuntu-linux.html

Page 36: GNU/Linux – Electiva Libre I Universidad de Córdobanetworkingsignora.pbworks.com/f/moduloElectivaI_ver4.pdf · La interfaz con el usuario, es por medio de un lenguaje de control

cuando arranca el sistema operativo. Estos usuarios en la mayoría de

distribuciones tienen identificadores (UID), que están entre el número 1 y 100.

● root: Es el superusuario del sistema, tiene todos los privilegios sobre los recursos y

se encarga de la administración en los sistemas GNU/Linux.

3.4 Ficheros importantes en la creación de usuarios y grupos

Cuando administramos un sistema GNU/Linux, podemos realizar diferentes tareas

administrativas, una de ellas es la creación y eliminación de usuarios en el sistema. La

gestión de usuarios es una actividad importante para todo administrador, debido a que

cualquier usuario que ingrese al sistema tiene que tener como mínimo su contraseña de

acceso, un directorio de trabajo y una shell.

El archivo que contiene información sobre cada cuenta de usuario del sistema esta en el

fichero plano /etc/passwd.

Las contraseñas de acceso se almacenan de forma encriptada en el archivo /etc/shadow

y la información de los grupos para los usuarios existentes en el sistema, se almacena en

el archivo /etc/group.

Analicemos la estructura de los diferentes ficheros, relacionados con la creación y

eliminación de usuarios o grupos en el sistema GNU/Linux20:

● El fichero /etc/passwd: Es un fichero plano que contiene una base de datos con la

información de todas las cuentas de usuarios creadas en el sistema y su estructura

el la siguiente:

Nombre_de_Usuario:password(si usa shadow sera

X):UID:GID:Comentario:home_del_usuario:shell

Cada campo esta separa do por el carácter : y la descripción es la siguiente:

20 http://lubrin.org/dani/ch11.html

Page 37: GNU/Linux – Electiva Libre I Universidad de Córdobanetworkingsignora.pbworks.com/f/moduloElectivaI_ver4.pdf · La interfaz con el usuario, es por medio de un lenguaje de control

El primer campo corresponde al nombre con el que cada usuario ingresa al

sistema.

El segundo campo corresponde a la contraseña de cada usuario, en las

distribuciones actuales aparece la letra X, porque el sistema almacena el password

en el archivo /etc/shadow.

El tercer campo corresponde al identificador de usuario UID, este es un número es

único que identifica al usuario en el sistema, el root tiene un UID igual a 0. En GNU/

Linux Ubuntu los usuarios normales se crean automáticamente a partir del número

1000.

El cuarto campo es el identificador del grupo al que pertenece un usuario GID.

El quinto campo es un comentario opcional en donde se agrega algún tipo de

información adicional sobre el usuario que se crea.

El sexto campo corresponde a la ruta del directorio de trabajo que se le asigna al

usuario que se crea.

El séptimo campo especifica la shell que utilizara el usuario como interprete, por

defecto es los sistemas GNU/Linux es /bin/bash.

Ejemplo del fichero /etc/passwd en GNU/Linux Ubuntu:

root:x:0:0:root:/root:/bin/bashdaemon:x:1:1:daemon:/usr/sbin:/bin/shbin:x:2:2:bin:/bin:/bin/shsys:x:3:3:sys:/dev:/bin/shsync:x:4:65534:sync:/bin:/bin/syncgames:x:5:60:games:/usr/games:/bin/shman:x:6:12:man:/var/cache/man:/bin/shlp:x:7:7:lp:/var/spool/lpd:/bin/shmail:x:8:8:mail:/var/mail:/bin/shnews:x:9:9:news:/var/spool/news:/bin/sh

Page 38: GNU/Linux – Electiva Libre I Universidad de Córdobanetworkingsignora.pbworks.com/f/moduloElectivaI_ver4.pdf · La interfaz con el usuario, es por medio de un lenguaje de control

uucp:x:10:10:uucp:/var/spool/uucp:/bin/shpedro:x:1001:1001:pedro guevara,,,:/home/pedro:/bin/bashmami:x:1002:1002::/home/mami:/bin/bashhermano:x:1003:1003:JaimeAndres,,,:/home/hermano:/bin/bashloco:x:1004:1000:lalocura:/home/loco:/bin/bashhermanita:x:1005:1002:Diana Karina:/home/hermana:/bin/bashnasly:x:1006:1004:nasly sagado,,,:/home/nasly:/bin/bashjairito:x:1007:1007:JairoFadul,Monteria,300123456,:/home/jairito:/bin/basheliecer:x:1008:1005:Ciro Jimenez:/home/cheveres:/bin/sh

● El fichero /etc/group: Es un fichero plano con una base de datos que contiene la

información de todos los grupos que se han creado en el sistema y tiene la

siguiente estructura:

Nombre_grupo:password:GID:Lista_de_usuarios

La descripción de los campos es la siguiente:

El primer campo corresponde al nombre que se asigna a un grupo, en GNU/Linux

cada usuario debe pertenecer a un grupo principal y este generalmente tiene el

mismo nombre del usuario. También se pueden crear varios grupos con nombres

diferentes para asociarlos a varios usuarios.

El segundo campo corresponde a la contraseña del grupo.

El tercer campo corresponde al número que identifica al grupo en el sistema GID,

este número por lo general es igual al número del UID de usuario, pero el

administrador del sistema puede asignara cualquier otro número al identificador de

grupo.

Finalmente después del campo GID podemos agregar la lista de usuarios que

perteneces al grupo, cada usuario debe estar separado por el carácter coma (,).

Page 39: GNU/Linux – Electiva Libre I Universidad de Córdobanetworkingsignora.pbworks.com/f/moduloElectivaI_ver4.pdf · La interfaz con el usuario, es por medio de un lenguaje de control

Ejemplo del fichero /etc/group en GNU/Linux Ubuntu:

root:x:0:daemon:x:1:bin:x:2:sys:x:3:adm:x:4:pedrotty:x:5:disk:x:6:lp:x:7:cupsysmail:x:8:news:x:9:uucp:x:10:pedro:x:1001:prueba:x:1002:hermanoloco:x:1000:hermano:x:1003:nasly:x:1004:jairito:x:1007:pedro,hermano,eliecercheveres:x:1005:

● El archivo /etc/shadow: Este fichero plano almacena la información encriptada

sobre las contraseñas de cada usuario creado en el sistema. Los sistemas

GNU/Linux utilizan este archivo como medida de seguridad para no guardar las

contraseñas en el archivo /etc/passwd, ya que este puede ser visto por cualquier

usuario. El archivo tiene la siguiente estructura:

Usuario:password encriptado:días del ultimo cambio:días antes del cambio:días depuse del cambio:tiempo de aviso: días antes de la inhabilitación:periodo que lleva caducado:reservado:

3.5 Comandos para mantenimiento de usuarios

Los siguientes comandos21 nos permiten crear, borrar y modificar las cuentas de los

usuarios del sistema, así como realizar algunas tareas de administración:

adduser/usseradd: Para añadir usuarios al sistema, podemos utilizar uno de estos dos

comandos. Crea automáticamente un usuario en el sistema, asignándole el identificador

de usuario (UID), el identificador de grupo (GID), el directorio de trabajo y la shell que

utilizara el usuario. Para utilizar el comando useradd tenemos que asignar manualmente

varios parámetros.

21 http://www.linuxparatodos.net/portal/staticpages/index.php?page=02-cuentas-usuario

Page 40: GNU/Linux – Electiva Libre I Universidad de Córdobanetworkingsignora.pbworks.com/f/moduloElectivaI_ver4.pdf · La interfaz con el usuario, es por medio de un lenguaje de control

passwd: Este comando permite asignarle la contraseña a un nuevo usuario, que se haya

creado manualmente (comando useradd) en el sistema. También sirve para que los

usuarios normales que ya estén creados, modifiquen periódicamente su contraseña.

userdel: Este comando se utiliza en la mayoría de distribuciones GNU/Linux para eliminar

usuarios del sistema, cuando se ejecuta se borra automáticamente la línea

correspondiente a la entrada del usuario en el archivo /etc/passwd. Además si se utilaza

de manera recursiva también elimina el directorio de trabajo del usuario.

usermod: Este comando se utiliza para editar la información de una cuenta de usuario ya

creada en el sistema y realizar cualquier tipo de modificaciones.

whoami: Este comando muestra el nombre de usuario que está usando sistema.

finger: Este comando informa sobre el usuario que este conectado en el sistema, también

muestra la información de algún usuario que se pase como parámetro al ejecutar el

comando.

id: Con este comando vemos los identificadores del usuario (UID) y del grupo al que

pertenece el usuario (GID).

Para crear usuarios con comandos debemos estar trabajando como usuario root o

también podemos estar como usuarios normales pero usando el comando sudo (Ubuntu),

los comando mas usados para esta operación son adduser y useradd.

Con el comando useradd creamos el usuario ingresando manualmente las opciones o

parámetros que tendrá el usuario, en el siguiente ejemplo veremos el modo de uso de

useradd.

Page 41: GNU/Linux – Electiva Libre I Universidad de Córdobanetworkingsignora.pbworks.com/f/moduloElectivaI_ver4.pdf · La interfaz con el usuario, es por medio de un lenguaje de control

Primero dígito el comando useradd para ver las diferentes opciones de como usar el

comando, luego dígito el comando y utilizo las opciones necesarias para crear el usuario.

● -g prueba indica que el usuario pertenecerá al grupo prueba, este grupo debe

existir en el sistema.

● -d /home/javier determino cual será el directorio de trabajo del nuevo usuario.

● -s /bin/bash indico que el usuario javier utilizara la shell bash, esta es la interfaz

usada por defecto en los sistema GNU/Linux y se encuentra en el directorio

/bin/bash.

● -m -k /etc/skel estos dos parámetros se complementan, el -m crea el directorio de

trabajo del nuevo usuario y -k copia el contenido del directorio /etc/skel al directorio

de trabajo creado como /home/javier.

● La última opción javier indica el nombre que tendrá el nuevo usuario.

Una vez creado el usuario le asignamos una contraseña de usuario utilizando el comando

passwd seguido del nombre de usuario y se asigna una nueva contraseña para que el

usuario de nombre javier ingrese al sistema.

Con el comando adduser el sistema me pide que ingrese la información correspondiente

al usuario y el se encarga de asignarle un grupo, un directorio de trabajo, una shell y su

respectivo identificador de usuario en el sistema.

Page 42: GNU/Linux – Electiva Libre I Universidad de Córdobanetworkingsignora.pbworks.com/f/moduloElectivaI_ver4.pdf · La interfaz con el usuario, es por medio de un lenguaje de control

Posteriormente el sistema me pide que ingrese el password que se le asignara al nuevo

usuario, una vez ingresado este debe repetirse para ser confirmado.

Además, se ingresa información adicional referente al usuario como: nombre completo,

teléfono del trabajo, teléfono de la casa, etc. Esta información será opcional.

Finalmente el sistema pregunta si la información ingresada es correcta, si esto es así,

confirmamos digitando el carácter y, y el nuevo usuario quedara automáticamente creado

en el sistema.

Para eliminar un usuario del sistema utilizamos el comando userdel, esta función se usa

de la siguiente forma, supongamos que se quiere borrar el usuario andres.

root@ubuntupedro:/home/pedro # userdel -r andres

Una vez eliminado el usuario del sistema revisamos el fichero /etc/passwd y vemos que la

entrada que existía referente a este usuario ya no existe.

Page 43: GNU/Linux – Electiva Libre I Universidad de Córdobanetworkingsignora.pbworks.com/f/moduloElectivaI_ver4.pdf · La interfaz con el usuario, es por medio de un lenguaje de control

A continuación mostraremos el uso y la ejecución de los comandos para gestión de

usuarios id, whoami y finger.

pedro@pedrogs:~$ whoami

pedropedro@pedrogs:~$

pedro@pedrogs:~$ finger

Login Name Tty Idle Login Time Office Office Phonepedro Pedro Rafael Guevara S tty7 Jan 29 06:51 (:0)pedro Pedro Rafael Guevara S pts/0 Jan 29 06:56 (:0.0)pedro@pedrogs:~$

pedro@pedrogs:~$ finger pedroLogin: pedro Name: Pedro Rafael Guevara SalgadoDirectory: /home/pedro Shell: /bin/bashOn since Fri Jan 29 06:51 (COT) on tty7 from :0On since Fri Jan 29 06:56 (COT) on pts/0 from :0.0New mail received Fri Jan 29 06:52 2010 (COT) Unread since Thu Mar 26 10:13 2009 (COT)No Plan.pedro@pedrogs:~$

pedro@pedrogs:~$ id rootuid=0(root) gid=0(root) grupos=0(root)pedro@pedrogs:~$

3.6 Comandos para mantenimiento de grupos

En GNU/Linux la creación de grupos es muy importante ya que esto permite compartir un

recurso determinado, con varios usuarios del sistema. Por ejemplo, podemos tener un

fichero asociado a un grupo específico y establecer que todos los usuarios que

pertenezcan a ese grupo puedan acceder al fichero.

Como se menciono en apartados anteriores el fichero plano encargado de guardar la

información de los grupos es /etc/group. Entonces si queremos añadir de forma manual

uno o varios usuarios para que hagan parte de un grupo especifico, todo lo que hay que

hacer es editar el fichero /etc/group y escribir en el ultimo campo los nombres de cada

usuario separados por comas (,).

Page 44: GNU/Linux – Electiva Libre I Universidad de Córdobanetworkingsignora.pbworks.com/f/moduloElectivaI_ver4.pdf · La interfaz con el usuario, es por medio de un lenguaje de control

Entre los comandos mas utilizados para la gestión de grupos encontramos groupadd que

permite agregar o crear un nuevo grupo en el sistema, su sintaxis de uso es la siguiente:

# groupadd -g GID grupo

groupdel: Este comando permite eliminar un grupo creado en el sistema.

groupmod: Permite editar el contenido de un grupo creado en el sistema.

Para crear grupos se debe estar trabajando como root, podemos utilizar los comandos

addgroup o groupadd.

Con el comando addgroup el sistema nos pide que ingresemos el nombre del nuevo

grupo que se desea crear y por defecto el le asigna un identificador de grupo (GID) en el

sistema.

También para crear grupos se puede usar el comando groupadd, esta función va

acompañada de varios parámetros. Digitamos el comando y vemos las opciones de uso

que ofrece. Luego digitamos el comando seguido de la opción -g con el fin de asignarle el

identificador del grupo en el sistema.

Para eliminar un grupo del sistema vasta con utilizar el comando groupdel seguido del

nombre del grupo que se quiere borrar.

Page 45: GNU/Linux – Electiva Libre I Universidad de Córdobanetworkingsignora.pbworks.com/f/moduloElectivaI_ver4.pdf · La interfaz con el usuario, es por medio de un lenguaje de control

root@ubuntupedro:/home/pedro # groupdel andres

Una vez eliminado el grupo la línea correspondiente a la entrada del mismo, desaparece

del fichero /etc/group.

3.7 Herramienta gráfica para crear usuarios y grupos

En las distribuciones GNU/Linux con entornos de escritorio Gnome y KDE existen

herramientas gráficas para realizar operaciones con usuarios y grupos, de una manera

cómoda. La distribución GNU/Linux Ubuntu cuenta con una herramienta gráfica llamada

users-admin.

Para acceder a la herramienta, se puede hacer de varias formas. Primero vamos al menú

Sistema, luego al submenú Administración y por ultimo al menú Usuarios y grupos, una

vez seleccionada la herramienta aparecerá una ventana pidiendo la contraseña de acceso

del root. Si la contraseña es valida, aparecerá la herramienta users-admin.

Sistema-------> Administración--------> Usuarios y grupos

También se puede acceder ha la herramienta por la consola del sistema digitando el

Page 46: GNU/Linux – Electiva Libre I Universidad de Córdobanetworkingsignora.pbworks.com/f/moduloElectivaI_ver4.pdf · La interfaz con el usuario, es por medio de un lenguaje de control

comando sudo seguido del nombre de la herramienta, siempre que se este en la consola

de usuario normal. Si se esta como usuario root solo dígito el nombre de la herramienta:

$ sudo users-admin

# users-admin

Una vez se haya ingresado a la herramienta users-admin las labores de creación de

usuarios y grupos, se manejan gráficamente de forma fácil y segura.

Page 47: GNU/Linux – Electiva Libre I Universidad de Córdobanetworkingsignora.pbworks.com/f/moduloElectivaI_ver4.pdf · La interfaz con el usuario, es por medio de un lenguaje de control

Bibliografía

Unidad 1:

SILBERSCHATZ, Abraham; GALVIN, Peter Baer. Sistemas Operativos Quinta edición.

Editorial PEARSON. México 1999. 912 paginas.

http://es.wikipedia.org/wiki/Free_Software_Foundation

http://www.fsf.org/

http://es.wikipedia.org/wiki/Richard_Stallman

http://www.gnu.org/

http://es.wikipedia.org/wiki/GNU

http://es.wikipedia.org/wiki/Licencia_p%C3%BAblica_general_de_GNU

http://www.gnome.org/

http://www.kde.org/

http://es.wikipedia.org/wiki/Unix

http://es.wikipedia.org/wiki/Andrew_S._Tanenbaum

http://es.wikipedia.org/wiki/Minix

http://www.opensource.org/

http://es.wikipedia.org/wiki/C%C3%B3digo_abierto

http://www.gnu.org/philosophy/free-sw.es.html

http://es.wikipedia.org/wiki/GNU_General_Public_License

http://www.fsf.org/licensing/licenses/gpl.html

http://es.wikipedia.org/wiki/RTFM

http://es.wikipedia.org/wiki/Linux_(n%C3%BAcleo)

http://www.kernel.org/

http://dns.bdat.net/shell/c3606.html

http://www.redhat.com/

http://www.debian.org/

http://fedoraproject.org/

http://es.opensuse.org/

http://www.ubuntu.com/

http://www.gentoo.org/

www.slackware.com/

www.mandriva.com

Page 48: GNU/Linux – Electiva Libre I Universidad de Córdobanetworkingsignora.pbworks.com/f/moduloElectivaI_ver4.pdf · La interfaz con el usuario, es por medio de un lenguaje de control

Unidad 2:

VIÑAS, Roger Baig; LLINAS, Francesc. Sistema Operativo GNU/Linux básico. Primera

edición. UOC. España 2003. 261 paginas.

http://lineupblog.com/2009/07/20/comandos-basicos-de-linux-como-y-donde-utilizarlos/

http://www.ajpdsoft.com/modules.php?name=news&file=article&sid=155

http://ubunturoot.wordpress.com/2007/11/06/comandos-basicos-para-linux/

http://www.webtutoriales.com/tutoriales/linux/comandos-linux.23.html

http://www.osmosislatina.com/linux/comandos.jsp

Unidad 3:

http://fabianperez.blogspot.com/2008/03/el-usuario-root-en-ubuntu-linux.html http://es.wikipedia.org/wiki/Root

http://www.freebsd.org/doc/es_ES.ISO8859-1/books/handbook/users-superuser.html

http://www.linuxparatodos.net/portal/staticpages/index.php?page=02-cuentas-usuario

http://lubrin.org/dani/ch11.html