AdminGNULinux Es2
AdminGNULinux Es2
AdminGNULinux Es2
de sistemas
GNU/Linux
Josep Jorba Esteve
Remo Suppi Boldrito
PID_00157330
GNUFDL PID_00157330 Administracin de sistemas GNU/Linux
Josep Jorba Esteve Remo Suppi Boldrito
Ingeniero Superior en Informtica.
Doctor ingeniero en Informtica por
la UAB. Profesor de los Estudios de
Informtica, Multimedia y Teleco-
municaciones de la UOC, Barcelona.
Ingeniero en Telecomunicaciones.
Doctor en Informtica por la UAB.
Profesor del Departamento de Ar-
quitectura de Computadores y Sis-
temas Operativos en la Universidad
Autnoma de Barcelona.
Primera edicin: septiembre 2010
Josep Jorba Esteve, Remo Suppi Boldrito
Todos los derechos reservados
de esta edicin, FUOC, 2010
Av. Tibidabo, 39-43, 08035 Barcelona
Diseo: Manel Andreu
Realizacin editorial: Eureca Media, SL
ISBN: 978-84-693-6360-7
Depsito legal: B-33.177-2010
2010, FUOC. Se garantiza permiso para copiar, distribuir y modificar este documento segn los trminos de la GNU Free
Documentation License, Version 1.2 o cualquiera posterior publicada por la Free Software Foundation, sin secciones invariantes ni
textos de cubierta delantera o trasera. Se dispone de una copia de la licencia en el apartado "GNU Free Documentation License" de
este documento.
GNUFDL PID_00157330 Administracin de sistemas GNU/Linux
Los autores agradecen a la Fundacin para la Universitat
Oberta de Catalunya la financiacin de la primera edicin
de esta obra, enmarcada en el mster internacional de
Software libre ofrecido por la citada institucin.
GNUFDL PID_00157330 5 Administracin de sistemas GNU/Linux
Introduccin
Los sistemas GNU/Linux han alcanzado un grado de madurez significativa,
que los hacen perfectamente vlidos para su integracin en cualquier ambien-
te de trabajo, ya sea desde el escritorio del PC personal, hasta el servidor de
una gran organizacin.
El objetivo principal que nos proponemos en este curso es nuestra introduc-
cin al mundo de la administracin de los sistemas GNU/Linux.
Aprenderemos cmo proporcionar desde GNU/Linux los servicios necesarios
a diferentes ambientes de usuarios y mquinas. El campo de estudio de la ad-
ministracin de sistemas es de dimensiones muy amplias y variado en cono-
cimientos necesarios. Existen muchas tareas diferentes a realizar, amplios pro-
blemas por tratar, y debemos disponer de grandes conocimientos de hardwa-
re y software, asimismo, tampoco estara de ms un poco de psicologa para
tratar con los usuarios finales de los sistemas.
El curso no pretende abordar una distribucin GNU/Linux particular, pero se
han escogido un par de ellas significativas, por su amplio uso, para tratar los
ejemplos de tareas: Debian y Fedora.
Respecto al campo de la administracin, sta se intentar gestionar desde el
nivel ms bajo posible, normalmente desde la lnea de comandos y los fiche-
ros de configuracin. Se comentarn, en su caso, herramientas de ms alto
nivel, pero hay que tener cuidado con estas ltimas, ya que suelen ser fuerte-
mente dependientes de la distribucin utilizada e incluso de la versin de sta;
adems, estas herramientas suelen variar funcionalidades entre versiones. La
administracin de bajo nivel suele ser mucho ms dura, pero conocemos con
qu estamos operando y dnde podemos obtener los resultados, adems de
que nos aporta muchos ms conocimientos extra, y control preciso sobre las
diferentes tecnologas utilizadas.
Las distribuciones escogidas han sido las ultimas disponibles de: Debian (o
compatibles como las variantes de Ubuntu), y Fedora (o compatibles como
diferentes versiones comerciales de Red Hat, o de comunidad como CentOS),
siendo estas (Debian y Fedora) las ms utilizadas en el momento de confeccio-
nar estos materiales. La distribucin Debian es un paradigma dentro del mo-
vimiento Open Source, por no pertenecer a ninguna empresa y estar confec-
cionada bsicamente por las aportaciones de los voluntarios distribuidos por
todo el mundo. Debian, adems, integra casi exclusivamente software libre
GNUFDL PID_00157330 6 Administracin de sistemas GNU/Linux
(pueden aadirse otros aparte). Adems, gran nmero de distribuciones con
xito importante (como las variantes de Ubuntu, que de hecho han superado
a Debian como uso en escritorio) tienen a Debian como distribucin base.
Nota
Principales distribuciones y empresas comentadas en el texto:
http://www.debian.org/
http://www.ubuntu.com/
http://www.canonical.com/
http://fedoraproject.org/
http://www.redhat.com/
http://www.centos.org/
http://www.novell.com/linux/
http://www.opensuse.org/
Red Hat, por otra parte, es una de las empresas ms solventes en el panorama
comercial, y por eso sea quizs la que otorgue ms soporte a nivel empresa-
rial (mediante servicios de pago), mediante sus distribuciones comerciales de
Red Hat Enterprise Linux (tambien existen variantes libres alternativas como
CentOS). Por otra parte, su entrada como patrocinador ha permitido ampliar
los resultados del proyecto Fedora (y la consecuente distribucin GNU/Linux),
como conjunto de test para sus distribuciones posteriores, y un desarrollo de
una amplia comunidad que ha crecido a su alrededor. Este caso forma una
interesante experiencia combinada de comunidad y empresa en el desarrollo
de la distribucin (como despus se ha visto con la ampliacin a otros casos
como Novell, con su versin comercial SUSE Linux y su proyecto de comuni-
dad OpenSUSE). Por el contrario, en Debian el soporte depende de los volun-
tarios y del conocimiento compartido de los usuarios, centrndose en su co-
munidad, aunque en los ltimos tiempos tambin ha recibido el soporte (no
sin ciertos problemas en el proceso) de Canonical, desarrollador de Ubuntu.
Siendo la administracin de sistemas un campo tan amplio, este manual slo
pretende introducirnos en este apasionante (y cmo no, tambin a veces frus-
trante) mundo. Veremos algunas de las tareas tpicas, y cmo tratar las proble-
mticas que nos aparecen. Pero la administracin es un campo que se aprende
da a da, con el trabajo diario. Y desde aqu advertimos que este manual es un
trabajo abierto, que con sus aciertos y los ms que probables errores se puede
ver complementado con los comentarios de sus (sufridores) usuarios. De modo
que son bienvenidos, por parte de los autores, cualquier tipo de comentarios
y sugerencias de mejora de los presentes materiales.
Comentamos, por ltimo, que el contenido refleja el estado de las distribucio-
nes y de las herramientas de administracin en el momento de su confeccin,
o de las correspondientes revisiones o reediciones.
GNUFDL PID_00157330 7 Administracin de sistemas GNU/Linux
Contenidos
Mdulo didctico1
Introduccin al sistema operativo GNU/Linux
Josep Jorba Esteve
1. Software Libre y Open Source
2. UNIX. Un poco de historia
3. Sistemas GNU/Linux
4. El perfil del administrador de sistemas
5. Tareas del administrador
6. Distribuciones de GNU/Linux
7. Qu veremos...
Mdulo didctico2
Nivel usuario
Remo Suppi Boldrito
1. Introduccin al sistema GNU/Linux
2. Conceptos y rdenes bsicas
3. Instalacin y arranque de GNU/Linux (conceptos bsicos)
4. Configuraciones bsicas
5. El entorno grfico
Mdulo didctico3
Programacin de comandos combinados (shell scripts)
Remo Suppi Boldrito
1. Introduccin: el shell
2. Elementos bsicos de un shell script
Mdulo didctico4
Migracin y coexistencia con sistemas no Linux
Josep Jorba Esteve
1. Sistemas informticos: ambientes
2. Servicios en GNU/Linux
3. Tipologas de uso
4. Migrar o coexistir
5. Taller de migracin: anlisis de casos de estudio
Mdulo didctico5
Administracin local
Josep Jorba Esteve
1. Herramientas bsicas para el administrador
2. Distribuciones: particularidades
3. Niveles de arranque y servicios
4. Observar el estado del sistema
5. Sistema de ficheros
GNUFDL PID_00157330 8 Administracin de sistemas GNU/Linux
6. Usuarios y grupos
7. Servidores de impresin
8. Discos y gestin filesystems
9. Software: actualizacin
10. Trabajos no interactivos
11. Taller: prcticas combinadas de los apartados
Mdulo didctico6
Administracin de red
Remo Suppi Boldrito
1. Introduccin a TCP/IP (TCP/IP suite)
2. Conceptos en TCP/IP
3. Cmo se asigna una direccin Internet?
4. Cmo se debe configurar la red?
5. Configuracin del DHCP
6. IP Aliasing
7. IP Masquerade
8. NAT con el kernel 2.2 o superiores
9. Cmo configurar una conexin DialUP y PPP?
10. Configuracin de la red mediante hotplug
11. Virtual private network (VPN)
12. Configuraciones avanzadas y herramientas
GNUFDL PID_00157330 9 Administracin de sistemas GNU/Linux
GNU Free Documentation License
Version 1.3, 3 November 2008
Copyright 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc.
<http://fsf.org/>
Everyone is permitted to copy and distribute verbatim copies of this license
document, but changing it is not allowed.
0. PREAMBLE
The purpose of this License is to make a manual, textbook, or other functional
and useful document "free" in the sense of freedom: to assure everyone the
effective freedom to copy and redistribute it, with or without modifying it,
either commercially or noncommercially. Secondarily, this License preserves
for the author and publisher a way to get credit for their work, while not being
considered responsible for modifications made by others.
This License is a kind of "copyleft", which means that derivative works of the
document must themselves be free in the same sense. It complements the
GNU General Public License, which is a copyleft license designed for free soft-
ware.
We have designed this License in order to use it for manuals for free software,
because free software needs free documentation: a free program should come
with manuals providing the same freedoms that the software does. But this
License is not limited to software manuals; it can be used for any textual work,
regardless of subject matter or whether it is published as a printed book. We
recommend this License principally for works whose purpose is instruction
or reference.
1. APPLICABILITY AND DEFINITIONS
This License applies to any manual or other work, in any medium, that con-
tains a notice placed by the copyright holder saying it can be distributed under
the terms of this License. Such a notice grants a world-wide, royalty-free licen-
se, unlimited in duration, to use that work under the conditions stated herein.
The "Document", below, refers to any such manual or work. Any member of
the public is a licensee, and is addressed as "you". You accept the license if
you copy, modify or distribute the work in a way requiring permission under
copyright law.
GNUFDL PID_00157330 10 Administracin de sistemas GNU/Linux
A "Modified Version" of the Document means any work containing the Docu-
ment or a portion of it, either copied verbatim, or with modifications and/or
translated into another language.
A "Secondary Section" is a named appendix or a front-matter section of the
Document that deals exclusively with the relationship of the publishers or
authors of the Document to the Document's overall subject (or to related mat-
ters) and contains nothing that could fall directly within that overall subject.
(Thus, if the Document is in part a textbook of mathematics, a Secondary Sec-
tion may not explain any mathematics.) The relationship could be a matter
of historical connection with the subject or with related matters, or of legal,
commercial, philosophical, ethical or political position regarding them.
The "Invariant Sections" are certain Secondary Sections whose titles are desig-
nated, as being those of Invariant Sections, in the notice that says that the
Document is released under this License. If a section does not fit the above
definition of Secondary then it is not allowed to be designated as Invariant.
The Document may contain zero Invariant Sections. If the Document does
not identify any Invariant Sections then there are none.
The "Cover Texts" are certain short passages of text that are listed, as Front-
Cover Texts or Back-Cover Texts, in the notice that says that the Document is
released under this License. A Front-Cover Text may be at most 5 words, and
a Back-Cover Text may be at most 25 words.
A "Transparent" copy of the Document means a machine-readable copy, re-
presented in a format whose specification is available to the general public,
that is suitable for revising the document straightforwardly with generic text
editors or (for images composed of pixels) generic paint programs or (for dra-
wings) some widely available drawing editor, and that is suitable for input to
text formatters or for automatic translation to a variety of formats suitable for
input to text formatters. A copy made in an otherwise Transparent file format
whose markup, or absence of markup, has been arranged to thwart or discou-
rage subsequent modification by readers is not Transparent. An image format
is not Transparent if used for any substantial amount of text. A copy that is
not "Transparent" is called "Opaque".
Examples of suitable formats for Transparent copies include plain ASCII wit-
hout markup, Texinfo input format, LaTeX input format, SGML or XML using
a publicly available DTD, and standard-conforming simple HTML, PostScript
or PDF designed for human modification. Examples of transparent image for-
mats include PNG, XCF and JPG. Opaque formats include proprietary formats
that can be read and edited only by proprietary word processors, SGML or
XML for which the DTD and/or processing tools are not generally available,
and the machine-generated HTML, PostScript or PDF produced by some word
processors for output purposes only.
GNUFDL PID_00157330 11 Administracin de sistemas GNU/Linux
The "Title Page" means, for a printed book, the title page itself, plus such fo-
llowing pages as are needed to hold, legibly, the material this License requires
to appear in the title page. For works in formats which do not have any title
page as such, "Title Page" means the text near the most prominent appearance
of the work's title, preceding the beginning of the body of the text.
The "publisher" means any person or entity that distributes copies of the Do-
cument to the public.
A section "Entitled XYZ" means a named subunit of the Document whose tit-
le either is precisely XYZ or contains XYZ in parentheses following text that
translates XYZ in another language. (Here XYZ stands for a specific section
name mentioned below, such as "Acknowledgements", "Dedications", "Endor-
sements", or "History".) To "Preserve the Title" of such a section when you mo-
dify the Document means that it remains a section "Entitled XYZ" according
to this definition.
The Document may include Warranty Disclaimers next to the notice which
states that this License applies to the Document. These Warranty Disclaimers
are considered to be included by reference in this License, but only as regards
disclaiming warranties: any other implication that these Warranty Disclaimers
may have is void and has no effect on the meaning of this License.
2. VERBATIM COPYING
You may copy and distribute the Document in any medium, either commer-
cially or noncommercially, provided that this License, the copyright notices,
and the license notice saying this License applies to the Document are repro-
duced in all copies, and that you add no other conditions whatsoever to tho-
se of this License. You may not use technical measures to obstruct or control
the reading or further copying of the copies you make or distribute. However,
you may accept compensation in exchange for copies. If you distribute a large
enough number of copies you must also follow the conditions in section 3.
You may also lend copies, under the same conditions stated above, and you
may publicly display copies.
3. COPYING IN QUANTITY
If you publish printed copies (or copies in media that commonly have printed
covers) of the Document, numbering more than 100, and the Document's
license notice requires Cover Texts, you must enclose the copies in covers that
carry, clearly and legibly, all these Cover Texts: Front-Cover Texts on the front
cover, and Back-Cover Texts on the back cover. Both covers must also clearly
and legibly identify you as the publisher of these copies. The front cover must
present the full title with all words of the title equally prominent and visible.
GNUFDL PID_00157330 12 Administracin de sistemas GNU/Linux
You may add other material on the covers in addition. Copying with changes
limited to the covers, as long as they preserve the title of the Document and
satisfy these conditions, can be treated as verbatim copying in other respects.
If the required texts for either cover are too voluminous to fit legibly, you
should put the first ones listed (as many as fit reasonably) on the actual cover,
and continue the rest onto adjacent pages.
If you publish or distribute Opaque copies of the Document numbering mo-
re than 100, you must either include a machine-readable Transparent copy
along with each Opaque copy, or state in or with each Opaque copy a compu-
ter-network location from which the general network-using public has access
to download using public-standard network protocols a complete Transparent
copy of the Document, free of added material. If you use the latter option,
you must take reasonably prudent steps, when you begin distribution of Opa-
que copies in quantity, to ensure that this Transparent copy will remain thus
accessible at the stated location until at least one year after the last time you
distribute an Opaque copy (directly or through your agents or retailers) of that
edition to the public.
It is requested, but not required, that you contact the authors of the Document
well before redistributing any large number of copies, to give them a chance
to provide you with an updated version of the Document.
4. MODIFICATIONS
You may copy and distribute a Modified Version of the Document under the
conditions of sections 2 and 3 above, provided that you release the Modified
Version under precisely this License, with the Modified Version filling the role
of the Document, thus licensing distribution and modification of the Modi-
fied Version to whoever possesses a copy of it. In addition, you must do these
things in the Modified Version:
A. Use in the Title Page (and on the covers, if any) a title distinct from that
of the Document, and from those of previous versions (which should, if
there were any, be listed in the History section of the Document). You may
use the same title as a previous version if the original publisher of that
version gives permission.
B. List on the Title Page, as authors, one or more persons or entities res-
ponsible for authorship of the modifications in the Modified Version, to-
gether with at least five of the principal authors of the Document (all of its
principal authors, if it has fewer than five), unless they release you from
this requirement.
GNUFDL PID_00157330 13 Administracin de sistemas GNU/Linux
C. State on the Title page the name of the publisher of the Modified Ver-
sion, as the publisher.
D. Preserve all the copyright notices of the Document.
E. Add an appropriate copyright notice for your modifications adjacent to
the other copyright notices.
F. Include, immediately after the copyright notices, a license notice giving
the public permission to use the Modified Version under the terms of this
License, in the form shown in the Addendum below.
G. Preserve in that license notice the full lists of Invariant Sections and
required Cover Texts given in the Document's license notice.
H. Include an unaltered copy of this License.
I. Preserve the section Entitled "History", Preserve its Title, and add to it
an item stating at least the title, year, new authors, and publisher of the
Modified Version as given on the Title Page. If there is no section Entitled
"History" in the Document, create one stating the title, year, authors, and
publisher of the Document as given on its Title Page, then add an item
describing the Modified Version as stated in the previous sentence.
J. Preserve the network location, if any, given in the Document for public
access to a Transparent copy of the Document, and likewise the network
locations given in the Document for previous versions it was based on.
These may be placed in the "History" section. You may omit a network
location for a work that was published at least four years before the Do-
cument itself, or if the original publisher of the version it refers to gives
permission.
K. For any section Entitled "Acknowledgements" or "Dedications", Preserve
the Title of the section, and preserve in the section all the substance and
tone of each of the contributor acknowledgements and/or dedications gi-
ven therein.
L. Preserve all the Invariant Sections of the Document, unaltered in their
text and in their titles. Section numbers or the equivalent are not consi-
dered part of the section titles.
M. Delete any section Entitled "Endorsements". Such a section may not be
included in the Modified Version.
N. Do not retitle any existing section to be Entitled "Endorsements" or to
conflict in title with any Invariant Section.
GNUFDL PID_00157330 14 Administracin de sistemas GNU/Linux
O. Preserve any Warranty Disclaimers.
If the Modified Version includes new front-matter sections or appendices that
qualify as Secondary Sections and contain no material copied from the Do-
cument, you may at your option designate some or all of these sections as
invariant. To do this, add their titles to the list of Invariant Sections in the
Modified Version's license notice. These titles must be distinct from any other
section titles.
You may add a section Entitled "Endorsements", provided it contains nothing
but endorsements of your Modified Version by various partiesfor example,
statements of peer review or that the text has been approved by an organiza-
tion as the authoritative definition of a standard.
You may add a passage of up to five words as a Front-Cover Text, and a passage
of up to 25 words as a Back-Cover Text, to the end of the list of Cover Texts
in the Modified Version. Only one passage of Front-Cover Text and one of
Back-Cover Text may be added by (or through arrangements made by) any
one entity. If the Document already includes a cover text for the same cover,
previously added by you or by arrangement made by the same entity you are
acting on behalf of, you may not add another; but you may replace the old
one, on explicit permission from the previous publisher that added the old
one.
The author(s) and publisher(s) of the Document do not by this License give
permission to use their names for publicity for or to assert or imply endorse-
ment of any Modified Version.
5. COMBINING DOCUMENTS
You may combine the Document with other documents released under this
License, under the terms defined in section 4 above for modified versions,
provided that you include in the combination all of the Invariant Sections
of all of the original documents, unmodified, and list them all as Invariant
Sections of your combined work in its license notice, and that you preserve
all their Warranty Disclaimers.
The combined work need only contain one copy of this License, and multiple
identical Invariant Sections may be replaced with a single copy. If there are
multiple Invariant Sections with the same name but different contents, make
the title of each such section unique by adding at the end of it, in parentheses,
the name of the original author or publisher of that section if known, or else
a unique number. Make the same adjustment to the section titles in the list of
Invariant Sections in the license notice of the combined work.
GNUFDL PID_00157330 15 Administracin de sistemas GNU/Linux
In the combination, you must combine any sections Entitled "History" in the
various original documents, forming one section Entitled "History"; likewise
combine any sections Entitled "Acknowledgements", and any sections Entitled
"Dedications". You must delete all sections Entitled "Endorsements".
6. COLLECTIONS OF DOCUMENTS
You may make a collection consisting of the Document and other documents
released under this License, and replace the individual copies of this License
in the various documents with a single copy that is included in the collection,
provided that you follow the rules of this License for verbatim copying of each
of the documents in all other respects.
You may extract a single document from such a collection, and distribute it
individually under this License, provided you insert a copy of this License into
the extracted document, and follow this License in all other respects regarding
verbatim copying of that document.
7. AGGREGATION WITH INDEPENDENT WORKS
A compilation of the Document or its derivatives with other separate and in-
dependent documents or works, in or on a volume of a storage or distribution
medium, is called an "aggregate" if the copyright resulting from the compila-
tion is not used to limit the legal rights of the compilation's users beyond what
the individual works permit. When the Document is included in an aggregate,
this License does not apply to the other works in the aggregate which are not
themselves derivative works of the Document.
If the Cover Text requirement of section 3 is applicable to these copies of the
Document, then if the Document is less than one half of the entire aggregate,
the Document's Cover Texts may be placed on covers that bracket the Docu-
ment within the aggregate, or the electronic equivalent of covers if the Docu-
ment is in electronic form. Otherwise they must appear on printed covers that
bracket the whole aggregate.
8. TRANSLATION
Translation is considered a kind of modification, so you may distribute trans-
lations of the Document under the terms of section 4. Replacing Invariant Sec-
tions with translations requires special permission from their copyright hol-
ders, but you may include translations of some or all Invariant Sections in
addition to the original versions of these Invariant Sections. You may include
a translation of this License, and all the license notices in the Document, and
any Warranty Disclaimers, provided that you also include the original English
GNUFDL PID_00157330 16 Administracin de sistemas GNU/Linux
version of this License and the original versions of those notices and disclai-
mers. In case of a disagreement between the translation and the original ver-
sion of this License or a notice or disclaimer, the original version will prevail.
If a section in the Document is Entitled "Acknowledgements", "Dedications",
or "History", the requirement (section 4) to Preserve its Title (section 1) will
typically require changing the actual title.
9. TERMINATION
You may not copy, modify, sublicense, or distribute the Document except as
expressly provided under this License. Any attempt otherwise to copy, modify,
sublicense, or distribute it is void, and will automatically terminate your rights
under this License.
However, if you cease all violation of this License, then your license from
a particular copyright holder is reinstated (a) provisionally, unless and until
the copyright holder explicitly and finally terminates your license, and (b)
permanently, if the copyright holder fails to notify you of the violation by
some reasonable means prior to 60 days after the cessation.
Moreover, your license from a particular copyright holder is reinstated perma-
nently if the copyright holder notifies you of the violation by some reasona-
ble means, this is the first time you have received notice of violation of this
License (for any work) from that copyright holder, and you cure the violation
prior to 30 days after your receipt of the notice.
Termination of your rights under this section does not terminate the licenses
of parties who have received copies or rights from you under this License. If
your rights have been terminated and not permanently reinstated, receipt of a
copy of some or all of the same material does not give you any rights to use it.
10. FUTURE REVISIONS OF THIS LICENSE
The Free Software Foundation may publish new, revised versions of the GNU
Free Documentation License from time to time. Such new versions will be
similar in spirit to the present version, but may differ in detail to address new
problems or concerns. See http://www.gnu.org/copyleft/.
Each version of the License is given a distinguishing version number. If the
Document specifies that a particular numbered version of this License "or any
later version" applies to it, you have the option of following the terms and
conditions either of that specified version or of any later version that has been
published (not as a draft) by the Free Software Foundation. If the Document
does not specify a version number of this License, you may choose any ver-
sion ever published (not as a draft) by the Free Software Foundation. If the
GNUFDL PID_00157330 17 Administracin de sistemas GNU/Linux
Document specifies that a proxy can decide which future versions of this Li-
cense can be used, that proxy's public statement of acceptance of a version
permanently authorizes you to choose that version for the Document.
11. RELICENSING
"Massive Multiauthor Collaboration Site" (or "MMC Site") means any World
Wide Web server that publishes copyrightable works and also provides promi-
nent facilities for anybody to edit those works. A public wiki that anybody
can edit is an example of such a server. A "Massive Multiauthor Collaboration"
(or "MMC") contained in the site means any set of copyrightable works thus
published on the MMC site.
"CC-BY-SA" means the Creative Commons Attribution-Share Alike 3.0 licen-
se published by Creative Commons Corporation, a not-for-profit corporation
with a principal place of business in San Francisco, California, as well as future
copyleft versions of that license published by that same organization.
"Incorporate" means to publish or republish a Document, in whole or in part,
as part of another Document.
An MMC is "eligible for relicensing" if it is licensed under this License, and if
all works that were first published under this License somewhere other than
this MMC, and subsequently incorporated in whole or in part into the MMC,
(1) had no cover texts or invariant sections, and (2) were thus incorporated
prior to November 1, 2008.
The operator of an MMC Site may republish an MMC contained in the site
under CC-BY-SA on the same site at any time before August 1, 2009, provided
the MMC is eligible for relicensing.
ADDENDUM: How to use this License for your documents
To use this License in a document you have written, include a copy of the
License in the document and put the following copyright and license notices
just after the title page:
Copyright (C) YEAR YOUR NAME.
Permission is granted to copy, distribute and/or modify this
document under the terms of the GNU Free Documentation Li-
cense, Version 1.3 or any later version published by the Free
Software Foundation; with no Invariant Sections, no Front-
Cover Texts, and no Back-Cover Texts.
A copy of the license is included in the section entitled "GNUFree Documen-
tation License".
GNUFDL PID_00157330 18 Administracin de sistemas GNU/Linux
If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts, repla-
ce the "with ... Texts." line with this:
with the Invariant Sections being LIST THEIR TITLES, with
theFront-Cover Texts being LIST, and with the Back-Cover Texts
being LIST.
If you have Invariant Sections without Cover Texts, or some other combina-
tion of the three, merge those two alternatives to suit the situation.
If your document contains nontrivial examples of program code, we recom-
mend releasing these examples in parallel under your choice of free software
license, such as the GNU General Public License, to permit their use in free
software.
GNUFDL PID_00157330 19 Administracin de sistemas GNU/Linux
Bibliografa
[Bai03] Bailey, E. C. (2003). RedHat Maximum RPM. http://
www.redhat.com/docs/books/max-rpm/index.html
Ofrece una amplia visin de los sistemas de paquetes de software de las distri-
buciones Debian y Fedora/Red Hat.
[Ban] Banerjee, T. "Linux Installation Strategies HOWTO". The Linux Docu-
mentation Project.
The Dot Gnu Project. http://www.gnu.org/software/dotgnu/
[Bar] Barrapunto. barrapunto site. Noticias Open Source. http://
barrapunto.com
[Bas] Mike, G. "BASH Programming - Introduction HOWTO". The Linux Do-
cumentation Project.
Ofrece una amplia introduccin (y conceptos avanzados) a la programacin
de shell scripts en bash, as como numerosos ejemplos.
Barnett, B. "AWK". General Electric Company. http://www.grymoire.com/
Unix/Awk.html
"Big Admin: Script Examples". http://www.sun.com/bigadmin/scripts/
filter.jsp
[Bro01] Scott Bronson (2001). "VPN PPP-SSH". The Linux Documentation
Project,.
[Bul] Bulma. "Bulma Linux User Group". Documentacin general y comuni-
dades de usuarios. http://bulmalug.net
[Cen] The Comunity ENTerprise Operatyng System. http://www.centos.org
[Cis00] Cisco (2000). "TCP/IP White Paper". http://www.cisco.com
[Com01] Douglas Comer (2001). TCP/IP Principios bsicos, protocolos y ar-
quitectura. Prentice Hall.
[Coo] Cooper, M. (2006). "Advanced bash Scripting Guide". The Linux Docu-
mentation Project (guas). http://tldp.org/LDP/abs/html/index.html
Ofrece una amplia introduccin (y conceptos avanzados) a la programacin
de shell scripts en bash, as como numerosos ejemplos.
[Debb] Comunidad Debian. "Distribucin Debian". http://www.debian.org
[Deb] Debian. "Sitio Seguridad de Debian". http://www.debian.org/security/
Ofrece una amplia visin de los sistemas de paquetes de software de las distri-
buciones Debian y Fedora/Red Hat.
GNUFDL PID_00157330 20 Administracin de sistemas GNU/Linux
[Debba] Debian. "Software Libre vs Software Abierto". http://
www.debian.org/intro/free.es.html
[Dis] Distrowatch. "Distribuciones Linux disponibles". Seguimiento de las dis-
tribuciones GNU/Linux y novedades de los paquetes software. Y enlaces a los
sitios de descarga de las imgenes ISO de los CD/DVD de las distribuciones
GNU/Linux. http://www.distrowatch.com
[Dra99] Joshua Drake. "Linux Networking". The Linux Documentation Pro-
ject, 1999.
[Fed] The Fedora Project. http://fedoraproject.org
[FHS] FHS Standard (2003). http://www.pathname.com/fhs
[Fre] Freshmeat. "Freshmeat site". Listado de proyectos Open Source. http://
freshmeat.org
[Fri02] Frisch, A. (2002). Essential System Administration. O'Reilly.
Administracin de GNU/Linux y UNIX. Comenta de forma amplia aspectos
de administracin local y gestin de sistemas de impresin.
[FSF] FSF. "Free Software Foundation y Proyecto GNU". http://www.gnu.org
[Gar98] Bdale Garbee (1998). TCP/IP Tutorial. N3EUA Inc.
Garrels, Machtelt. "Bash Guide for Beginners". http://tldp.org/LDP/Bash-
Beginners-Guide/html/index.html
"Man bash". http://www.gnu.org/software/bash/manual/bashref.html
[Gnu] Gnupg.org. GnuPG Web Site.http://www.gnupg.org/
[Gon] Gonzato, G. "From DOS/Windows to Linux HOWTO". The Linux Do-
cumentation Project.
[Gt] Taylor, G.; Allaert, D. "The Linux Printing HOWTO". The Linux Docu-
mentation Project.
Ofrece informacin actualizada de los sistemas de impresin y su confi-
guracin, as como detalles de algunas impresoras. Para detalles concre-
tos de modelos de impresora y controladores, podis dirigiros a: http://
www.linuxprinting.org/
[Hin00] Hinner, M. "Filesystems HOWTO". The Linux Documentation Project.
Informacin sobre los diferentes sistemas de ficheros disponibles y los esque-
mas de creacin de particiones para la instalacin del sistema.
[His] HispaLinux. "Comunidad Hispana de Linux". Documentacin general y
comunidades de usuarios. http://www.hispalinux.es
GNUFDL PID_00157330 21 Administracin de sistemas GNU/Linux
[IET] IETF. "Repositorio de Request For Comment desarrollado por Internet
Engineering Task Force (IETF) en el Network Information Center (NIC)".
[Joh08] Johnson, Michael K. (1998). "Linux Information Sheet". The Linux
Documentation Project.
[KD00] Olaf Kirch; Terry Dawson. Linux Network Administrator's Guide.
[Knp] Distribucin Knoppix. http://knoppix.org
[Koe] Koehntopp, K. "Linux Partition HOWTO". The Linux Documentation
Project.
Informacin sobre los diferentes sistemas de ficheros disponibles y los esque-
mas de creacin de particiones para la instalacin del sistema.
[Law07] David Lawyer (2007). "Linux Mdem". The Linux Documentation
Project.
[Lev] Levenez, Eric. "UNIX History". http://www.levenez.com/unix
Linux Journal. Linux Journal [Revista Linux]. Revista GNU/Linux. http://
www.linuxjournal.com
Linux Magazine. Linux Magazine. Revista GNU/Linux. http://www.linux-
mag.com/
[lin03b] FHS Standard (2003). http://www.pathname.com/fhs
[Linc] Linux Standards Base project. http://www.linux-foundation.org/en/LSB
[Log] LogCheck. http://logcheck.org/
[LPD] LPD. The Linux Documentation Project. http://www.tldp.org
Proporciona los Howto de los diferentes aspectos de un sistema GNU/Linux y
un conjunto de manuales ms elaborados.
[Mal96] Fred Mallett (1996). TCP/IP Tutorial. FAME Computer Education.
Mike G. "Programacin en BASH - COMO de introduccin". http://
es.tldp.org/COMO-INSFLUG/COMOs/Bash-Prog-Intro-COMO/
[Mon] Monit. http://www.tildeslash.com/monit/
[Mor 03] Morill, D. (2003). Configuracin de sistemas Linux. Anaya Multime-
dia.
Buena referencia de configuracin de sistemas Linux, con algunos casos de
estudio en diferentes entornos; comenta diferentes distribuciones Debian y
Red Hat.
GNUFDL PID_00157330 22 Administracin de sistemas GNU/Linux
[Mou01] Gerhard Mourani (2001). Securing and Optimizing Linux: The Ulti-
mate Solution. Open Network Architecture, Inc.
[Mor03] Morill, D. (2003). Configuracin de sistemas Linux. Anaya Multime-
dia.
[Nem06] Nemeth, E.; Snyder, G.; Hein, T. R. (2006). "Linux Administra-
tion Handbook" (2. ed.). Prentice Hall.
Trata de forma amplia la mayora de aspectos de administracin y es una buena
gua genrica para cualquier distribucin.
[New] Newsforge. "Newsforge site". Noticias Open Source. http://
newsforge.org
[Nt3] NTFS-3g Project: NTFS-3G Read/Write Driver. http://www.ntfs-3g.org/
O'Reilly Associates (2000). Y como e-book (free) en Free Software Founda-
tion, Inc. http://www.tldp.org/guides.html
[OSDb] OSDN. "Open Source Development Network". Comunidad de varios
sitios web, noticias, desarrollos, proyectos, etc. http://osdn.com
[OSIa] OSI. "Listado de licencias Open Source". http://www.opensource.org/
licenses/index.html
[OSIb] OSI (2003). "Open Source Definition". http://www.opensource.org/
docs/definition.php
[OSIc] OSI (2003). "Open Source Iniciative". http://www.opensource.org
[PPP00] Linux PPP (2000). "Corwin Williams, Joshua Drake and Robert Hart".
The Linux Documentation Project.
[Pri] Pritchard, S. "Linux Hardware HOWTO". The Linux Documentation Pro-
ject.
[PS02] Enrquez, R.; Sierra, P. (2002). Open Source. Anaya Multimedia.
[Qui01] Quigley, E. (2001). Linux shells by Example. Prentice Hall.
Comenta los diferentes shells de programacin en GNU/Linux, as como sus
semejanzas y diferencias.
[Ran05] David Ranch. (2005). "Linux IP Masquerade" y John Tapsell. Mas-
querading Made Simple . The Linux Documentation Project.
[Ray98] Raymond, Eric (1998). La catedral y el bazar. http://es.tldp.org/
Otros/catedral-bazar/cathedral-es-paper-00.html
[Ray02a] Raymond, Eric (2002). "UNIX and Internet Fundamentals". The
Linux Documentation Project.
GNUFDL PID_00157330 23 Administracin de sistemas GNU/Linux
[Rayb] Raymond, E. S. "The Linux Installation HOWTO". The Linux Docu-
mentation Project.
Red Hat Inc. "Distribucin Red Hat". http://www.redhat.com
[Rid00] Daniel Lpez Ridruejo (2000). "The Linux Networking Overview".
The Linux Documentation Project.
Robbins, Arnold. "UNIX in a Nutshell" (3. ed.). http://oreilly.com/catalog/
unixnut3/chapter/ch11.html
"The GNU awk programming language". http://tldp.org/LDP/Bash-Beginners-
Guide/html/chap_06.html
[Sal94] Salus, Peter H. (1994, noviembre). "25 aniversario de UNIX". Byte
Espaa (nm. 1).
Scientific Linux. http://www.scientificlinux.org
[Sam] Samba Project. http://samba.org
[Sama] Samba HOWTO and Reference Guide (Chapter Domain Con-
trol). http://samba.org/samba/docs/man/Samba-HOWTO-Collection/samba-
pdc.html
[Samb] Samba Guide (Chapter Adding Domain member Servers and Clients).
http://samba.org/samba/docs/man/Samba-Guide/unixclients.html
[Sec00] Andrs Seco (2000). "Diald". The Linux Documentation Project.
[Skob] Skoric, M. "Linux+WindowsNT mini-HOWTO". The Linux Documen-
tation Project.
[Sla] Slashdot. "Slashdot site". Sitio de noticias comunidad Open Source y
generales informtica e Internet. http://slashdot.org
[SM02] Schwartz, M. y otros (2002). Multitool Linux - Practical Uses for Open
Source Software. Addison Wesley.
[Smb] Entrada "Server Message Block" en la Wikipedia. http://
en.wikipedia.org/wiki/Server_Message_Block
[Smi02] Smith, R. (2002). Advanced Linux Networking. Addison Wesley.
Administracin de GNU/Linux y UNIX. Comenta de forma amplia aspectos
de administracin local y gestin de sistemas de impresin.
[Sob10] Sobell, M. G. (2010). A Practical Guide to Fedora and Red Hat Enterprise
Linux. Prentice Hall.
Es una buena gua de administracin local para distribuciones Red Hat y Fe-
dora.
GNUFDL PID_00157330 24 Administracin de sistemas GNU/Linux
[Sou] Sourceforge. "Sourceforge site". Listado de proyectos Open Source. http:/
/sourceforge.org
[Sta02] Stallman, Richard (2002). "Discusin por Richard Stallman sobre
la relacin de GNU y Linux". http://www.gnu.org/gnu/linux-and-gnu.html
[Ste07] French, S. "Linux CIFS Client Guide". http://us1.samba.org/samba/
ftp/cifs-cvs/linux-cifs-client-guide.pdf
[Stu] Stutz, M. "The Linux Cookbook: Tips and Techniques for Everyday
Use". The Linux Documentation Project (guas).
Es una amplia introduccin a las herramientas disponibles en GNU/Linux.
[Sun 02] Sundaram, R. (2002). "The dosemu HOWTO". The Linux Docu-
mentation Project.
[Tan87] Tanenbaum, Andrew (1987). Sistemas operativos: diseo e imple-
mentacin. Prentice Hall.
[Tan06] Tanenbaum, Andrew; Woodhull, Albert S. (2006). The Minix
Book: Operating Systems Design and Implementation (3. ed.). Prentice Hall.
[Tri] Tripwire.com. Tripwire Web Site. http://www.tripwire.com/
[Ubn] Distribucin Ubuntu. http://www.ubuntu.com
[Vas00] Alavoor Vasudevan (2000). "Modem-Dialup-NT". The Linux Docu-
mentationProject.
[War] Ward, I. "Debian and Windows Shared Printing mini-HOWTO". The
Linux Documentation Project. Wine Project. http://www.winehq.com/
[Wil02] Matthew D. Wilson (2002). "VPN". The Linux Documentation Pro-
ject.
[Wm02] Welsh, M. y otros (2002). Running Linux 4th edition. O'Reilly.
Administracin de GNU/Linux y UNIX. Comenta de forma amplia aspectos
de administracin local y gestin de sistemas de impresin.
[Woo] Wood, D. "SMB HOWTO". The Linux Documentation Project.
[Xin] Xinetd Web Site. http://www.xinetd.org/
Introduccin al
sistema operativo
GNU/Linux
Josep Jorba Esteve
PID_00167539
GNUFDL PID_00167539 Introduccin al sistema operativo GNU/Linux
2010, FUOC. Se garantiza permiso para copiar, distribuir y modificar este documento segn los trminos de la GNU Free
Documentation License, Version 1.2 o cualquiera posterior publicada por la Free Software Foundation, sin secciones invariantes ni
textos de cubierta delantera o trasera. Se dispone de una copia de la licencia en el apartado "GNU Free Documentation License" de
este documento.
GNUFDL PID_00167539 Introduccin al sistema operativo GNU/Linux
ndice
Introduccin............................................................................................... 5
1. Software Libre y Open Source........................................................ 7
2. UNIX. Un poco de historia............................................................... 14
3. Sistemas GNU/Linux.......................................................................... 23
4. El perfil del administrador de sistemas...................................... 27
5. Tareas del administrador................................................................ 32
5.1. Tareas de administracin local del sistema ................................. 32
5.2. Tareas de administracin de red ................................................. 34
6. Distribuciones de GNU/Linux......................................................... 37
6.1. Debian ......................................................................................... 42
6.2. Fedora .......................................................................................... 46
7. Qu veremos........................................................................................ 51
Actividades.................................................................................................. 53
Bibliografa................................................................................................. 54
GNUFDL PID_00167539 5 Introduccin al sistema operativo GNU/Linux
Introduccin
Los sistemas GNU/Linux [Joh98] ya no son una novedad; cuentan con una
amplia variedad de usuarios y de mbitos de trabajo donde son utilizados.
Su origen se remonta al mes de agosto de 1991, cuando un estudiante finlan-
ds llamado Linus Torvalds anunci, en el newsgroup comp.os.minix que haba
creado su propio ncleo de sistema operativo y lo ofreci a la comunidad de
desarrolladores para que lo probara y sugiriera mejoras para hacerlo ms uti-
lizable. Este sera el origen del ncleo (o kernel) del operativo que, ms tarde,
se llamara Linux.
Por otra parte, la FSF (Free Software Foundation), mediante su proyecto GNU,
produca software desde 1984 que poda ser utilizado libremente, debido a lo
que Richard Stallman (miembro de la FSF) consideraba software libre: aquel
del que podamos conseguir sus fuentes (cdigo), estudiarlas y modificarlas, y
redistribuirlo sin que nos obliguen a pagar por ello. En este modelo, el nego-
cio no est en la ocultacin del cdigo, sino en el software complementario
aadido, en la adecuacin del software a los clientes y en los servicios aadi-
dos, como el mantenimiento y la formacin de usuarios (el soporte que les
ofrezcamos), ya sea en forma de material, libros y manuales, o en cursos de
formacin.
La combinacin (o suma) del software GNU y del kernel Linux es la que nos ha
trado a los actuales sistemas GNU/Linux. Actualmente, tanto los movimien-
tos Open Source, desde diferentes organizaciones (como FSF) y empresas co-
mo las que generan las diferentes distribuciones Linux (Red Hat, Canonical
Ubuntu, Mandrake, Novell SuSe...), pasando por grandes empresas (como HP,
IBM o Sun, que proporcionan apoyos y/o patrocinios), han dado un empujn
muy grande a los sistemas GNU/Linux hasta situarlos al nivel de poder com-
petir, y superar, muchas de las soluciones propietarias cerradas existentes.
Los sistemas GNU/Linux no son ya una novedad. El software GNU se
inici a mediados de los ochenta, y el kernel Linux a principios de los
noventa. Linux se apoya en tecnologa probada de UNIX, con ms de
cuarenta aos de historia.
En este mdulo introductorio veremos algunas ideas generales de los movi-
mientos Open Source y Free Software, as como un poco de historia de Linux
y de sus orgenes compartidos con UNIX, de donde ha heredado ms de cua-
renta aos de investigacin en sistemas operativos.
Nota
Podis ver una copia del
mensaje de Linus y las reac-
ciones iniciales en http:/
/groups.google.com/
group/comp.os.minix/
browse_thread/thread/
76536d1fb451ac60/
b813d52cbc5a044b
GNUFDL PID_00167539 7 Introduccin al sistema operativo GNU/Linux
1. Software Libre y Open Source
Bajo la idea de los movimientos (o filosofas) de Software Libre y Open Source
[OSIc] [OSIb] (tambin llamado de cdigo abierto o software abierto), se en-
cuentran varias formas de software que, aunque no son todas del mismo tipo,
s comparten muchas ideas comunes.
La denominacin de un producto de software como "de cdigo abierto"
conlleva, como idea ms importante, la posibilidad de acceder a su c-
digo fuente, y la posibilidad de modificarlo y redistribuirlo de la manera
que se considere conveniente, estando sujeto a una determinada licen-
cia de cdigo abierto, que nos da el marco legal.
Frente a un cdigo de tipo propietario, en el cual un fabricante (empresa de
software) encierra su cdigo, ocultndolo y restringindose los derechos a s
misma, sin dar posibilidad de realizar ninguna adaptacin ni cambios que no
haya realizado previamente la empresa fabricante, el cdigo abierto ofrece,
entre otras consideraciones:
1) Acceso al cdigo fuente: ya sea para estudiarlo (ideal para educacin) o
modificarlo, para corregir errores, adaptarlo o aadir ms prestaciones.
2) Gratuidad (de uso y posiblemente de precio): normalmente, el software,
ya sea en forma binaria o en la forma de cdigo fuente, puede obtenerse libre-
mente o por una mdica cantidad en concepto de gastos de empaquetamien-
to, distribucin y valores aadidos. Lo cual no quita que el software pueda ser
distribuido comercialmente a un determinado precio fijado.
3) Evitar monopolios de software propietario: no depender de una nica
opcin o nico fabricante de nuestro software. Esto es ms importante cuando
se trata de una gran organizacin, ya sea una empresa o estado, que no puede
(o no debera) ponerse en manos de una determinada nica solucin y pasar
a depender exclusivamente de ella.
4) Un modelo de avance: no basado en la ocultacin de informacin, sino
en la comparticin del conocimiento (semejante al de la comunidad cientfi-
ca), para lograr progresos de forma ms rpida, con mejor calidad, ya que las
elecciones tomadas estn basadas en el consenso de la comunidad, y no en los
caprichos de empresas desarrolladoras de software propietario.
Nota
[OSIc] OSI (2003). "Open
Source Iniciative".
http://www.opensource.org
[OSIb] OSI (2003). "Open
Source Definition".
http://www.opensource.org/
docs/definition.php
GNUFDL PID_00167539 8 Introduccin al sistema operativo GNU/Linux
Crear programas y distribuirlos junto al cdigo fuente no es nuevo. Ya desde
los inicios de la informtica y en los inicios de la red Internet se haba hecho
as. Sin embargo, el concepto de cdigo abierto como tal, la definicin y la
redaccin de las condiciones que tena que cumplir, datan de mediados de
1997.
Eric Raymond y Bruce Perens fueron los que divulgaron la idea. Raymond
[Ray98] fue el autor del ensayo titulado "La catedral y el bazar", que hablaba
sobre las tcnicas de desarrollo de software utilizadas por la comunidad Linux,
encabezada por Linus Torvalds, y la comunidad GNU de la Free Software Foun-
dation (FSF), encabezada por Richard Stallman. Por su parte, Bruce Perens era
en aquel momento el jefe del proyecto Debian, que trabajaba en la creacin
de una distribucin de GNU/Linux integrada nicamente con software libre.
Dos de las comunidades ms importantes son la FSF, con su proyecto de
software GNU, y la comunidad Open Source, cuyo mximo exponente
de proyecto es Linux. GNU/Linux es el resultado de la unin de sus
trabajos.
Una distincin importante entre las comunidades FSF y Open Source son las
definiciones de cdigo abierto y software libre. [Deba] [PS02]
El Software Libre (free software) [FSF] es un movimiento que parte de las ideas
de Richard Stallman, que considera que hay que garantizar que los programas
estn al alcance de todo el mundo de forma gratuita, se tenga acceso libre a
stos y puedan utilizarse al antojo de cada uno. Una distincin importante,
que caus ciertas reticencias a las empresas, es el trmino free. En ingls, esta
palabra tiene el doble significado de 'gratuito' y 'libre'. La gente de la FSF bus-
caba las dos cosas, pero era difcil vender ambos conceptos a las empresas. La
pregunta tpica era: cmo se poda ganar dinero con esto? La respuesta vino
de la comunidad Linux (con Linus Torvalds a la cabeza), cuando consigui
tener un producto que todava no haba logrado la comunidad GNU y la FSF
en esos momentos: un sistema operativo completo libre con cdigo fuente
disponible. En este momento fue cuando a una parte de la comunidad se le
ocurri juntar las diferentes actividades que haba en la filosofa del Software
Libre bajo la nueva denominacin de cdigo abierto (open source).
Open Source se registr como una marca de certificacin, a la que podan
adherirse los productos software que respetasen sus especificaciones. Esto no
gust a todo el mundo; de hecho, suele haber cierta separacin y controversias
entre los dos grupos del Open Source y la FSF (con GNU), aunque son ms las
cosas que los unen que las que los separan.
Nota
Podis ver la versin espa-
ola de [Ray98] en http://
es.tldp.org/Otros/catedral-ba-
zar/cathedral-es-paper-00.html
GNUFDL PID_00167539 9 Introduccin al sistema operativo GNU/Linux
En cierta manera, para los partidarios del software libre (como la FSF), el cdi-
go abierto (u open source) constituye un paso en falso, ya que representa una
cierta "venta" al mercado de sus ideales, y deja la puerta abierta a que se vaya
haciendo propietario el software que era libre. Los partidarios de open source
ven la oportunidad de promocionar el software que, de otro modo, estara
en una utilizacin minoritaria, mientras que con la divulgacin y la puesta
en comn para todo el mundo, incluidas empresas que quieran participar en
cdigo abierto, entramos con suficiente fuerza para plantar cara al software
propietario.
La idea que persiguen tanto FSF como Open Source es la de aumentar la
utilidad del software libre, ofreciendo as una alternativa a las soluciones
nicas que las grandes empresas quieren imponer. Las diferencias entre
ambas filosofas son ms ideolgicas que prcticas.
Una vez establecidas las ideas bsicas de la comunidad del cdigo abierto, lle-
gamos al punto en que haba que concretar de manera clara qu criterios tena
que cumplir un producto de software para considerarse de cdigo abierto. Se
tena que contar con una definicin de cdigo abierto [OSIb], que inicialmen-
te escribi Bruce Perens en junio de 1997 como resultado de comentarios de
los desarrolladores de la distribucin Debian Linux, y que posteriormente fue
reeditada (con modificaciones menores) por la organizacin OSI (Open Source
Initiative). Esta organizacin est encargada de regular la definicin y contro-
lar las licencias de cdigo abierto.
El cdigo abierto est regulado por una definicin pblica que se utiliza
como base de la redaccin de sus licencias de software.
Un pequeo resumen (interpretacin) de la definicin: un Open Source Soft-
ware [OSIb], o software de cdigo fuente abierto, debe cumplir los requisitos
siguientes:
1) Se puede copiar, regalar o vender a terceros el software, sin tener que
pagar a nadie por ello. Se permite copiar el programa.
2) El programa debe incluir el cdigo fuente y tiene que permitir la distri-
bucin tanto en forma compilada como en fuente. O, en todo caso, hay que
facilitar algn modo de obtener los cdigos fuente (por ejemplo, descarga des-
de Internet). No est permitido ocultar el cdigo, o darlo en representaciones
intermedias. Garantiza que se pueden hacer modificaciones.
GNUFDL PID_00167539 10 Introduccin al sistema operativo GNU/Linux
3) La licencia del software tiene que permitir que se puedan realizar mo-
dificaciones y trabajos que se deriven, y que entonces se puedan distribuir
bajo la misma licencia que la original. Permite reutilizar el cdigo original.
4) Puede requerirse la integridad del cdigo del autor, o sea, las modifica-
ciones se pueden presentar en forma de parches (patchs) al cdigo original, o
se puede pedir que tengan nombres o nmeros distintos a los originales. Esto
protege al autor de qu modificaciones puedan considerarse como suyas. Este
punto depende de lo que diga la licencia del software.
5) La licencia no debe discriminar a ninguna persona o grupo. No se debe
restringir el acceso al software. Un caso aparte son las restricciones por ley,
como las de las exportaciones tecnolgicas fuera de Estados Unidos a terceros
pases. Si existen restricciones de este tipo, hay que mencionarlas.
6) No debe discriminar campos laborales. El software puede utilizarse en
cualquier ambiente de trabajo, aunque no haya estado pensado para l. Otra
lectura es permitir fines comerciales; nadie puede impedir que el software se
utilice con fines comerciales.
7) La licencia es aplicable a todo el mundo que reciba el programa.
8) Si el software forma parte de producto mayor, debe permanecer con la
misma licencia. Esto controla que no se separen partes para formar software
propietario (de forma no controlada). En el caso de software propietario, hay
que informar que hay partes (y cules) de software de cdigo abierto.
9) La licencia no debe restringir ningn software incorporado o distribui-
do conjuntamente, o sea, incorporarlo no debe suponer ninguna barrera para
otro producto de software distribuido conjuntamente. Este es un punto "po-
lmico", ya que parece contradecirse con el anterior. Bsicamente, dice que
cualquiera puede coger software de cdigo abierto y aadirlo al suyo sin que
afecte a las condiciones de su licencia (por ejemplo, propietaria), aunque s
que, segn el punto anterior, tendra que informar que existen partes de c-
digo abierto.
10) La licencia tiene que ser tecnolgicamente neutra. No deben mencio-
narse medios de distribucin nicos, o excluirse posibilidades. Por ejemplo,
no puede limitarse (por licencia) que se haga la distribucin en forma de CD,
ftp o mediante web.
La licencia que traiga el programa tiene que cumplir las especificaciones an-
teriores para que el programa se considere de cdigo abierto. La organizacin
OSI se encarga de comprobar que las licencias cumplen las especificaciones.
Nota
Esta definicin de cdigo
abierto no es por s misma una
licencia de software, sino ms
bien una especificacin de qu
requisitos debera cumplir una
licencia de software de cdigo
abierto.
GNUFDL PID_00167539 11 Introduccin al sistema operativo GNU/Linux
En la pgina web de Open Source Licenses se puede encontrar la lista de las
licencias [OSIa], siendo una de las ms famosas y utilizadas las GPL (GNU Pu-
blic Licenses).
Bajo GPL, el software puede ser copiado y modificado, pero las modificaciones
deben hacerse pblicas bajo la misma licencia. Y se impide que el cdigo se
mezcle con cdigo propietario, para evitar as que el cdigo propietario se haga
con partes abiertas. Existe una licencia LGPL que es prcticamente igual, pero
permite que software con esta licencia sea integrado en software propietario.
Un ejemplo clsico es la biblioteca (library) C de Linux (con licencia LGPL). Si
sta fuera GPL, slo podra desarrollarse software libre, con la LGPL se permite
usarlo para desarrollar software propietario.
Muchos proyectos de software libre, o con parte de cdigo abierto y parte
propietario, tienen su propia licencia: Apache (basada en la BSD), Mozilla (MPL
y NPL de Netscape), etc. Bsicamente, a la hora de poner el software como
open source podemos poner nuestra propia licencia que cumpla la definicin
anterior (de cdigo abierto), o podemos escoger licenciar bajo una licencia ya
establecida o, como en el caso de la GPL, nos obliga a que nuestra licencia
tambin sea GPL.
Una vez vistos los conceptos de cdigo abierto y sus licencias, nos queda por
tratar hasta qu punto es rentable para una empresa trabajar o producir
cdigo abierto. Si no fuera atrayente para las empresas, perderamos a la vez
tanto un potencial cliente como uno de los principales productores de soft-
ware.
El cdigo abierto es tambin atrayente para las empresas, con un modelo
de negocio donde se prima el valor aadido al producto.
En el cdigo abierto existen diferentes rentabilidades atrayentes de cara a las
empresas:
a) Para las empresas desarrolladoras de software, se crea un problema: cmo
es posible ganar dinero sin vender un producto? Se gasta mucho dinero en
desarrollar un programa y despus es necesario obtener beneficios. Bien, la
respuesta no es simple, no se puede conseguir con cualquier software, la ren-
tabilidad se encuentra en el tipo de software que puede generar beneficios ms
all de la simple venta. Normalmente, hay que hacer un estudio de si la apli-
cacin se tornar rentable al desarrollarla como software abierto (la mayora
s que lo har), basndose en las premisas de que tendremos un descenso de
gasto en desarrollo (la comunidad nos ayudar), reduccin de mantenimiento
o correccin de errores (la comunidad puede ofrecer esto muy rpido), y tener
en cuenta el aumento de nmero de usuarios que nos proporcionar el cdigo
Nota
[OSIa] OSI. "Listado de licen-
cias Open Source".
http://www.opensource.org/li-
censes/index.html
GNUFDL PID_00167539 12 Introduccin al sistema operativo GNU/Linux
abierto, as como las necesidades que tendrn de nuestros servicios de apoyo
o documentacin. Si la balanza es positiva, entonces ser viable prescindir de
los ingresos generados por las ventas.
b) Aumentar la cuota de usuarios.
c) Obtener mayor flexibilidad de desarrollo; cuantas ms personas intervie-
nen, ms gente habr para detectar errores.
d) Los ingresos en su mayor parte vendrn por el lado del apoyo, formacin
de usuarios y mantenimiento.
e) En empresas que utilizan software hay que considerar muchos parmetros
a la hora de escoger el software para el desarrollo de las tareas; cabe tener en
cuenta cosas como rendimiento, fiabilidad, seguridad, escalabilidad y coste
monetario. Y aunque parece que el cdigo abierto ya supone de por s una
eleccin por el coste econmico, hay que decir que existe software abierto
que puede competir con (o incluso superar) el propietario en cualquiera de los
otros parmetros. Adems, hay que vigilar mucho con las opciones o sistemas
propietarios de un nico fabricante; no podemos depender nicamente de
ellos (podemos recordar casos, en otros mbitos, como los vdeos beta de Sony
frente a VHS, o en los PC la arquitectura MicroChannel de IBM). Tenemos que
evitar el uso de monopolios, con lo que stos suponen: falta de competencia
en los precios, servicios caros, mantenimiento caro, poca (o nula) variedad de
opciones, etc.
f) Para los usuarios particulares ofrece gran variedad de software adaptado
a tareas comunes, ya que buena parte del software ha sido pensado e imple-
mentado por personas que queran hacer esas mismas tareas pero no encon-
traban el software adecuado. En el caso del usuario particular, un parmetro
muy importante es el coste del software, pero la paradoja es que en el usuario
domstico es donde se hace ms uso de software propietario. Normalmente,
los usuarios domsticos hacen uso de productos de software con copias ilega-
les. Algunas estadsticas recientes indican ndices del 60-70% de copias ilegales
domsticas en algunos pases. El usuario siente que slo por tener el ordenador
domstico PC ya tiene "derecho" a disponer de software para usarlo. En estos
casos estamos bajo situaciones "ilegales" que, aunque no han sido ampliamen-
te perseguidas, pueden serlo en su da, o bien se intentan controlar por siste-
mas de licencias (o activaciones de productos). Adems, esto tiene unos efec-
tos perjudiciales indirectos sobre el software libre, debido a que si los usuarios
hacen un uso amplio de software propietario, esto obliga a quien se quiera
comunicar con ellos, ya sean bancos, empresas o administraciones pblicas, a
hacer uso del mismo software propietario, y ellos s que abonan las licencias a
los productos. Una de las "batallas" ms importantes para el software libre es la
posibilidad de captar a los usuarios domsticos, lo que se denomina mercado
desktop (o escritorio), referido al uso domstico o de oficina en las empresas.
Nota
Las copias ilegales domsticas
tambin son denominadas a
veces copias piratas.
GNUFDL PID_00167539 13 Introduccin al sistema operativo GNU/Linux
g) Por ltimo, los Estados, como caso particular, pueden obtener beneficios
importantes del software de cdigo abierto, ya que pueden disponer de softwa-
re de calidad a precios "ridculos" comparados con el enorme gasto de licencias
de software propietario (miles o decenas de miles). Adems de que el software
de cdigo abierto permite integrar fcilmente a las aplicaciones, hay que tener
en cuenta cuestiones culturales (de cada pas) como, por ejemplo, la lengua.
Este ltimo caso es bastante problemtico, ya que en determinadas regiones,
estados pequeos con lengua propia, los fabricantes de software propietario se
niegan a adaptar sus aplicaciones, o instan a que se les pague por hacerlo.
GNUFDL PID_00167539 14 Introduccin al sistema operativo GNU/Linux
2. UNIX. Un poco de historia
Como antecesor de nuestros sistemas GNU/Linux [Sta], vamos a recordar un
poco la historia de UNIX [Sal94] [Lev]. En origen, Linux se pens como un
clon de Minix (una implementacin acadmica de UNIX para PC) y de algu-
nas ideas desarrolladas en los UNIX propietarios. Pero, a su vez, se desarroll
en cdigo abierto, y con orientacin a los PC domsticos. Veremos, en este
apartado dedicado a UNIX y en el siguiente, dedicado a GNU/Linux, cmo
esta evolucin nos ha llevado hasta los sistemas GNU/Linux actuales que pue-
den competir con cualquier UNIX propietario y que estn disponibles para
un amplio nmero de arquitecturas hardware, desde el simple PC hasta los
supercomputadores.
Linux puede ser utilizado en un amplio rango de mquinas. En la lis-
ta TOP500 de los supercomputadores ms rpidos pueden encontrarse
varios supercomputadores con GNU/Linux: por ejemplo, el MareNos-
trum, en el Barcelona Supercomputing Center, un cluster diseado por
IBM, con 10240 CPUs PowerPC/Cell con sistema operativo GNU/Linux
(adaptado para los requerimientos de tales mquinas). En las estadsti-
cas de la lista podemos observar que los supercomputadores con GNU/
Linux ocupan, en general, ms de un 75% de la lista.
UNIX se inici hacia el ao 1969 en los laboratorios BTL (Bell Telephone Labs)
de AT&T. stos se acababan de retirar de la participacin de un proyecto lla-
mado MULTICS, cuyo objetivo era crear un sistema operativo con el cual un
gran ordenador pudiera dar cabida a un millar de usuarios simultneos. En
este proyecto participaban los BTL, General Electric y el MIT. Pero fall, en
parte, por ser demasiado ambicioso para su poca.
Mientras se desarrollaba este proyecto, dos ingenieros de los BTL que partici-
paban en MULTICS, Ken Thompson y Dennis Ritchie, encontraron un or-
denador que no estaba utilizando nadie, un DEC PDP7, que slo tena un en-
samblador y un programa cargador. Thompson y Ritchie desarrollaron como
pruebas (y a menudo en su tiempo libre) partes de UNIX, un programa ensam-
blador (del cdigo mquina) y el ncleo rudimentario del sistema operativo.
Ese mismo ao, 1969, Thompson tuvo la idea de escribir un sistema de ficheros
para el ncleo creado, de manera que se pudiesen almacenar ficheros de forma
ordenada en un sistema de directorios jerrquicos. Despus de unas cuantas
discusiones tericas (que se alargaron unos dos meses) se implement el siste-
ma en un par de das. A medida que se avanzaba en el diseo del sistema, en el
cual se incorporaron algunos ingenieros ms de los BTL, la mquina original
Nota
Podemos ver la lista TOP500
de los supercomputadores ms
rpidos en:
http://www.top500.org
GNUFDL PID_00167539 15 Introduccin al sistema operativo GNU/Linux
se les qued pequea, y pensaron en pedir una nueva (en aquellos das costa-
ban cerca de 100.000 dlares, era una buena inversin). Tuvieron que inven-
tarse una excusa (ya que el sistema UNIX era un desarrollo en tiempo libre)
y dijeron que la queran para crear un nuevo procesador de texto (aplicacin
que daba dinero en aquellos tiempos). Se les aprob la compra de una PDP11.
UNIX se remonta al ao 1969, as que cuenta con ms de cuarenta aos
de tecnologas desarrolladas y utilizadas en todo tipo de sistemas.
Cuando les lleg la mquina, slo estaba la CPU y la memoria, pero no el disco
ni el sistema operativo. Thompson, sin poder esperar, dise un disco RAM en
memoria y utiliz la mitad de la memoria como disco y la otra para el sistema
operativo que estaba diseando. Una vez lleg el disco, se sigui trabajando
tanto en UNIX como en el procesador de textos prometido (la excusa). El pro-
cesador de textos fue un xito (se trataba de Troff, un lenguaje de edicin que
posteriormente fue utilizado para crear las pginas man de UNIX), y los BTL
comenzaron a utilizar el rudimentario UNIX con el nuevo procesador de tex-
to, de manera que se convirtieron en el primer usuario de UNIX.
En aquellos momentos comenzaron a presentarse varios principios filosficos
de UNIX [Ray02a]:
Escribir programas para hacer una cosa y hacerla bien.
Escribir programas para que trabajaran juntos.
Escribir programas para que manejaran flujos de texto.
Otra idea muy importante radic en que UNIX fue uno de los primeros siste-
mas pensados para ser independiente de la arquitectura hardware, y que
ha permitido portarlo con xito a un gran nmero de arquitecturas hardware
diferentes.
La necesidad de documentar lo que se estaba haciendo, ya que haba usuarios
externos, dio lugar en noviembre de 1971 al UNIX Programmer's Manual, que
firmaron Thompson y Richie. En la segunda edicin (junio de 1972), denomi-
nada V2 (se haca corresponder la edicin de los manuales con el nmero de
versin UNIX), se deca que el nmero de instalaciones de UNIX ya llegaba a
las diez. Y el nmero sigui creciendo hasta cincuenta en la V5.
Entonces se decidi (finales de 1973) presentar los resultados en un congreso
de sistemas operativos. Y como resultado, varios centros informticos y uni-
versidades pidieron copias de UNIX. AT&T no daba apoyo ni mantenimien-
to de UNIX, lo que hizo que los usuarios necesitaran unirse y compartir sus
conocimientos para formar comunidades de usuarios de UNIX. AT&T decidi
Nota
Ved: http://www.usenix.org
GNUFDL PID_00167539 16 Introduccin al sistema operativo GNU/Linux
ceder UNIX a las universidades, pero tampoco les daba apoyo ni correccin de
errores. Los usuarios comenzaron a compartir sus ideas, informacin progra-
mas, bugs, etc. Se cre una asociacin denominada USENIX como agrupacin
de usuarios de UNIX. Su primera reunin (mayo de 1974) tuvo una docena
de asistentes.
Una de las universidades que haba obtenido una licencia de UNIX fue la Uni-
versidad de California en Berkeley, donde haba estudiado Ken Thompson. En
1975, Thompson volvi como profesor all, y trajo consigo la ltima versin
de UNIX. Dos estudiantes graduados recin incorporados, Chuck Haley y Bill
Joy (que posteriormente cofund SUN Microsystems) comenzaron a trabajar
en una implementacin de UNIX.
Una de las primeras cosas que les decepcion eran los editores. Joy perfeccio-
n un editor llamado ex, hasta transformarlo en el vi, un editor visual a pan-
talla completa. Y los dos escribieron un compilador de lenguaje Pascal, que
aadieron a UNIX. Hubo cierta demanda de esta implementacin de UNIX,
y Joy lo comenz a producir como el BSD, Berkeley Software Distribution (o
UNIX BSD).
BSD (en 1978) tena una licencia particular sobre su precio: deca que estaba
acorde con el coste de los medios y la distribucin que se tena en ese mo-
mento. As, los nuevos usuarios acababan haciendo algunos cambios o incor-
porando cosas, vendiendo sus copias "rehechas" y, al cabo de un tiempo, los
cambios se incorporaban en la siguiente versin de BSD.
Joy tambin realiz en su trabajo del editor vi algunas aportaciones ms, co-
mo el tratamiento de los terminales de texto, de manera que el editor fuera
independiente del terminal en que se utilizase. Cre el sistema termcap como
interfaz genrica de terminales con controladores para cada terminal concre-
to, de manera que en la realizacin de los programas ya nos podamos olvidar
de los terminales concretos y utilizar la interfaz genrica.
Un siguiente paso fue adaptarlo a diferentes arquitecturas. Hasta el ao 1977
slo se poda ejecutar en mquinas PDP; en ese ao se comenzaron a hacer
adaptaciones para mquinas del momento, como las Interdata e IBM. La ver-
sin 7 (V7 en junio de 1979) de UNIX fue la primera portable. Esta versin
trajo muchos avances, ya que contena awk, lint, make, uucp. El manual ya te-
na 400 pginas (ms dos apndices de 400 cada uno). Se inclua tambin el
compilador de C diseado en los BTL por Kernighan y Ritchie, que se haba
creado para reescribir la mayor parte de UNIX, inicialmente en ensamblador y
luego pasado a C con las partes de ensamblador que fuesen slo dependientes
de la arquitectura. Se incluyeron tambin una shell mejorada (shell de Bourne)
y comandos como find, cpio y expr.
GNUFDL PID_00167539 17 Introduccin al sistema operativo GNU/Linux
La industria UNIX comenz tambin a crecer; empezaron a aparecer versiones
(implementaciones) de UNIX por parte de compaas, como Xenix; hubo una
colaboracin entre Microsoft (en los orgenes tambin trabaj con versiones
de UNIX) y SCO para mquinas Intel 8086 (el primer PC de IBM); aparecieron
nuevas versiones BSD de Berkeley...
Pero surgi un nuevo problema cuando AT&T se dio cuenta de que UNIX era
un producto comercial valioso. En la licencia de la V7 se prohibi el estudio en
centros acadmicos, para proteger el secreto comercial. Muchas universidades
utilizaban hasta el momento el cdigo fuente de UNIX para docencia de sis-
temas operativos, y dejaron de usarlo para dar slo teora.
En cualquier caso, cada uno solucion el problema a su modo. En msterdam,
Andrew Tanenbaum (autor de prestigio de libros de teora de sistema operati-
vos) decidi escribir desde el principio un nuevo sistema operativo compatible
con UNIX sin utilizar una sola lnea de cdigo de AT&T; llam a este nuevo
operativo Minix. ste sera el que, posteriormente, le servira en 1991 a un
estudiante finlands para crear su propia versin de UNIX, que llam Linux.
Bill Joy, que continuaba en Berkeley desarrollando BSD (ya estaba en la ver-
sin 4.1), decidi marcharse a una nueva empresa llamada SUN Microsystems,
en la cual acab los trabajos del 4.2BSD, que despus acabara modificando
para crear el UNIX de SUN, el SunOS (hacia 1983). Cada empresa comenz
a desarrollar sus versiones: IBM con AIX, DEC con Ultrix, HP con HPUX, Mi-
crosoft/SCO con Xenix, etc. UNIX comenz (desde 1980) su andadura comer-
cial, AT&T sac una ultima versin llamada UNIX SystemV (SV), de la cual
derivan, junto con los 4.xBSD, los UNIX actuales, ya sea de la rama BSD o de
la SystemV. La SV tuvo varias revisiones, por ejemplo, la SV Release 4 fue una
de las ms importantes. La consecuencia de estas ltimas versiones es que ms
o menos todos los UNIX existentes se adaptaron uno al otro; en la prctica
son versiones del SystemV R4 de AT&T o del BSD de Berkeley, adaptadas por
cada fabricante. Algunos fabricantes lo especifican y dicen que su UNIX es de
tipo BSD o SystemV, pero la realidad es que todos tienen un poco de las dos,
ya que posteriormente se hicieron varios estndares de UNIX para intentar
uniformizarlos. Entre ellos encontramos los IEEE POSIX, UNIX97, FHS, etc.
Con el tiempo, UNIX se dividi en varias ramas de sistema, siendo las
dos principales la que derivaba del AT&T UNIX o SystemV, y la de la
Universidad de California, el BSD. La mayora de UNIX actuales deriva
de uno u otro, o son una mezcla de los dos.
Pero AT&T en aquellos momentos (SVR4) pas por un proceso judicial por
monopolio telefnico (era la principal, si no la nica, compaa telefnica en
Estados Unidos), que hizo que se dividiera en mltiples empresas ms peque-
as, y los derechos de UNIX originales comenzaron un baile de propietarios
GNUFDL PID_00167539 18 Introduccin al sistema operativo GNU/Linux
importante: en 1990 los tenan a medias el Open Software Foundation (OSF) y
UNIX International (UI), despus, UNIX Systems Laboratories (USL), que de-
nunci a la Universidad de Berkeley por sus copias del BSD, pero perdi, ya que
la licencia original no impona derechos de propiedad al cdigo de UNIX. Ms
tarde, los derechos UNIX se vendieron a la empresa Novell; sta cedi parte a
SCO (que ya dispona de algunos cedidos por Microsoft desde sus productos
Xenix), y hoy en da an no est muy claro quin los tiene finalmente: por
diferentes frentes los reclaman Novell, la OSF y SCO.
Un ejemplo de esta problemtica fue el caso (2003-10) de la compaa SCO,
que puso una demanda legal a IBM porque sta, segn SCO, haba cedido par-
te del cdigo UNIX a versiones del kernel Linux, que supuestamente incluyen
algn cdigo UNIX original. El resultado a da de hoy es que el asunto an
contina con cierta vigencia en los tribunales, con SCO convertida en un "pa-
ria" de la industria informtica que amenaza a los usuarios Linux, IBM y otros
UNIX propietarios, con la afirmacin de que tienen los derechos UNIX origi-
nales, y de que los dems tienen que pagar por ellos. Aunque en los ltimos
movimientos judiciales, parece ser que finalmente Novell es la que posee los
derechos de propiedad intelectual de UNIX. Habr que ver cmo evoluciona
este caso, y el tema de los derechos UNIX con l.
Nota
Podis ver la opinin de la FSF
sobre el caso SCO en http://
www.gnu.org/philosophy/sco/
sco.html
GNUFDL PID_00167539 19 Introduccin al sistema operativo GNU/Linux
Figura 1. Resumen histrico de varias versiones UNIX
El panorama actual de UNIX ha cambiado mucho desde la aparicin de Linux
(1991), que a partir de los aos 1995-99 comenz a convertirse en una alter-
nativa seria a los UNIX propietarios, por la gran cantidad de plataformas hard-
ware que soporta y el amplio apoyo de la comunidad internacional y empresas
en el avance. Hay diferentes versiones UNIX propietarias que siguen sobrevi-
viendo en el mercado, tanto por su adaptacin a entornos industriales o por
ser el mejor operativo existente en el mercado, como porque hay necesidades
que slo pueden cubrirse con UNIX y el hardware adecuado. Adems, algu-
nos de los UNIX propietarios todava son mejores que GNU/Linux en cuanto
a fiabilidad y rendimiento, aunque cada vez acortando distancias, ya que las
mismas empresas que tienen sus UNIX propietarios se interesan cada vez ms
en GNU/Linux, y aportan parte de sus desarrollos para incorporarlos a Linux.
Es de esperar una muerte ms o menos lenta de las versiones propietarias de
UNIX, hacia distribuciones basadas en Linux de los fabricantes, adaptadas a
sus equipos.
GNUFDL PID_00167539 20 Introduccin al sistema operativo GNU/Linux
Un panorama general de estas empresas:
SUN: dispone de su implementacin de UNIX llamada Solaris (evolucin
del SunOS). Comenz como un sistema BSD, pero ahora es mayoritaria-
mente SystemV y partes de BSD. Es muy utilizado en las mquinas Sun con
arquitectura Sparc, y en mquinas multiprocesador (hasta unos 64 proce-
sadores). Promocionan GNU/Linux como entorno de desarrollo para Java,
y dispusieron de una distribucin de GNU/Linux denominada Java Desk-
top System, que tuvo una amplia aceptacin en algunos pases. Adems,
comenz a usar Gnome como escritorio, y ofrece apoyo financiero a varios
proyectos como Mozilla Firefox, Gnome y OpenOffice. Tambin cabe des-
tacar la iniciativa tomada con su ltima versin de su UNIX Solaris, para
liberar su cdigo casi totalmente, en la versin Solaris 10, creando una
comunidad para las arquitecturas intel y Sparc, denominada OpenSolaris,
que ha permitido la creacin de distribuciones libres de Solaris. Adems
tenemos que sealar iniciativas (2006) para liberar la plataforma Java bajo
licencias GPL, como el proyecto OpenJDK. Asimismo, la adquisicin de
Sun Microsystems por parte de Oracle (2009) est causando cierta incerti-
dumbre en algunos de estos productos y/o tecnologas, por no haber defi-
nido la compaa una estrategia clara para ellos.
IBM: tiene su versin de UNIX propietaria denominada AIX, que sobrevi-
ve en algunos segmentos de gama alta de estaciones de trabajo y servido-
res de la firma. Por otra parte, presta apoyo firme a la comunidad Open
Source, promoviendo entornos de desarrollo libres (eclipse.org) y tecno-
logas Java para Linux, incorpora Linux a sus grandes mquinas y disea
campaas publicitarias (marketing) para promocionar Linux. Aparte est
teniendo una repercusin importante en la comunidad, por el ambiente
judicial de su caso defendindose de la firma SCO, que la acusa de viola-
cin de propiedad intelectual UNIX, por haber, supuestamente, integrado
componentes en GNU/Linux.
HP: tiene su UNIX HPUX, pero da amplio soporte a Linux, tanto en forma
de cdigo en Open Source como instalando Linux en sus mquinas. Se
dice que es la compaa que ha ganado ms dinero con Linux.
SGI: Silicon Graphics tiene un UNIX llamado IRIX para sus mquinas gr-
ficas basadas en arquitecturas MIPS. En el 2006 cambi su estrategia ha-
cia plataformas Intel Xeon/AMD Opteron vendiendo mquinas con Win-
dows, y ltimamente la mayora de los sistemas con versiones comerciales
de GNU/Linux, como las producidas por Red Hat y Novell SUSE. A la co-
munidad Linux le ofrece soporte de OpenGL (tecnologa de grficos 3D)
y de diferentes sistemas de ficheros (XFS) y control de dispositivos perif-
ricos.
Apple: se incorpor recientemente (a partir de mediados de los noventa)
al mundo UNIX, cuando decidi sustituir su operativo por una variante
Nota
Muchas de las empresas que
disponen de UNIX propieta-
rios participan en GNU/Linux
y ofrecen algunos de sus desa-
rrollos a la comunidad.
GNUFDL PID_00167539 21 Introduccin al sistema operativo GNU/Linux
UNIX. El ncleo de sus nuevos operativos, llamado XNU (combinado en
el sistema operativo Darwin) proviene de una versin 4.4BSD, combina-
da con kernel Mach. Este ncleo Open Source ser el que, sumado a unas
interfaces grficas muy potentes, d a Apple su sistema operativo MacOS
X. Est considerado hoy en da como uno de los mejores UNIX y, como
mnimo, uno de los ms "bellos" en aspecto grfico. Tambin emplea gran
cantidad de software provenientes del proyecto GNU como utilidades de
sistema y libreras y compiladores de desarrollo (GNU gcc).
Distribuidores Linux: tanto comerciales como organizaciones, mencio-
naremos a empresas como Red Hat, SuSe, Mandriva (previamente conoci-
da como Mandrake), y organizaciones/comunidades no comerciales como
Debian, Fedora, OpenSUSE, etc... Entre stas (las distribuciones con mayor
despliegue) y las ms pequeas, se llevan el mayor desarrollo de GNU/Li-
nux, y tienen el apoyo de la comunidad Linux y de la FSF con el software
GNU, adems de recibir contribuciones de las citadas empresas.
BSD: aunque no sea una empresa como tal, mencionaremos cmo des-
de Berkeley y otros intermediarios se contina el desarrollo de las versio-
nes BSD, as como otros proyectos libres, clones de BSD, como los operati-
vos FreeBSD, netBSD, OpenBSD (el UNIX considerado ms seguro), Trus-
tedBSD, etc., que tambin, ms tarde o ms temprano, suponen mejoras o
incorporaciones de software a Linux. Adems, una aportacin importante
en la lnea BSD es el kernel XNU (usado en Darwin) proveniente de 4.4BSD,
y que desarroll Apple como ncleo de cdigo abierto de su sistema ope-
rativo MacOS X y su sistema IphoneOS para mviles.
Google: ha tenido una relacin bastante importante con la comunidad
desde sus inicios como buscador en Internet, ya que toda su infraestructu-
ra de clusters en diferentes centros de datos, a veces conocida como Goo-
gle Cluster, est basada en mltiples servidores corriendo GNU/Linux con
sistemas de ficheros especialmente diseados para grandes volmenes de
datos. Asimismo, entr con especial fuerza en el mundo del desarrollo pa-
ra plataformas mviles, con la plataforma Android, una plataforma con
kernel Linux, y capas software basadas en GNU y Java.
Microsoft: Siempre ha tenido una relacin difcil con el cdigo abierto
abierto/libre, al que ve como un competidor y un peligro potencial. Nor-
malmente, ha supuesto ms para la comunidad un entorpecimiento en el
desarrollo de UNIX y GNU/Linux, ya que ha puesto trabas con incompa-
tibilidades en diferentes tecnologas, y no dispone de una participacin
directa en el mundo UNIX/Linux. Aunque en sus orgenes desarroll Xe-
nix (1980) para PC, a partir de una licencia AT&T de UNIX, que no vendi
directamente, pero s lo hizo por medio de intermediarios, como SCO, que
se hizo con su control en 1987 y la renombr como SCO UNIX (1989).
Como nota curiosa, posteriormente compr parte de derechos de la licen-
cia UNIX a SCO (sta los haba obtenido a su vez por medio de Novell).
Nota
Carta abierta de Novell a
la comunidad GNU/Linux
en http://www.novell.com/
linux/microsoft/
community_open_letter.html
GNUFDL PID_00167539 22 Introduccin al sistema operativo GNU/Linux
No estn claros los motivos de Microsoft a la hora de realizar esta adqui-
sicin, aunque algunos sugieren que existe alguna relacin con el hecho
de proporcionar apoyo a SCO en su juicio contra IBM. Adems, reciente-
mente (2006), Microsoft lleg a acuerdos con Novell (actual proveedora de
la distribucin SuSe y la comunidad OpenSuse), en una serie de acuerdos
bilaterales para promocionar empresarialmente ambas plataformas. Pero
parte de la comunidad GNU/Linux se mantiene escptica, por las posibles
implicaciones sobre la propiedad intelectual de Linux, y los temas que po-
dran incluir problemas judiciales por uso de patentes.
Otra ancdota histrica curiosa (2002) es que, junto con una empresa llamada
UniSys, Microsoft se dedic a realizar marketing de cmo convertir sistemas
UNIX a sistemas Windows. Y aunque el objetivo poda ser ms o menos loable,
lo curioso era que el servidor original de la web empresarial estaba en una
mquina FreeBSD con Apache. En ocasiones, tambin paga a algunas empresas
"independientes" (algunos opinan que bastante poco) para que lleven a cabo
estudios de rendimiento comparativos entre UNIX/Linux y Windows (muchas
de estas campaas, son vistas como F.U.D, ya que la mayora de estas campaas
no resisten un mnimo anlisis tcnico, mas all del marketing empleado). En
los ltimos aos parece que en Microsoft haya habido cierto acercamiento a la
comunidad Open Source, estableciendo diferentes comunidades OpenSource,
para la integracin y interrelacin con productos GNU/Linux.
Nota
Algunos portales de Microsoft relacionados con Open Source son http://
port25.technet.com/ y http://www.microsoft.com/opensource
Ved tambin la definicin de FUD en Wikipedia, http://en.wikipedia.org/wiki/
Fear,_uncertainty_and_doubt, y un caso concreto de FUD en http://news.cnet.com/2100-
1001-872266.html
Como resumen general, algunos comentarios que suelen aparecer en la
bibliografa UNIX apuntan a que UNIX es, tcnicamente, un sistema
sencillo y coherente diseado con buenas ideas que se supieron llevar a
la prctica, pero no hay que olvidar que algunas de estas ideas se consi-
guieron gracias al apoyo entusiasta que brind una gran comunidad de
usuarios y desarrolladores que colaboraron entre s, compartiendo una
tecnologa y gobernando su evolucin.
Y como la historia se suele repetir, en este momento la evolucin y el entu-
siasmo continan con los sistemas GNU/Linux.
GNUFDL PID_00167539 23 Introduccin al sistema operativo GNU/Linux
3. Sistemas GNU/Linux
En los primeros aos, los usuarios de los primeros ordenadores personales no
disponan de muchos sistemas operativos donde elegir.
El mercado de los ordenadores personales lo dominaba un DOS de Microsoft.
Otra posibilidad eran los Mac de Apple, pero a unos precios desorbitados (en
comparacin) con el resto. La otra opcin importante, aunque reservada a
grandes (y caras) mquinas, era UNIX.
Una primera opcin que apareci fue MINIX (1984), creado desde cero por
Andrew Tanenbaum, con el objetivo de usarlo para la educacin, para en-
sear diseo e implementacin de sistemas operativos.
MINIX fue pensado para ejecutarse sobre una plataforma Intel 8086, muy po-
pular en la poca porque era la base de los primeros IBM PC. La principal
ventaja de este operativo radicaba en su cdigo fuente, accesible a cualquiera
(12.000 lneas de cdigo entre ensamblador y C), ya que estaba incluido en
el libro docente de sistemas operativos de Tanenbaum [Tan87]. Pero MINIX
era ms una herramienta de enseanza que un sistema eficaz pensado para el
rendimiento o para actividades profesionales.
En los noventa, la FSF (Free Software Foundation) y su proyecto GNU motiv a
muchos programadores para promover el software de calidad y de distribucin
libre. Y aparte de software de utilidades, se trabajaba en un ncleo (kernel) de
operativo denominado HURD, que llevara varios aos de desarrollo.
Mientras, en octubre de 1991, un estudiante finlands llamado Linus Torvalds
presentara la versin 0.0.1 de su kernel de sistema operativo, que denomin
Linux, orientado a mquinas Intel con 386, y lo ofreci bajo licencia GPL a
foros de programadores y a la comunidad de Internet para que lo probaran y,
si les gustaba, le ayudaran a su desarrollo. El entusiasmo fue tal que, en poco
tiempo, haba un gran nmero de programadores trabajando en el ncleo o
en aplicaciones para l.
Algunas de las caractersticas que diferenciaron a Linux de los sistemas de su
tiempo y que siguen siendo aplicables, y otras heredadas de UNIX, podran ser:
a) Sistema operativo de cdigo abierto: cualquiera puede disponer de sus
fuentes, modificarlas y crear nuevas versiones que poder compartir bajo la
licencia GPL (que, de hecho, lo convierte en un software libre).
GNUFDL PID_00167539 24 Introduccin al sistema operativo GNU/Linux
b) Portabilidad: tal como el UNIX original, Linux est pensado para depen-
der muy poco de una arquitectura concreta de mquina. Consecuentemente
Linux es, en su mayor parte, independiente de la mquina de destino y puede
portarse a casi cualquier arquitectura que disponga de un compilador C co-
mo el GNU gcc. Slo restan algunas pequeas partes de cdigo ensamblador
y de algunos dispositivos dependientes de la mquina, que tienen que ser res-
critas en cada nueva arquitectura. Gracias a esto, GNU/Linux es uno de los
sistemas operativos que corre en mayor nmero de arquitecturas: Intel x86 y
IA64, AMD x86 y x86_64, Sparc de Sun, MIPS de Silicon, PowerPC (Apple),
IBM S390, Alpha de Compaq, m68k Motorola, Vax, ARM, HPPArisc...
c) Kernel de tipo monoltico: el diseo del kernel est unido en una sola pieza,
pero es conceptualmente modular en las diferentes tareas. Otra escuela de di-
seo de operativos propone los microkernel (un ejemplo es el proyecto Mach),
donde los servicios se implementan como procesos aparte, comunicados por
un (micro) kernel ms bsico. Linux se decidi como monoltico, porque es
difcil extraer buen rendimiento de los microkernels (resulta un trabajo bastan-
te duro y complejo). Por otra parte, el problema de los monolticos es el creci-
miento; cuando se vuelven muy grandes se vuelven intratables en el desarro-
llo; esto se intent solucionar con los mdulos de carga dinmica.
d) Mdulos dinmicamente cargables: permiten poner partes del sistema
operativo, como filesystems, o controladores de dispositivos, como porciones
externas que se cargan (o enlazan) con el kernel en tiempo de ejecucin bajo
demanda. Esto permite simplificar el kernel y ofrecer estas funcionalidades co-
mo elementos que se pueden programar por separado. Con este uso de mdu-
los, se podra considerar a Linux como un kernel mixto, ya que es monoltico,
pero ofrece una serie de mdulos que complementan el kernel (aproximacin
parecida a algunos conceptos de microkernel).
e) Desarrollo del sistema por una comunidad vinculada por Internet: los
sistemas operativos nunca haban tenido un desarrollo tan amplio y disperso;
no suelen salir de la compaa que los elabora (en el caso propietario) o de un
pequeo conjunto de instituciones acadmicas y laboratorios que colaboran
para crear uno. El fenmeno de la comunidad Linux permite que cada uno
colabore en la medida que el tiempo y sus propios conocimientos se lo permi-
tan. El resultado son de cientos a miles de desarrolladores para Linux. Adems,
por su naturaleza de sistema de cdigo fuente abierto, Linux es un laboratorio
ideal para probar ideas de sistemas operativos al mnimo coste; se puede im-
plementar, probar, tomar medidas y, si funciona, aadir la idea al kernel.
Los proyectos se sucedieron y en el inicio de Linus con el kernel a la gente de
la FSF, con el software de utilidad GNU y, sobre todo, con su compilador de C
(GCC), se les unieron otros proyectos importantes como las XFree/Xorg (una
versin PC de las X Window), y proyectos de escritorio como KDE y Gnome.
Y el desarrollo de Internet con proyectos como el servidor web Apache, el na-
vegador Mozilla Firefox, o las bases de datos MySQL y PostgreSQL, acabaron
Nota
Proyecto original Mach:
http://www.cs.cmu.edu/afs/
cs/project/mach/public/www/
mach.html
GNUFDL PID_00167539 25 Introduccin al sistema operativo GNU/Linux
por dar al kernel inicial Linux el recubrimiento de aplicaciones suficiente para
construir los sistemas GNU/Linux y competir en igualdad de condiciones con
los sistemas propietarios. Y convertir a los sistemas GNU/Linux en el paradig-
ma del software de fuente abierta (Open Source).
Los sistemas GNU/Linux se han convertido en la punta de lanza de la
comunidad Open Source, por la cantidad de proyectos que se han po-
dido aglutinar y llevar a buen trmino.
El nacimiento de nuevas empresas, que crearon distribuciones GNU/Linux
(empaquetamientos de kernel + aplicaciones) y le dieron apoyo, como Red Hat,
Mandrake, SuSe, contribuy a introducir GNU/Linux en las empresas reacias,
y a comenzar el imparable crecimiento que vivimos actualmente.
Comentaremos tambin la discusin sobre la denominacin de los sistemas
como GNU/Linux. El trmino Linux para identificar el sistema operativo con
que se trabaja es de comn uso (para simplificar el nombre), aunque en opi-
nin de algunos desmerece el trabajo de la FSF con el proyecto GNU, el cual
ha proporcionado las principales herramientas del sistema. Aun as, el trmi-
no Linux, para referirse al sistema operativo completo, es ampliamente usado
comercialmente.
En general, para seguir una denominacin ms acorde a la participacin de
la comunidad, se utiliza el trmino Linux, cuando nos estamos refiriendo s-
lo al ncleo (kernel) del sistema operativo. Esto crea cierta confusin, ya que
hay gente que habla de "sistemas Linux" o del "sistema operativo Linux" pa-
ra abreviar. Cuando se trabaja con un sistema operativo GNU/Linux, se est
trabajando sobre una serie de software de utilidades, en gran parte fruto del
proyecto GNU, sobre el ncleo Linux. Por lo tanto, el sistema es bsicamente
GNU con un ncleo Linux.
El proyecto GNU de la FSF tena por objetivo crear un sistema operativo de
software libre al estilo UNIX denominado GNU [Sta02].
Linus Torvalds consigui, en 1991, juntar su kernel Linux con las utilidades
GNU, cuando la FSF todava no dispona de kernel. El kernel de GNU se deno-
mina Hurd, y hoy en da se trabaja bastante en l, y ya existen algunas versio-
nes beta de distribuciones de GNU/Hurd.
Se calcula que, en una distribucin GNU/Linux, hay un 28% de cdigo
GNU y un 3% que corresponde al cdigo del kernel Linux; el porcentaje
restante corresponde a cdigo de terceros, ya sea de aplicaciones o de
utilidades.
Nota
Podis leer un artculo de Ri-
chard Stallman sobre GNU y
Linux en http://www.gnu.org/
gnu/linux-and-gnu.html
GNUFDL PID_00167539 26 Introduccin al sistema operativo GNU/Linux
Para destacar la contribucin de GNU [FSF], podemos ver algunas de sus apor-
taciones incluidas en los sistemas GNU/Linux:
El compilador de C y C++ (GCC)
El shell bash
El editor Emacs (GNU Emacs)
El intrprete postscript (GNU ghostscript)
La biblioteca C estndar (GNU C library, o tambin glibc)
El depurador (GNU gdb)
Makefile (GNU make)
El ensamblador (GNU assembler o gas)
El linker (GNU linker o gld)
Los sistemas GNU/Linux no son los nicos que utilizan software GNU. Los
sistemas BSD, por ejemplo, incorporan tambin utilidades GNU. Y algunos
operativos propietarios, como MacOS X (de Apple), tambin usan software
GNU. El proyecto GNU ha producido software de alta calidad, que se ha ido
incorporando a la mayor parte de las distribuciones de sistemas basadas en
UNIX, tanto libres como propietarias.
Es justo para todo el mundo reconocer el trabajo de cada uno denomi-
nando GNU/Linux a los sistemas que trataremos.
GNUFDL PID_00167539 27 Introduccin al sistema operativo GNU/Linux
4. El perfil del administrador de sistemas
Las grandes empresas y organizaciones dependen cada vez ms de sus recursos
de computacin y de cmo stos son administrados para adecuarlos a las ta-
reas. El gran incremento de las redes distribuidas, con sus equipos servidores y
clientes, ha creado una gran demanda de un nuevo perfil laboral: el llamado
administrador de sistemas.
El administrador de sistemas tiene una amplia variedad de tareas importantes.
Los mejores administradores de sistema suelen ser bastante generalistas, tanto
terica como prcticamente. Pueden enfrentarse a tareas como realizar cablea-
dos de instalaciones o reparar cables; instalar sistemas operativos o software
de aplicaciones; corregir problemas y errores en los sistemas, tanto hardware
como software; formar a los usuarios, ofrecer trucos o tcnicas para mejorar
la productividad en reas que pueden ir desde aplicaciones de procesamiento
de textos hasta reas complejas de sistemas CAD o simuladores; evaluar eco-
nmicamente compras de equipamiento de hardware y software; automatizar
un gran nmero de tareas comunes, e incrementar el rendimiento general del
trabajo en su organizacin.
Puede considerarse al administrador como un perfil de empleado que
ayuda a los dems empleados de la organizacin a aprovechar mejor y
ms ptimamente los recursos disponibles, de forma que mejore toda
la organizacin.
La relacin con los usuarios finales de la organizacin puede establecerse de
diferentes maneras: mediante la formacin de usuarios o con ayuda directa en
el caso de presentarse problemas (incidencias). El administrador es la persona
encargada de que las tecnologas utilizadas por los usuarios funcionen adecua-
damente, o en otras palabras, que los sistemas cumplan las expectativas de los
usuarios, as como las tareas que stos quieran realizar.
Hace aos, y an actualmente, en muchas empresas u organizaciones no hay
una perspectiva clara del papel del administrador de sistemas. En los inicios
de la informtica en la empresa (aos ochenta y noventa), el administrador
era visto en un principio como la persona "entendida" en ordenadores (el "gu-
r") que se encargaba de las instalaciones de las mquinas y que vigilaba o
las reparaba en caso de problemas. Era una especie de informtico polivalente
que tena que solucionar los problemas que fueran apareciendo. Su perfil de
currculum no era claro, ya que no necesitaba tener amplios conocimientos
sino slo conocimientos bsicos de una decena (como mucho) de aplicaciones
(el procesador de texto, la hoja de clculo, la base de datos, etc.), y algunos
GNUFDL PID_00167539 28 Introduccin al sistema operativo GNU/Linux
conocimientos bsicos de hardware eran suficientes para las tareas diarias. As,
cualquier simple "entendido" en el tema poda dedicarse a este trabajo, de ma-
nera que no solan ser informticos tradicionales, y muchas veces incluso se
llegaba a una transmisin oral de los conocimientos entre algn "administra-
dor" ms antiguo en la empresa y el nuevo aprendiz.
En aquella situacin, nos encontrbamos de alguna manera en la prehistoria
de la administracin de sistemas (aunque hay personas que siguen pensando
que bsicamente se trata del mismo trabajo).
Hoy en da, en la poca de Internet y de los servicios distribuidos, un admi-
nistrador de sistemas es un profesional (con dedicacin propia y exclusiva)
que proporciona servicios en la "arena" del software y hardware de sistemas.
El administrador tiene que llevar a cabo varias tareas que tendrn como des-
tino mltiples sistemas informticos, la mayora heterogneos, con objeto de
hacerlos operativos para una serie de tareas.
As las cosas, los administradores necesitan tener unos conocimientos genera-
les (tericos y prcticos) de reas muy diferentes, desde tecnologas de redes,
sistemas operativos, aplicaciones de mbitos distintos, programacin bsica en
una amplia variedad de lenguajes de programacin, conocimientos amplios de
hardware tanto del ordenador como de los perifricos usados y tecnologas
Internet, diseo de pginas web, bases de datos, etc. Y normalmente tambin
es buscado con el perfil de conocimientos bsicos sobre el rea de trabajo de la
empresa, ya sea qumica, fsica, matemticas, etc. No es de extraar, entonces,
que en una empresa de tamao medio a grande se haya pasado del "chapuzas"
de turno a un pequeo grupo de profesionales con amplios conocimientos,
la mayora con nivel acadmico universitario, con diferentes tareas asignadas
dentro de la organizacin.
El administrador debe dominar un rango amplio de tecnologas para
poder adaptarse a una multitud de tareas variadas, que pueden surgir
dentro de la organizacin.
Debido a la gran cantidad de conocimientos que debe tener, no es extrao
que aparezcan a su vez diferentes subperfiles de la tarea del administrador. En
una gran organizacin puede ser habitual encontrar a los administradores de
sistemas operativos (UNIX, MacOS o Windows), que suelen ser diferentes a
los orientados a administrador de bases de datos, administrador de copias de
seguridad, administradores de seguridad informtica, administradores encar-
gados de atencin a los usuarios, etc.
En una organizacin ms pequea, varias o todas las tareas pueden estar asig-
nadas a uno o pocos administradores. Los administradores de sistemas UNIX
(o de GNU/Linux) seran una parte de estos administradores (cuando no el
GNUFDL PID_00167539 29 Introduccin al sistema operativo GNU/Linux
administrador que tendr que hacer todas las tareas). Su plataforma de traba-
jo es UNIX (o GNU/Linux en nuestro caso), y requiere de bastantes elemen-
tos especficos que hacen este trabajo nico. UNIX (y variantes) es un sistema
operativo abierto y muy potente, y, como cualquier sistema software, exige
cierto nivel de adecuacin, configuracin y mantenimiento en las tareas para
las que vaya a ser usado. Configurar y mantener un sistema operativo es una
tarea amplia y seria, y en el caso de UNIX y nuestros GNU/Linux puede llegar
a ser bastante frustrante.
Algunas reas importantes por tratar son:
a) Que el sistema sea muy potente tambin indica que habr bastantes posi-
bilidades de adaptarlo (configurarlo) a las tareas que queremos hacer. Habr
que evaluar las posibilidades que se nos ofrecen y cun adecuadas son para
nuestro objetivo final.
b) Un sistema abierto y ejemplo claro de ello es nuestro GNU/Linux, que nos
ofrecer actualizaciones permanentes, tanto en la correccin de errores del
sistema como en la incorporacin de nuevas prestaciones. Y, evidentemente,
todo esto tiene un impacto directo en costes de mantenimiento de las tareas
de administracin.
c) Los sistemas se pueden utilizar para tareas de coste crtico, o en puntos
crticos de la organizacin, donde no se pueden permitir fallos importantes, o
que ralenticen o paren la marcha de la organizacin.
d) Las redes son actualmente un punto muy importante (si no el que ms),
pero tambin es un rea de problemas potenciales muy crtica, tanto por su
propia naturaleza distribuida como por la complejidad del sistema para en-
contrar, depurar y solucionar los problemas que se puedan presentar.
e) En el caso particular de los sistemas UNIX, y en nuestros GNU/Linux, la
abundancia, tanto de versiones como de distribuciones diferentes del sistema,
incorpora problemas adicionales a la administracin, ya que es necesario co-
nocer las problemticas y diferencias de cada versin y distribucin.
En particular, las tareas de administracin del sistema y de la red suelen pre-
sentar particularidades diferentes, y a veces se tratan por separado (o por ad-
ministradores diferentes). Aunque tambin pueden verse como dos caras del
mismo trabajo, con el sistema propiamente dicho (mquina y software) por un
lado, y el ambiente donde el sistema (el entorno de red) convive, por el otro.
GNUFDL PID_00167539 30 Introduccin al sistema operativo GNU/Linux
Por administracin de la red se entiende la gestin del sistema como
parte de la red, y hace referencia a los servicios o dispositivos cercanos
necesarios para que la mquina funcione en un entorno de red; no cu-
bre dispositivos de red como los switchs, bridges o hubs u otros disposi-
tivos de red, pero unos conocimientos bsicos son imprescindibles para
facilitar las tareas de administracin.
En estos materiales y los siguientes, correspondientes a la asignatura avanzada
de administracin, cubriremos primero aquellos aspectos locales del propio
sistema y bsicos de red, y en una segunda asignatura ("Administracin avan-
zada") veremos las tareas de administracin de red y despliegue de servicios.
Ya hemos apuntado el problema de determinar qu es exactamente un admi-
nistrador de sistemas, pues en el mercado laboral informtico no est demasia-
do claro. Era comn pedir administradores de sistemas segn categoras (esta-
blecidas en las empresas) de programador o ingenieros de software, las cuales
no se adecuan correctamente.
Un programador es, bsicamente, un productor de cdigo. En este caso, un
administrador obtendra poca produccin, dado que en algunas tareas puede
ser necesario, pero en otras no. Normalmente, ser deseable que el adminis-
trador posea ms o menos conocimientos dependiendo de la categora laboral:
a) Alguna carrera o diplomatura universitaria, preferible en informtica, o en
algn campo directamente relacionado con la empresa u organizacin.
b) Suele pedirse de uno a tres aos de experiencia como administrador (a no ser
que el puesto sea para ayudante de uno ya existente). La experiencia tambin
puede ampliarse de tres a cinco aos.
c) Familiaridad o conocimientos amplios de entornos de red y servicios. Pro-
tocolos TCP/IP, servicios de ftp, telnet, ssh, http, nfs, nis, ldap, etc.
d) Conocimientos de lenguajes de script para prototipado de herramientas o
automatizacin rpida de tareas (por ejemplo, shell scripts, Perl, tcl, Python,
etc.) y experiencia en programacin de un amplio rango de lenguajes (C, C++,
Java, Assembler, etc.).
e) Puede pedirse experiencia en desarrollo de aplicaciones grandes en cual-
quiera de estos lenguajes.
f) Conocimientos amplios de mercado informtico, tanto de hardware como
de software, en el caso de que haya que evaluar compras de material o montar
nuevos sistemas o instalaciones completas.
Nota
Para ser administrador se re-
quieren generalmente estudios
informticos o afines a la orga-
nizacin, junto con experien-
cia demostrada en el campo y
conocimientos amplios de sis-
temas heterogneos y tecnolo-
gas de red.
GNUFDL PID_00167539 31 Introduccin al sistema operativo GNU/Linux
g) Experiencia en ms de una versin de UNIX (o sistemas GNU/Linux), como
Solaris, AIX, AT&T, SystemV, BSD, etc.
h) Experiencia en sistemas operativos no UNIX, sistemas complementarios
que pueden encontrarse en la organizacin: Windows 9x/NT/2000/XP/Vista/
7, MacOs, VMS, sistemas IBM, etc.
i) Slidos conocimientos del diseo e implementacin de UNIX, mecanismos
de pginas, intercambio, comunicacin interproceso, controladores, etc.; por
ejemplo, si las tareas de administracin incluyen optimizacin de los sistemas
(tuning) y/o plataformas arquitecturales hardware.
j) Conocimientos y experiencia en seguridad informtica: construccin de cor-
tafuegos (firewalls), sistemas de autentificacin, aplicaciones de cifrado (crip-
tografa), seguridad del sistema de ficheros, herramientas de seguimiento de
seguridad, etc.
k) Experiencia en bases de datos, conocimientos de SQL, etc.
l) Instalacin y reparacin de hardware y/o cableados de red y dispositivos.
GNUFDL PID_00167539 32 Introduccin al sistema operativo GNU/Linux
5. Tareas del administrador
Segn hemos descrito, podramos separar las tareas de un administrador GNU/
Linux (o UNIX en general) en dos partes principales: administracin del sis-
tema y administracin de red. En los siguientes subapartados, mostramos de
forma resumida en qu consisten en general estas tareas en los sistemas GNU/
Linux (o UNIX). Trataremos la mayor parte del contenido con cierto detalle
en estos mdulos y en los asociados a administracin avanzada. Otra parte
de las tareas, por cuestiones de espacio o complejidad, la explicaremos super-
ficialmente o no la trataremos.
Las tareas de administracin engloban una serie de conocimientos y tcnicas
de los cuales aqu slo podemos ver la "punta del iceberg". En la bibliografa
adjunta a cada mdulo aportamos referencias para ampliar todos los temas a
tratar. Como veris, hay una amplia bibliografa para casi cualquier punto en
el que queris profundizar.
5.1. Tareas de administracin local del sistema
Arranque y apagado del sistema: cualquier sistema basado en UNIX tiene
unos sistemas de arranque y apagado ajustables, de manera que podemos
configurar qu servicios ofrecemos en el arranque de la mquina y cun-
do hay que pararlos, o programar el apagado del sistema para su mante-
nimiento.
Gestin de usuarios y grupos: dar cabida a los usuarios es una de las prin-
cipales tareas de cualquier administrador. Habr que decidir qu usuarios
podrn acceder al sistema, de qu forma y bajo qu permisos, y establecer
comunidades mediante los grupos. Un caso particular ser el de los usua-
rios de sistema, pseudousuarios dedicados a tareas del sistema.
Gestin de recursos del sistema: qu ofrecemos, cmo lo ofrecemos y a
quin damos acceso.
Gestin de los sistemas de ficheros: el ordenador puede disponer de di-
ferentes recursos de almacenamiento de datos y dispositivos (disquetes,
discos duros, pticos, etc.) con diferentes sistemas de acceso a los ficheros.
Pueden ser permanentes, extrables o temporales, con lo cual habr que
modelar y gestionar los procesos de montaje y desmontaje de los sistemas
de ficheros que ofrezcan los discos o dispositivos afines.
Cuotas del sistema: cualquier recurso que vaya a ser compartido tiene que
ser administrado, y segn la cantidad de usuarios, habr que establecer un
sistema de cuotas para evitar el abuso de los recursos por parte de los usua-
GNUFDL PID_00167539 33 Introduccin al sistema operativo GNU/Linux
rios o establecer clases (o grupos) de usuarios diferenciados por mayor o
menor uso de recursos. Suelen ser habituales sistemas de cuotas de espacio
de disco, o de impresin, o de uso de CPU (tiempo de computacin usado).
Seguridad del sistema: seguridad local, sobre protecciones a los recursos
frente a usos indebidos, accesos no permitidos a datos del sistema, o a
datos de otros usuarios o grupos.
Backup y restauracin del sistema: es necesario establecer polticas pe-
ridicas (segn importancia de los datos), de copias de seguridad de los
sistemas. Hay que establecer periodos de copia que permitan salvaguardar
nuestros datos de fallos del sistema (o factores externos) que puedan pro-
vocar prdidas o corrupcin de datos.
Automatizacin de tareas rutinarias: muchas de las tareas frecuentes de
la administracin o del uso habitual de la mquina pueden ser fcilmente
automatizadas, ya debido a su simplicidad (y por lo tanto, a la facilidad
de repetirlas), como a su temporalizacin, que hace que tengan que ser re-
petidas en periodos concretos. Estas automatizaciones suelen hacerse bien
mediante programacin por lenguajes interpretados de tipo script (shells,
Perl, etc.), o por la inclusin en sistemas de temporalizacin (cron, at...).
Gestin de impresin y colas: los sistemas UNIX pueden utilizarse como
sistemas de impresin para controlar una o ms impresoras conectadas al
sistema, as como para gestionar las colas de trabajo que los usuarios o
aplicaciones puedan enviar a las mismas.
Gestin de mdems y terminales: estos dispositivos suelen ser habituales
en entornos no conectados a red local ni a banda ancha:
Los mdems permiten una conexin a la Red por medio de un inter-
mediario (el ISP o proveedor de acceso), o bien la posibilidad de co-
nectar a nuestro sistema desde el exterior por acceso telefnico desde
cualquier punto de la red telefnica.
En el caso de los terminales, antes de la introduccin de las redes sola
ser habitual que la mquina UNIX fuese el elemento central de cm-
puto, con una serie de terminales "tontos", que nicamente se dedica-
ban a visualizar la informacin o a permitir la entrada de informacin
por medio de teclados externos. Sola tratarse de terminales de tipo
serie o paralelo. Hoy en da, todava suelen ser habituales en entornos
industriales, y en nuestro sistema GNU/Linux de escritorio tenemos
un tipo particular, que son los terminales de texto "virtuales", a los que
se accede mediante las teclas Alt+Fxx.
Accounting (o log) de sistema: para poder verificar el funcionamiento co-
rrecto de nuestro sistema, es necesario llevar polticas de log que nos pue-
dan informar de los posibles fallos del sistema o del rendimiento que se
GNUFDL PID_00167539 34 Introduccin al sistema operativo GNU/Linux
obtiene de una aplicacin, servicio o recurso hardware. O bien permitir
resumir los recursos gastados, los usos realizados o la productividad del
sistema en forma de informe.
System performance tunning: tcnicas de optimizacin del sistema para
un fin dado. Suele ser habitual que un sistema est pensado para una ta-
rea concreta y que podamos verificar su funcionamiento adecuado (por
ejemplo, mediante logs), para examinar sus parmetros y adecuarlos a las
prestaciones que se esperan.
Personalizacin del sistema: reconfiguracin del kernel. Los kernels, por
ejemplo en GNU/Linux, son altamente personalizables, segn las caracte-
rsticas que queramos incluir y el tipo de dispositivos que tengamos o es-
peremos tener en nuestra mquina, as como los parmetros que afecten
al rendimiento del sistema o que consigan las aplicaciones.
5.2. Tareas de administracin de red
Interfaz de red y conectividad: el tipo de interfaz de red que utilizamos,
ya sea el acceso a una red local, la conexin a una red mayor, o conexiones
del tipo banda ancha con tecnologas ADSL, RDSI, u pticas por cable.
Adems, el tipo de conectividades que vamos a tener en forma de servicios
o peticiones.
Routing de datos: los datos que circularn, de dnde o hacia dnde se
dirigirn, dependiendo de los dispositivos de red disponibles y de las fun-
ciones de la mquina en red; posiblemente, ser necesario redirigir el tra-
fico desde/hacia uno o ms sitios.
Seguridad de red: una red, sobre todo si es abierta a cualquier punto exte-
rior, es una posible fuente de ataques y, por lo tanto, puede comprometer
la seguridad de nuestros sistemas o los datos de nuestros usuarios. Hay que
protegerse, detectar e impedir posibles ataques con una poltica de seguri-
dad clara y eficaz.
Servicios de nombres: en una red hay infinidad de recursos disponibles.
Los servicios de nombres nos permiten nombrar objetos (como mquinas
y servicios) para poderlos localizar y gestionar. Con servicios como el DNS,
DHCP, LDAP, etc., se nos permitir localizar servicios o equipos.
NIS (network information service): las grandes organizaciones han de te-
ner mecanismos para poder organizar, de forma efectiva, los recursos y el
acceso a ellos. Las formas habituales en UNIX estndar, como los logins de
usuarios con control por passwords locales, son efectivos con pocas mqui-
nas y usuarios, pero cuando tenemos grandes organizaciones, con estruc-
turas jerrquicas, usuarios que pueden acceder a mltiples recursos de for-
GNUFDL PID_00167539 35 Introduccin al sistema operativo GNU/Linux
ma unificada o separada por diferentes permisos, etc., los mtodos UNIX
sencillos se muestran claramente insuficientes o imposibles. Entonces se
necesitan sistemas ms eficaces para controlar toda esta estructura. Servi-
cios como NIS, NIS+ y LDAP nos permiten organizar de modo adecuado
toda esta complejidad.
NFS (network fylesystems): a menudo, en las estructuras de sistemas en
red es necesario compartir informaciones (como los propios ficheros) por
parte de todos o algunos de los usuarios. O sencillamente, debido a la dis-
tribucin fsica de los usuarios, es necesario un acceso a los ficheros desde
cualquier punto de la red. Los sistemas de ficheros por red (como NFS)
permiten un acceso transparente a los ficheros, independientemente de
nuestra situacin en la red. Y en algunos casos, como Samba/CIFS, nos
ofrecen soporte para el acceso por parte de plataformas hardware/software
diferentes, e independientes de las configuraciones de clientes o servido-
res.
UNIX remote commands: UNIX dispone de comandos transparentes a la
red, en el sentido de que, independientemente de la conexin fsica, es
posible ejecutar comandos que muevan informacin por la red o permitan
acceso a algunos servicios de las mquinas. Los comandos suelen tener
una "r" delante, con el sentido de 'remoto', por ejemplo: rcp, rlogin, rsh,
rexec, etc., que permiten las funcionalidades indicadas de forma remota
en la red.
Aplicaciones de red: aplicaciones de conexin a servicios de red, como
telnet (acceso interactivo), ftp (transmisin de ficheros), en forma de apli-
cacin cliente que se conecta a un servicio servido desde otra mquina. O
bien que nosotros mismos podemos servir con el servidor adecuado: ser-
vidor de telnet, servidor ftp, servidor web, etc.
Impresin remota: acceso a servidores de impresin remotos, ya sea di-
rectamente a impresoras remotas o bien a otras mquinas que ofrecen sus
impresoras locales. Impresin en red de forma transparente al usuario o
aplicacin.
Correo electrnico: uno de los primeros servicios proporcionados por las
mquinas UNIX es el servidor de correo, que permite el almacenamiento
de correo, o un punto de retransmisin de correo hacia otros servidores, si
no iba dirigido a usuarios propios de su sistema. Para el caso web, tambin
de forma parecida, un sistema UNIX con el servidor web adecuado ofrece
una plataforma excelente para web. UNIX tiene la mayor cuota de mer-
cado en cuanto a servidores de correo y web, y es uno de los principales
mercados, donde tiene una posicin dominante. Los sistemas GNU/Linux
ofrecen soluciones de cdigo abierto para correo y web y conforman uno
de sus principales usos.
GNUFDL PID_00167539 36 Introduccin al sistema operativo GNU/Linux
X Window: un caso particular de interconexin es el sistema grfico de los
sistemas GNU/Linux (y la mayor parte de UNIX), X Window. Este sistema
permite una transparencia total de red y funciona bajo modelos cliente
servidor; permite que el procesamiento de una aplicacin est desligado
de la visualizacin y de la interaccin por medio de dispositivos de entra-
da, por lo que stos se sitan en cualquier parte de la red. Por ejemplo,
podemos estar ejecutando una determinada aplicacin en una mquina
UNIX cuando desde otra visualizamos en pantalla los resultados grficos,
y entramos datos con el teclado y ratn locales de forma remota. Es ms, el
cliente, llamado cliente X, es tan slo un componente software que puede
ser portado a otros sistemas operativos, permitiendo ejecutar aplicaciones
en una mquina UNIX y visualizarlas en cualquier otro sistema. Un caso
particular son los llamados terminales X, que son bsicamente una especie
de terminales "tontos" grficos que slo permiten visualizar o interactuar
(por teclado y ratn) con una aplicacin en ejecucin remota.
GNUFDL PID_00167539 37 Introduccin al sistema operativo GNU/Linux
6. Distribuciones de GNU/Linux
Al hablar de los orgenes de los sistemas GNU/Linux, hemos comprobado que
no haba un nico sistema claramente definido. Por una parte, hay tres ele-
mentos software principales que componen un sistema GNU/Linux:
1) El kernel Linux: como vimos, el kernel es tan slo la pieza central del siste-
ma. Pero sin las aplicaciones de utilidad, shells, compiladores, editores, etc. no
podramos tener un sistema completo.
2) Las aplicaciones GNU: en el desarrollo de Linux, ste se vio complementa-
do con el software de la FSF existente del proyecto GNU, que le aport editores
(como emacs), compilador (gcc) y diferentes utilidades.
3) Software de terceros: normalmente de tipo de cdigo abierto en su mayor
parte. Todo sistema GNU/Linux se integra adems con software de terceros
que permite aadir una serie de aplicaciones de amplio uso, ya sea el propio
sistema grfico de X Windows, servidores como el Apache para web, navega-
dores, ofimtica, etc. Asimismo, puede ser habitual incluir algn software pro-
pietario (para mbitos no cubiertos por el software libre), dependiendo del ca-
rcter libre que en mayor o menor grado quieran disponer los creadores de
la distribucin.
Al ser la mayora del software de tipo de cdigo abierto o libre, ya sea el kernel,
software GNU o de terceros, hay una evolucin ms o menos rpida de ver-
siones, ya sea por medio de correccin de errores o nuevas prestaciones intro-
ducidas. Esto obliga a que, en el caso de querer crear un sistema GNU/Linux,
tengamos que escoger qu software queremos instalar en el sistema y qu ver-
siones concretas de este software.
El mundo GNU/Linux no se limita a una empresa o comunidad parti-
cular, con lo que ofrece a cada uno la posibilidad de crear su propio
sistema adaptado a sus necesidades.
Entre el conjunto de las versiones de los diferentes componentes, siempre se
encuentran algunas que son estables y otras que estn en desarrollo, en fases
alfa o beta (posiblemente, con errores o funcionalidades no completas u opti-
mizadas), por lo que habr que tener cuidado con la eleccin de las versiones a
la hora de crear un sistema GNU/Linux. Otro problema aadido es la seleccin
de alternativas; el mundo de GNU/Linux es lo suficientemente rico para que
GNUFDL PID_00167539 38 Introduccin al sistema operativo GNU/Linux
haya ms de una alternativa para un mismo producto de software. Hay que
elegir entre las alternativas posibles, incorporar algunas o todas, si queremos
ofrecer al usuario libertad para escoger su software.
Un caso prctico son los gestores de escritorio de X Window en los que, por
ejemplo, nos ofrecen (principalmente) dos entornos de escritorio diferentes
como Gnome y KDE. Los dos tienen caractersticas parecidas y aplicaciones
semejantes o complementarias.
En el caso de un distribuidor de sistemas GNU/Linux, ya sea comercial o bien
una organizacin/comunidad sin beneficio propio, dicho distribuidor tiene
como responsabilidad generar un sistema que funcione, seleccionando las me-
jores versiones y productos software que puedan conseguirse en el momento.
En este caso, una distribucin GNU/Linux es una coleccin de software que
forma un sistema operativo basado en el kernel Linux.
Un dato importante a tener en cuenta, y que provoca ms de una confusin,
es que, como cada uno de los paquetes de software de la distribucin tendr
su propia versin (independiente de la distribucin en la que est ubicado), el
nmero de distribucin asignado no mantiene una relacin con las versiones
de los paquetes software.
La nica funcin del nmero de distribucin es comparar las distribu-
ciones que genera un mismo distribuidor. No permite comparar entre
otras distribuciones. Si queremos hacer comparaciones entre distribu-
ciones, tendremos que examinar los paquetes software principales y sus
versiones para poder determinar qu distribucin aporta ms noveda-
des.
Ejemplo
Pongamos un ejemplo de algunas versiones que hemos encontrado en diferentes distri-
buciones GNU/Linux (las versiones dependern de la situacin actual de las distribucio-
nes):
a) Kernel Linux: actualmente, podemos encontrar distribuciones que ofrecen uno o ms
kernels, como los de la serie antigua 2.4.x (ya obsoleta, pero puede encontrarse en algunas
mquinas en produccin) o generalmente los ltimos 2.6.x en revisiones (el nmero x)
de distinta actualidad.
b) La opcin en el sistema grfico X Window: en versin de cdigo abierto, que pode-
mos encontrar prcticamente en todos los sistemas GNU/Linux, ya sean algunas versio-
nes residuales de Xfree86 como las que manejan versiones 4.x.y o bien el proyecto Xorg
(siendo un fork del anterior en el 2003, generado por problemas de licencias en XFree),
que goza de ms popularidad en diferentes versiones 6.x o 7.x (en algunas distribuciones
se numera el paquete del servidor X con 1.7.x). Actualmente, la mayora de distribucio-
nes han migrado desde XFree a Xorg, por distintos problemas existentes con cambios de
licencias en XFree, siendo Xorg la implementacin oficial de X Window en GNU/Linux.
Lo mismo pasa en diversas variantes de BSD, UNIX propietarios como Solaris, y tambin
en las ltimas versiones de MacOS X.
GNUFDL PID_00167539 39 Introduccin al sistema operativo GNU/Linux
c) Gestor de ventanas o escritorio: podemos disponer de Gnome o KDE, o ambos; Gno-
me con versiones 2.x/3.x o KDE 3.x.y. / 4.x.y.
Pudimos obtener en un momento determinado, por ejemplo, una distribucin que in-
cluyese kernel 2.4, con XFree 4.4 y Gnome 2.14; o bien otra, por ejemplo, kernel 2.6,
Xorg 6.8, KDE 3.1. Cul es mejor? Es difcil compararlas, ya que suponen una mezcla
de elementos, y dependiendo de cmo se haga la mezcla, el producto saldr mejor o
peor, y ms o menos adaptado a las necesidades del usuario. Usualmente, el distribuidor
mantiene un compromiso entre la estabilidad del sistema y la novedad de las versiones
incluidas. Tambin proporciona software de aplicacin atrayente para los usuarios de la
distribucin, ya sea aqul generalista o especializado en algn campo concreto.
En general, podemos hacer un mejor anlisis de distribuciones a partir de los
siguientes apartados, que habra que comprobar en cada una de ellas:
a) Versin del ncleo Linux: la versin viene indicada por unos nmeros
X.Y.Z, donde X es la versin principal, que representa los cambios importantes
del ncleo; Y es la versin secundaria, e implica mejoras en las prestaciones del
ncleo: Y es par en los ncleos estables e impar en los desarrollos o pruebas; y
Z es la versin de construccin, que indica el nmero de la revisin de X.Y, en
cuanto a parches o correcciones hechas. Los distribuidores no suelen incluir la
ltima versin del ncleo, sino la que ellos hayan probado con ms frecuencia
y pueden verificar que es estable para el software, y componentes que ellos
incluyen. Este fue el esquema de numeracin clsico (que se sigui durante
las ramas 2.4.x, hasta los inicios de la 2.6), que tuvo algunas modificaciones,
para adaptarse al hecho de que el kernel (rama 2.6.x) se volvi mas estable, y
cada vez las revisiones son menores (para significar un salto de versin de los
primeros nmeros), debido al desarrollo continuo y frentico. En los ltimos
esquemas de numeracin del kernel, se llegan a introducir cuartos nmeros,
para especificar de Z cambios menores, o diferentes posibilidades de la revisin
(con diferentes parches aadidos). La versin as definida con cuatro nmeros
es la que se considera estable (stable). Tambin son usados otros esquemas
para las versiones de test (no recomendables para entornos de produccin),
como sufijos -rc (release candidate), los -mm que son kernels experimentales con
pruebas de diferentes tcnicas, o los -git que son una especie de "foto" diaria
del desarrollo del kernel. Estos esquemas de numeracin estn en constante
cambio para adaptarse a la forma de trabajar de la comunidad del kernel, y a
sus necesidades para acelerar el desarrollo del kernel.
b) Formato de empaquetado: es el mecanismo empleado para instalar y ad-
ministrar el software de la distribucin. Se conoce por el formato de los pa-
quetes de software soportados. En este caso suelen estar los formatos rpm, deb,
tar.gz, mdk, etc. Aunque cada distribucin suele tener posibilidad de utilizar
varios formatos, tiene uno por defecto. El software acostumbra a venir con sus
archivos en un paquete que incluye informacin sobre su instalacin y posi-
bles dependencias con otros paquetes de software. El empaquetado es impor-
tante si se usa software de terceros que no venga con la distribucin, ya que el
software puede encontrarse slo en algunos sistemas de paquetes, o incluso en
uno slo, y en algunos casos est pensado para versiones concretas de algunas
distribuciones de GNU/Linux.
GNUFDL PID_00167539 40 Introduccin al sistema operativo GNU/Linux
c) Estructura del sistema de archivos: la estructura del sistema de archivos
principal (/) nos indica dnde podemos encontrar nuestros archivos (o los pro-
pios del sistema) dentro del sistema de ficheros. En GNU/Linux y UNIX hay
algunos estndares de colocacin de los archivos (como veremos en otros m-
dulos), como por ejemplo el FHS (filesystem hierarchy standard) [Lin03b]. As, si
tenemos una idea del estndar, sabremos dnde encontrar la mayor parte de
los archivos. Luego depende de que la distribucin lo siga ms o menos y de
que nos avisen de los cambios que hayan realizado del estndar.
d) Scripts de arranque del sistema: los sistemas UNIX y GNU/Linux incorpo-
ran unos guiones de arranque (o shell scripts) que indican cmo debe arrancar
la mquina y cul ser el proceso (o fases) que se van a seguir, as como lo
que deber hacerse en cada paso. Para este arranque hay dos modelos princi-
pales, los de SysV o BSD (es una de las diferencias de las dos ramas de UNIX
principales), y cada distribucin podra escoger uno o otro. Aunque los dos
sistemas tienen la misma funcionalidad, son diferentes en los detalles, y esto
ser importante en los temas de administracin (lo veremos en la administra-
cin local). En nuestro caso, los sistemas que analizaremos, tanto Fedora como
Debian, utilizan el sistema de SysV (ser el que veremos en la unidad local),
pero existen otras distribuciones como Slackware que utilizan el otro sistema
propio de BSD. Y actualmente existen determinadas propuestas para nuevas
opciones en este aspecto de arranque, como por ejemplo la que ha obtenido
peso importante en las distribuciones actuales, como el sistema upstart utili-
zado, entre otras, en la distribucin Ubuntu.
e) Versiones de la biblioteca del sistema: todos los programas (o aplicacio-
nes) que tenemos en el sistema dependen para su ejecucin de un nmero
(mayor o menor) de bibliotecas de sistema. Estas bibliotecas, normalmente de
dos tipos, ya sean estticas unidas al programa (archivos libxxx.a) o dinmicas
que se cargan en tiempo de ejecucin (archivos libxxx.so), proporcionan gran
cantidad de cdigo de utilidad o de sistema que utilizarn las aplicaciones. La
ejecucin de una aplicacin puede depender de la existencia de unas bibliote-
cas adecuadas y del nmero de versin concreto de estas bibliotecas (no es lo
recomendable, pero puede suceder). Un caso bastante habitual es la biblioteca
GNU C library, la biblioteca estndar de C, tambin conocida como glibc. Pue-
de suceder que una aplicacin nos pida que dispongamos de una versin con-
creta de la glibc para poder ejecutarse o compilarse. Es un caso bastante pro-
blemtico, y por ello uno de los parmetros que se valoran de la distribucin
es conocer qu versin de la glibc dispone, y los posibles paquetes adicionales
de versiones de compatibilidad con versiones antiguas. El problema aparece
al intentar ejecutar o compilar un producto de software muy antiguo en una
distribucin moderna, o bien un producto de software muy nuevo en una dis-
tribucin antigua.
El mayor cambio lleg al pasar a una glibc 2.0, en que haba que recompilar
todos los programas para poder ejecutarlos correctamente. En las diferentes
revisiones nuevas de numeracin 2.x ha habido algunos cambios menores que
GNUFDL PID_00167539 41 Introduccin al sistema operativo GNU/Linux
podan afectar a alguna aplicacin. En muchos casos, los paquetes de software
comprueban si se tiene la versin correcta de la glibc, o en el mismo nombre
mencionan la versin que hay que utilizar (ejemplo: paquete-xxx-glibc2.rpm).
f) Escritorio X Window: el sistema X Window es el estndar grfico para
GNU/Linux como visualizacin de escritorio. Fue desarrollado en el MIT en
1984 y prcticamente todos los UNIX tienen una versin del mismo. Las dis-
tribuciones GNU/Linux disponen de diferentes versiones como la Xfree86 o la
Xorg (como ya dijimos, esta ltima es el estndar de facto en estos momentos).
El X Window es una capa grfica intermedia que confa a otra capa denomi-
nada gestor de ventanas la visualizacin de sus elementos. Adems, podemos
combinar el gestor de ventanas con utilidades y programas de aplicacin va-
riados para formar lo que se denomina un entorno de escritorio.
Linux tiene, principalmente, dos entornos de escritorio: Gnome y KDE. Ca-
da uno tiene la particularidad de basarse en una biblioteca de componentes
propios (los diferentes elementos del entorno como ventanas, botones, listas,
etc.): gtk+ (en Gnome) y Qt (en KDE), que son las principales bibliotecas de
componentes que se usan para programar aplicaciones en estos entornos. Pero
adems de estos entornos, hay muchos otros, gestores de ventanas o escrito-
rios: XCFE, Fluxbox, Motif, Enlightement, BlackIce, FVWM, etc., de modo que
la posibilidad de eleccin es amplia. Adems, cada uno de ellos permite cam-
biar la apariencia (look & feel) de ventanas y componentes al gusto del usuario,
o incluso crearse el suyo propio.
g) Software de usuario: software aadido por el distribuidor, en su mayora de
tipo Open Source, para las tareas ms habituales (o por el contrario, no tanto
como para algunos campos de aplicacin muy especializados).
Las distribuciones habituales son tan grandes que pueden encontrarse de cen-
tenares a miles de estas aplicaciones (muchas de las distribuciones tienen des-
de unos pocos CD a varias decenas de ellos (o unas pocas unidades de DVD),
de aplicaciones extra de partida. O pueden obtenerse a posteriori por red de
los repositorios oficiales (o extras) de software de las distribuciones. Estas apli-
caciones cubren casi todos los campos, desde el hogar hasta administrativos
o cientficos. Y en algunas distribuciones se aade software propietario de ter-
ceros (como, por ejemplo, alguna suite ofimtica del tipo Office), software de
servidor preparado por el distribuidor, como por ejemplo un servidor de co-
rreo, un servidor web seguro, etc.
As es cmo cada distribuidor suele producir diferentes versiones de su dis-
tribucin; por ejemplo, a veces hay distinciones entre una versin personal,
profesional o de tipo servidor. Suele ser ms habitual una distincin entre dos
versiones: Desktop (escritorio) y Server (servidor). Aunque en muchas distri-
GNUFDL PID_00167539 42 Introduccin al sistema operativo GNU/Linux
buciones suele incluirse el software complementando ambos aspectos, y es la
instalacin final que haga el usuario, de qu paquetes software y su configu-
racin, la que decide el mbito final de la mquina y su sistema GNU/Linux.
El sistema GNU/Linux de fondo es el mismo; slo hay diferencias (que
se pagan en algunos casos) en el software aadido (en general, obra de la
misma casa distribuidora). Por ejemplo, en servidores web o en servido-
res correo, ya sean desarrollos propios, optimizados o mejorados. Otras
diferencias pueden ser la inclusin de mejores herramientas, desarrolla-
das por el fabricante de la distribucin, o el soporte adicional, en forma
de contratos de mantenimiento que incluya el distribuidor comercial.
A menudo, asumir un coste econmico extra no tiene mucho sentido, ya que
el software estndar es suficiente (con un poco de trabajo extra de administra-
cin de sistemas); pero para las empresas puede ser interesante porque reduce
tiempo de instalacin y mantenimiento de los servidores y, adems, optimi-
za algunas aplicaciones y servidores crticos para la gestin informtica de la
empresa.
6.1. Debian
El caso de la distribucin Debian GNU/Linux es especial, en el sentido de que
es una distribucin guiada por una comunidad sin fines comerciales, aparte de
mantener su distribucin y promocionar el uso del software de cdigo abierto
y libre.
Debian es una distribucin apoyada por una comunidad entusiasta de
usuarios y desarrolladores propios, basada en el compromiso de la uti-
lizacin de software libre.
Nota
Los documentos "Contrato so-
cial Debian" son consultables
en: http://www.debian.org/
social_contract
El proyecto Debian se fund en 1993 para crear la distribucin Debian GNU/
Linux. Desde entonces, se ha vuelto bastante popular y rivaliza en uso con
otras distribuciones comerciales como Red Hat o SUSE. Por ser un proyecto
comunitario, el desarrollo de esta distribucin se rige por una serie de normas
o polticas: existen unos documentos llamados "Contrato social Debian", que
mencionan la filosofa del proyecto en su conjunto, y las polticas Debian, que
especifican en detalle cmo se implementa su distribucin.
La distribucin Debian est bastante relacionada con los objetivos de la FSF
y su proyecto de Software Libre GNU; por esta razn, incluyen siempre en su
nombre: "Debian GNU/Linux"; adems, su texto del contrato social ha servido
como base de las definiciones de cdigo abierto. En cuanto a las polticas, todo
Figura 2. Logotipo de Debian
GNUFDL PID_00167539 43 Introduccin al sistema operativo GNU/Linux
aquel que quiera participar en el proyecto de la distribucin tiene que seguir-
las. Aunque no se sea un colaborador, estas polticas pueden ser interesantes
porque explican cmo es la distribucin Debian.
Cabe mencionar tambin un aspecto prctico de cara a los usuarios finales:
Debian ha sido siempre una distribucin difcil (aunque esta percepcin ha
cambiado en las ltimas versiones). Suele ser la distribucin que usan los hac-
kers de Linux, en el buen sentido de los que se encargan del desarrollo y test
del kernel, aportan modificaciones, programadores de bajo nivel, los que de-
sean estar a la ltima para probar software nuevo, los que quieren probar los
desarrollos del kernel que todava no han sido publicados... O sea, todo tipo
de fauna de hackers de GNU/Linux.
Las versiones anteriores de Debian se haban hecho famosas por su dificultad
de instalacin. La verdad es que no se haca demasiado para que fuese fcil de
cara a los no expertos. Pero las cosas con el tiempo han mejorado. Ahora, la
instalacin, no sin ciertos conocimientos, puede hacerse guiada por un insta-
lador grfico (conocido como Debian Installer), mientras antes era una insta-
lacin puramente textual (de hecho todava se mantiene, y es muy usada para
la instalacin en ambientes de servidor). Pero aun as, los primeros intentos
pueden llegar ser un poco traumticos por el grado de conocimiento inicial
exigido para algunos aspectos de la instalacin.
Debian GNU/Linux no es una nica distribucin, sino que suele diferenciarse
en una serie de variantes, los llamados "sabores" de la distribucin Debian. En
este momento hay tres ramas (sabores) de la distribucin: la stable, la testing
y la unstable. Como sus nombres indican, la stable es la que est destinada a
entornos de produccin (o usuarios que desean estabilidad), la testing ofrece
software ms nuevo que ha sido comprobado mnimamente (podramos decir
que es una especie de versin beta de Debian) y que pronto van a ser incluidos
en la stable. Y la unstable es la que presenta las ltimas novedades de software,
cuyos paquetes cambian en plazos muy cortos; en una semana, e incluso en
el da a da pueden cambiar varios paquetes. Todas ellas son actualizables des-
de varias fuentes (CD, ftp, web) por un sistema denominado APT que maneja
los paquetes software DEB de Debian. Las tres distribuciones tienen nombres
ms comunes asignados (por ejemplo, en un determinado momento de pro-
duccin de Debian):
Lenny (stable)
Squeeze (testing)
Sid (unstable)
La versin previa stable se denominaba Etch (4.0), anteriormente Sarge (era la
3.1). La ms actual es la Debian GNU/Linux Lenny (5.0). Las versiones ms
extendidas (adems de versiones antiguas que sigan en produccin) son la
GNUFDL PID_00167539 44 Introduccin al sistema operativo GNU/Linux
Lenny y la Sid, que son los dos extremos. La Sid no est recomendada para
entornos (de produccin) de trabajo diario, porque puede traer caractersticas
a medias que an se estn probando y pueden fallar (aunque no es habitual);
es la distribucin que suelen usar los hackers de GNU/Linux. Adems, esta ver-
sin cambia casi a diario. Suele ser normal que, si se quiere actualizar a diario,
existan de diez a veinte paquetes de software nuevos por da (o incluso ms
en algunos momentos puntuales de desarrollo o cambios importantes).
La Lenny es quizs la mejor eleccin para el sistema de trabajo diario; se ac-
tualiza peridicamente para cubrir nuevo software o actualizaciones (como las
de seguridad). No dispone del ltimo software, y ste no se incluye hasta que
la comunidad lo haya verificado en un amplio rango de pruebas.
Vamos a comentar brevemente algunas caractersticas de esta distribucin; las
versiones son las que se encuentran por defecto en la stable (Lenny) y en uns-
table (Sid) a da de hoy:
a) La distribucin (stable) actual consta de entre 28 a 33 CD (o 4-5 DVD) de
la ltima revisin disponible y dependiendo de la arquitectura (soporta ms
de 12 arquitecturas hardware diferentes). Hay diferentes posibilidades depen-
diendo del conjunto de software que nos encontremos en soporte fsico (CD
o DVD), o bien lo que deseamos posteriormente descargar desde la red, con lo
cual slo necesitamos un CD bsico (netinstall CD), ms el acceso a red, para
descargar el resto segn demanda. Esta distribucin puede comprarse (a pre-
cios simblicos de soporte fsico, y de esta manera contribuimos a mantener
la distribucin) o puede descargarse desde debian.org o sus mirrors.
b) La testing y unstable no suelen tener CD/DVD oficiales estables, sino que
puede convertirse una Debian stable a testing o unstable mediante cambios de
configuracin del sistema de paquetes APT. En algunos casos, Debian propor-
ciona imgenes de CD/DVD que se generan semanalmente con el contenido
de la distribucin testing.
c) Ncleo Linux: utilizaban ncleos de la serie 2.6.x por defecto (algunas ver-
siones previas de Debian incluan por defecto kernels de la serie 2.4.x). El en-
foque de Debian en stable es potenciar la estabilidad y dejar a los usuarios la
opcin de otro producto ms actualizado de software, si lo necesitan (en uns-
table o testing). Por ejemplo, en el momento de "congelar" la versin estable, se
escoge la versin de kernel ms estable existente, y en las revisiones posterio-
res se suelen corregir si se detectan problemas. Por su parte, testing y unstable
suelen incluir con poca diferencia de tiempo las ltimas versiones de kernel a
medida que se producen, con el tiempo. Por ejemplo, en la rama 2.6.x suelen
transcurrir varias subversiones de kernel (la numeracin x) entre la distribucin
stable y las no estables.
GNUFDL PID_00167539 45 Introduccin al sistema operativo GNU/Linux
d) Formato de empaquetado: Debian soporta uno de los que ms prestacio-
nes ofrece, el APT. Los paquetes de software tienen un formato denominado
DEB. El APT es una herramienta de ms alto nivel para gestionarlos y man-
tener una base de datos de los instalables y los disponibles en el momento.
Adems, el sistema APT puede obtener software de varias fuentes, ya sea desde
CD, ftp, web.
e) El sistema con APT es actualizable en cualquier momento, mediante lista
de repositorios de fuentes de software Debian (fuentes APT), que pueden ser
los sitios Debian por defecto (debian.org ) o de terceros. No estamos as ligados
a una empresa nica ni a ningn sistema de pago por suscripcin.
f) Algunas de las versiones utilizadas, en un ejemplo de tiempo concreto
son: para una stable kernel (2.6.26), Xorg (1.4.1), glibc (2.7)... Debian Sid tiene
kernel (2.6.32), Xorg (1.7.7), glibc (2.10.2)...
g) En el escritorio acepta tanto Gnome (por defecto) como KDE (K Desktop
Environment). Unstable suele disponer de las ltimas versiones disponibles de
estos entornos.
h) En cuanto a aplicaciones destacables, incluye la mayora de las que sole-
mos encontrar en las distribuciones de GNU/Linux: editores como emacs (y
xemacs), compilador gcc y herramientas, servidor web Apache, navegador web
(Firefox), software Samba para compartir archivos con Windows, etc.
i) Incluye tambin suites ofimticas como OpenOffice y KOffice.
j) Incluye muchos ficheros de configuracin personalizados para su distri-
bucin en directorios de /etc.
k) Debian usaba por defecto el gestor de arranque lilo en versiones previas,
aunque en las ltimas se ha movido a Grub.
l) La configuracin de la escucha de los servicios de red TCP/IP, que se rea-
liza como en la mayora de UNIX, con el servidor inetd (/etc/inetd.conf). Aun-
que dispone tambin opcidonal de xinetd, una opcin que toma ms peso.
m) Hay muchas distribuciones GNU/Linux ms, basadas en Debian, ya que
el sistema puede adaptarse fcilmente para hacer distribuciones ms pequeas
o ms grandes, o con ms o menos software adaptado a un segmento. Una
muy famosa es Knoppix (por ser una de las pioneras en el concepto LiveCD),
una distribucin de un nico CD (o DVD), de tipo LiveCD (de ejecucin di-
recta en CD), que es muy usada para demos de GNU/Linux, o para probarla
en una mquina sin hacer una instalacin previa, ya que arranca y se ejecuta
desde CD, aunque tambin puede instalarse en disco duro y convertirse en
una Debian estndar. Linex es otra distribucin que ha conseguido bastante
fama por su desarrollo apoyado por una administracin, la de la comunidad
GNUFDL PID_00167539 46 Introduccin al sistema operativo GNU/Linux
autnoma de Extremadura. Por otra parte, encontramos a Ubuntu Linux (de
la empresa Canonical), una de las distribuciones que ha obtenido ms amplia
repercusin (superando incluso a Debian en varios aspectos), por sus facilida-
des para construir una alternativa de escritorio. Ubuntu es un referente Linux
en el mbito de escritorio, y tambin dispone de una versin especial orien-
tada a servidor, Ubuntu Server. Por otra parte, es interesante destacar que ha
ido en aumento la colaboracin en Canonical y la comunidad Debian, para
reflejar los avances de cada una en las respectivas distribuciones.
Debian puede usarse como base para otras distribuciones; por ejemplo,
Knoppix es una distribucin basada en Debian que puede ejecutarse
desde el CD sin necesidad de instalarse en disco. Linex es una distribu-
cin Debian adaptada por la administracin de la comunidad de Extre-
madura, en su proyecto de adoptar software de cdigo abierto. Y Ubun-
tu es una distribucin especialmente optimizada para entornos de es-
critorio.
Figura 3. Entorno Debian con Gnome
6.2. Fedora
Red Hat Inc [Redh] es una de las principales firmas comerciales del mundo
GNU/Linux, con una de las distribuciones con ms xito. Bob Young y Marc
Ewing crearon Red Hat Inc en 1994. Estaban interesados en los modelos de
software de cdigo abierto y pensaron que sera una buena manera de hacer
negocio. Su principal producto es su distribucin Red Hat Linux (que abrevia-
GNUFDL PID_00167539 47 Introduccin al sistema operativo GNU/Linux
remos como Red Hat), que est abierto a diferentes segmentos de mercado,
tanto al usuario individual (versiones personal y profesional), como preferen-
temente hacia a las medianas o grandes empresas (con su versiones Enterprise).
Red Hat Linux es la principal distribucin comercial de Linux, orientada
tanto a mercado de oficina de escritorio como a servidores de gama
alta. Adems, Red Hat Inc es una de las empresas que ms colaboran
con el desarrollo de Linux, ya que varios miembros importantes de la
comunidad trabajan para ella.
Aunque Red Hat trabaja con un modelo de cdigo abierto, se trata de una
empresa, y por lo tanto sus fines son comerciales; por ello, suele aadir a su
distribucin bsica valores por medio de contratos de soporte, suscripciones
de actualizacin y otros mtodos. En el caso empresarial, aade software per-
sonalizado (o propio), para hacer que se adecue ms el rendimiento a los fines
de la empresa, ya sea por servidores optimizados o por software de utilidad
propio de Red Hat.
A partir de cierto momento (finales del 2003), Red Hat Linux (versin 9.x), su
versin de GNU/Linux para escritorio, se da por discontinuada, y aconseja a
sus clientes a migrar a las versiones empresariales de la firma, que continuarn
siendo las nicas versiones soportadas oficialmente por la firma.
Figura 4. Logotipos de Red Hat Fedora
En este momento Red Hat decide iniciar el proyecto abierto a la comunidad
denominado Fedora, con el objetivo de realizar una distribucin guiada por
comunidad (al estilo Debian, aunque con fines diferentes), que denominar
Fedora Core (ms tarde, simplemente, Fedora). De hecho, se persigue crear
un laboratorio de desarrollo abierto a la comunidad que permita probar la
distribucin, y a su vez guiar los desarrollos comerciales de la empresa en sus
distribuciones empresariales.
En cierto modo, algunos crticos sealan que se usa a la comunidad como be-
tatesters de las tecnologas que se incluirn en productos comerciales. Adems,
este modelo es utilizado posteriormente por otras compaas para crear mode-
los duales de distribuciones de comunidad a la vez que comerciales. Entonces
aparecen ejemplos como OpenSuse (a partir de la comercial Novell SuSe).
El duo Red Hat y la comunidad Fedora presenta una cierta visin conservadora
(menos acentuada en Fedora) de los elementos software que aade a su distri-
bucin, ya que su principal mercado de destino es el empresarial, e intenta
hacer su distribucin lo ms estable posible, a pesar de que no cuentan con las
ltimas versiones. Lo que s hace como valor aadido es depurar extensamente
el kernel de Linux con su distribucin, y genera correcciones y parches (patchs)
para mejorar su estabilidad. A veces, pueden llegar a deshabilitar alguna fun-
cionalidad (drivers) del kernel, si considera que stos no son lo suficientemente
Nota
Ver: http://fedoraproject.org/
GNUFDL PID_00167539 48 Introduccin al sistema operativo GNU/Linux
estables. Tambin ofrece muchas utilidades en el entorno grfico y programas
grficos propios, incluidas unas cuantas herramientas de administracin. En
cuanto a los entornos grficos, utiliza tanto Gnome (por defecto) como KDE,
pero mediante un entorno modificado propio mediante temas de escritorio
propios, que hace que los dos escritorios sean prcticamente iguales (ventanas,
mens, etc.).
La versin que utilizaremos ser la ltima Fedora Linux disponible, que de-
nominaremos simplemente Fedora. En general, los desarrollos y prestaciones
que se mantienen suelen ser bastante parecidos en las versiones que salen a
posteriori, con lo cual la mayora de comentarios seran aplicables a las dife-
rentes versiones a lo largo del tiempo. Tenemos que tener en cuenta que la
comunidad Fedora, intenta cumplir un calendario de aproximadamente seis
meses para cada nueva versin. Y se produce un cierto consenso sobre las pres-
taciones nuevas a introducir.
Red Hat, por contra, dej en gran parte el mercado de versiones de escritorio
en manos de la comunidad Fedora, y se centra en sus negocios en las versiones
empresariales RHEL (Red Hat Enterprise Linux en varias ediciones). Cabe des-
tacar tambin la existencia de versiones libres compatibles con Red Hat Em-
presarial, como la distribucin CentOS Linux , y en otra medida con orienta-
cin al mbito cientfico, como Scientific Linux .
Vamos a comentar brevemente algunas caractersticas de esta distribucin Fe-
dora:
a) La distribucin actual consiste o bien en un DVD con el sistema completo,
o un CD con una versin LiveCD instalable. Tambin existen diferentes edi-
ciones (denominadas spins) orientadas a sectores determinados (juegos, edu-
cacin, cientficos) o bien a escritorios concretos (Gnome, KDE, XFCE).
b) Ncleo Linux: utiliza ncleos de la serie 2.6.x, que pueden irse actualizando
con el sistema de paquetes rpm (por medio de la utilidad yum, por ejemplo).
Red Hat, por su parte, somete el kernel a muchas pruebas y crea parches para
solucionar problemas, que normalmente tambin son integrados en la versin
de la comunidad Linux, ya que bastantes de los colaboradores importantes en
la comunidad del kernel de Linux trabajan para Red Hat.
c) Formato de empaquetado: Red Hat distribuye su software mediante el sis-
tema de paquetes RPM (red hat package manager), los cuales se gestionan me-
diante el comando rpm o las utilidades yum. RPM es uno de los mejores sis-
temas de empaquetado existentes (al estilo del deb Debian), y algunos UNIX
propietarios lo estn incluyendo. El sistema RPM mantiene una pequea base
de datos con los paquetes instalados, y verifica que el paquete que se va instalar
con el comando rpm no est ya instalado, o entre en conflicto con algn otro
paquete de software o por contra falte algn paquete software o versin de
ste, necesaria para la instalacin. El paquete RPM es un conjunto de ficheros
Nota
Distribuciones compatibles
RHEL:
http://www.scientificlinux.org/
http://centos.org/
GNUFDL PID_00167539 49 Introduccin al sistema operativo GNU/Linux
comprimidos junto con informacin de sus dependencias o del software que
necesita. El sistema de gestin de paquetes RPM se ha implementado desde
las versiones de Red Hat a Fedora, pero tambin a otras distribuciones como
SUSE, y Mandriva.
d) En cuanto al arranque, utiliza scripts de tipo SysV (sysvinit). En las ltimas
versiones se ha reemplazado por upstart (proveniente de Ubuntu), aunque se
mantiene su compatibilidad con los scripts sysvinit.
e) En el escritorio acepta tanto Gnome (escritorio por defecto) como KDE de
forma opcional.
f) En cuanto a aplicaciones destacables, incluye las que solemos encontrar
en la mayora de distribuciones de GNU/Linux: editores como emacs (y xe-
macs), compilador gcc y herramientas, servidor web Apache, navegador web
Firefox/Mozilla, software Samba para compartir archivos con Windows, etc.
g) Incluye tambin suites ofimticas como OpenOffice y KOffice.
h) El software adicional puede obtenerse por los servicios de actualizacin
yum (entre otros) de forma parecida al sistema APT en Debian o con diferentes
herramientas de update incluidas, o bien por Internet mediante paquetes RPM
pensados para la distribucin.
i) Fedora usa el cargador de arranque Grub para arrancar la mquina por
defecto.
j) La configuracin de escucha de los servicios de red TCP/IP, que se lleva
a cabo en la mayora de UNIX con el servidor inetd (/etc/inetd.conf), en Red
Hat ha sido sustituido por xinetd, que tiene una configuracin ms modular
(directorio /etc/xinetd.d).
k) Dispuso en arranque de un programa denominado Kudzu que se encargaba
de verificar cambios de hardware y detectar el hardware nuevo instalado.
En las versiones actuales queda obsoleto, debido a la existencia de una nueva
API denominada HAL que permite realizar esta funcin (que ha sido progresi-
vamente integrada en las distribuciones GNU/Linux).
l) Hay varias distribuciones ms basadas en el Red Hat original, que siguen
muchas de sus caractersticas; cabe destacar Mandriva (antes Mandrake): una
distribucin francesa que en su origen se bas en Red Hat y que sigue en los
primeros puestos junto con Red Hat en las preferencias de los usuarios (sobre
todo en trabajo de escritorio). Mandriva desarrolla software propio y multitud
de asistentes para ayudar a la instalacin y administracin de las tareas ms
comunes, separndose de su origen con base en Red Hat. Por otra parte, las
versiones empresariales de Red Hat tambin han originado una serie de distri-
buciones libres muy populares en entornos de servidor, como CentOS [Cen]
GNUFDL PID_00167539 50 Introduccin al sistema operativo GNU/Linux
(que intenta mantener una compatibilidad 100% con el Red Hat empresarial),
y Scientific Linux (especializada en el cmputo cientfico en proyectos de in-
vestigacin cientfica).
Figura 5. Un escritorio Fedora con Gnome
Con respecto a la distribucin comunitaria Fedora y sus orgenes comerciales
en Red Hat:
a) Es una distribucin creada por la comunidad voluntaria de programado-
res y usuarios basada en desarrollo que no cuenta con soporte ni de actualiza-
ciones ni de mantenimiento por parte del fabricante. Este aspecto pasa a de-
pender de la comunidad, de forma semejante al caso de la distribucin Debian
GNU/Linux.
b) Las versiones se van a producir con bastante rapidez; se esperan nuevas
versiones de la distribucin aproximadamente cada seis meses.
c) Para la gestin de paquetes, tambin utiliza el sistema de paquetes RPM.
Respecto al proceso de la actualizacin de los paquetes de la distribucin o a
la instalacin de otros nuevos, pueden obtenerse por diferentes herramientas,
con los canales de actualizacin de Fedora (repositorios de software), por los
nuevos sistemas de actualizacin yum (basados en el sistema rpm).
d) Otras cuestiones ms tcnicas (algunas de las cuales veremos en los si-
guientes apartados) pueden encontrarse en las notas de la versin de cada lan-
zamiento de Fedora.
Nota
Ved http://
docs.fedoraproject.org/
GNUFDL PID_00167539 51 Introduccin al sistema operativo GNU/Linux
7. Qu veremos...
Una vez hemos examinado esta introduccin "filosfica" al mundo del cdigo
abierto y la historia de los sistemas UNIX y GNU/Linux, as como definido
cules sern las tareas de la figura del administrador del sistema, pasaremos a
tratar las diferentes tareas tpicas que nos encontraremos durante la adminis-
tracin de sistemas GNU/Linux.
A continuacin, examinaremos las diferentes reas que implica la administra-
cin de sistemas GNU/Linux. En cada mdulo, examinaremos un mnimo de
fundamentos tericos que nos permitan explicar las tareas a realizar y entender
el funcionamiento de las herramientas que utilizaremos. Cada mdulo ven-
dr acompaado de algn tipo de taller, donde veremos una pequea sesin
de trabajo de una tarea o el uso de algunas herramientas. Slo recordaremos
que, como dijimos en la presentacin, el tema de la administracin es amplio
y cualquier intento de abarcarlo completamente (como este) tiene que fallar
por las dimensiones limitadas; por ello, en cada tema encontraris abundan-
te bibliografa (en forma libros, sitios web, howto's, etc.) en el que ampliar la
"pequea" introduccin que habremos hecho del asunto.
Los temas que veremos son los siguientes:
En el mdulo de nivel de usuario, daremos una perspectiva de los siste-
mas de GNU/Linux desde la perspectiva del usuario final. Observaremos
procedimientos bsicos de arranque e instalacin del sistema, as como
configuraciones bsicas de dispositivos, entorno grfico de escritorio y ges-
tin de software.
En el mdulo de shells scripts, veremos una herramienta bsica para el
administrador, que es la posibilidad de automatizar tareas mediante len-
guajes interpretados proporcionados por el sistema. Analizaremos su sin-
taxis y posibilidades bsicas, as como algunas utilidades de sistema bsi-
cas que complementarn la programacin de los scripts.
En el mdulo de migracin, obtendremos una perspectiva del tipo de
sistemas informticos que se estn utilizando y en qu ambientes de traba-
jo se usan. Veremos, asimismo, cmo los sistemas GNU/Linux se adaptan
mejor o peor a cada uno de ellos, y plantearemos una primera disyuntiva
a la hora de introducir un sistema GNU/Linux: cambiamos el sistema que
tenamos o lo hacemos por etapas, coexistiendo ambos?
En el mdulo de herramientas de administracin local, estudiaremos
(bsicamente) aquel conjunto de tiles con el que el administrador ten-
dr que "vivir" (y/o sufrir) a diario, y que podran formar la "caja de he-
GNUFDL PID_00167539 52 Introduccin al sistema operativo GNU/Linux
rramientas" del administrador. Hablaremos de los estndares GNU/Linux,
que nos permitirn conocer aspectos comunes a todas las distribuciones
GNU/Linux, es decir, lo que esperamos poder encontrar en cualquier siste-
ma. Otra herramienta bsica sern: los editores simples (o no tan simples);
algunos comandos bsicos para conocer el estado del sistema u obtener
informacin filtrada segn nos interese; procesos bsicos de compilacin
de programas a partir de los cdigos fuente; herramientas de gestin del
software instalado, al mismo tiempo que comentaremos la disyuntiva de
uso de herramientas grficas o las de lnea de comandos. En general, en la
administracin local, trataremos aquellos aspectos de administracin que
podramos considerar "locales" en nuestro sistema. Estos aspectos pueden
conformar la mayor parte de las tareas tpicas del administrador a la hora
de manejar elementos tales como usuarios, impresoras, discos, software,
procesos, etc.
Finalmente, en el mdulo dedicado a red, examinaremos todas aquellas
tareas de administracin que engloben nuestro sistema con su "vecindario"
en la red, sea cual sea su tipo, y veremos los diferentes tipos de conectividad
que podemos tener con los sistemas vecinos, as como los servicios que les
podemos ofrecer o recibir de ellos.
GNUFDL PID_00167539 53 Introduccin al sistema operativo GNU/Linux
Actividades
1. Leed el manifiesto Debian en:
http://www.debian.org/social_contract
2. Documentaos sobre las diferentes distribuciones basadas en Debian: Knoppix, Linex,
variedades Ubuntu. Aparte de los sitios de cada distribucin, en la direccin http://
www.distrowatch.com hay una buena gua de las distribuciones y su estado, as como del
software que incluyen. En esta web, o bien accediendo a las comunidades o fabricantes, po-
dis obtener las imgenes ISO de las distribuciones.
GNUFDL PID_00167539 54 Introduccin al sistema operativo GNU/Linux
Bibliografa
[Bar] Barrapunto. barrapunto site. Noticias Open Source. http://barrapunto.com
[Bul] Bulma. "Bulma Linux User Group". Documentacin general y comunidades de usua-
rios. <http://bulmalug.net>
[Debb] Comunidad Debian. "Distribucin Debian". http://www.debian.org
[Debba] Debian. "Software Libre vs Software Abierto". http://www.debian.org/intro/
free.es.html
[Dis] Distrowatch. "Distribuciones Linux disponibles". Seguimiento de las distribuciones
GNU/Linux y novedades de los paquetes software. Y enlaces a los sitios de descarga de las
imgenes ISO de los CD/DVD de las distribuciones GNU/Linux. http://www.distrowatch.com
[PS02] Enrquez, Ricardo; Sierra, Po (2002). Open Source. Anaya Multimedia.
[FHS] FHS Standard, 2003. http://www.pathname.com/fhs
[Fre] Freshmeat. "Freshmeat site". Listado de proyectos Open Source. http://freshmeat.org
[FSF] FSF. "Free Software Foundation y Proyecto GNU". http://www.gnu.org
[His] HispaLinux. "Comunidad Hispana de Linux". Documentacin general y comunidades
de usuarios. http://www.hispalinux.es
[Joh08] Johnson, Michael K. (1998). "Linux Information Sheet". The Linux Documentation
Project.
[Lev] Levenez, Eric. "UNIX History". http://www.levenez.com/unix
Linux Journal. Linux Journal [Revista Linux]. Revista GNU/Linux. http://
www.linuxjournal.com
Linux Magazine. Linux Magazine. Revista GNU/Linux. http://www.linux-mag.com/
[New] Newsforge. "Newsforge site". Noticias Open Source. http://newsforge.org
[OSDb] OSDN. "Open Source Development Network". Comunidad de varios sitios web, no-
ticias, desarrollos, proyectos, etc. http://osdn.com
[OSIa] OSI. "Listado de licencias Open Source". http://www.opensource.org/licenses/
index.html
[OSIb] OSI (2003). "Open Source Definition". http://www.opensource.org/docs/
definition.php
[OSIc] OSI (2003). "Open Source Iniciative". http://www.opensource.org
[Ray98] Raymond, Eric (1998). La catedral y el bazar. <http://es.tldp.org/Otros/catedral-
bazar/cathedral-es-paper-00.html>
[Ray02a] Raymond, Eric (2002). "UNIX and Internet Fundamentals". The Linux Documen-
tation Project.
Red Hat Inc. "Distribucin Red Hat". http://www.redhat.com
[Sal94] Salus, Peter H. (1994, noviembre). "25 aniversario de UNIX". Byte Espaa (nm. 1).
Scientific Linux. http://www.scientificlinux.org>
[Sla] Slashdot. "Slashdot site". Sitio de noticias comunidad Open Source y generales infor-
mtica e Internet. http://slashdot.org
[Sou] Sourceforge. "Sourceforge site". Listado de proyectos Open Source. <http://
sourceforge.org>
[Sta02] Stallman, Richard (2002). "Discusin por Richard Stallman sobre la relacin de
GNU y Linux". http://www.gnu.org/gnu/linux-and-gnu.html
GNUFDL PID_00167539 55 Introduccin al sistema operativo GNU/Linux
[Tan87] Tanenbaum, Andrew (1987). Sistemas operativos: diseo e implementacin. Pren-
tice Hall.
[Tan06] Tanenbaum, Andrew; Woodhull, Albert S. (2006). The Minix Book: Operating
Systems Design and Implementation (3. ed.). Prentice Hall.
[Cen] The Comunity ENTerprise Operatyng System. http://www.centos.org
[Fed] The Fedora Project. http://fedoraproject.org/
[LPD] The Linux Documentation Project (LDP). Coleccin de Howto's, manuales y guas que
cubren cualquiera de los aspectos de GNU/Linux. Documentacin general y comunidades
de usuarios. http://www.tldp.org
Nivel usuario
Remo Suppi Boldrito
PID_00167540
GNUFDL PID_00167540 Nivel usuario
2010, FUOC. Se garantiza permiso para copiar, distribuir y modificar este documento segn los trminos de la GNU Free
Documentation License, Version 1.2 o cualquiera posterior publicada por la Free Software Foundation, sin secciones invariantes ni
textos de cubierta delantera o trasera. Se dispone de una copia de la licencia en el apartado "GNU Free Documentation License" de
este documento.
Parte del material de este mdulo est basado en una versin anterior elaborada por Joaqun Lpez Snchez-Montas,
Sofia Belles Ramos, Roger Baig i Vias y Francesc Aul Llins editado bajo depsito legal B-1.566-2008 y publicado bajo
GNU Free Documentation License, Version 1.2.
GNUFDL PID_00167540 Nivel usuario
ndice
Introduccin............................................................................................... 5
1. Introduccin al sistema GNU/Linux............................................. 7
2. Conceptos y rdenes bsicas........................................................... 10
2.1. Usuario y grupos ......................................................................... 11
2.2. El sistema de ficheros y jerarqua ............................................... 17
2.3. Directorios del sistema ................................................................ 18
2.4. Enlaces ......................................................................................... 19
2.5. Permisos ....................................................................................... 20
2.6. Manipulacin, patrones, bsquedas y contenidos ..................... 21
2.7. Procesos ....................................................................................... 23
2.8. rdenes complementarias .......................................................... 24
3. Instalacin y arranque de GNU/Linux (conceptos bsicos).... 27
4. Configuraciones bsicas................................................................... 32
4.1. El sistema de login........................................................................ 32
4.2. El intrprete de comandos (shell) ............................................... 34
4.3. El sistema de arranque ................................................................ 39
4.4. Acceso a particiones y dispositivos ............................................. 42
4.5. Configuracin de dispositivos .................................................... 43
5. El entorno grfico............................................................................. 47
Actividades.................................................................................................. 51
GNUFDL PID_00167540 5 Nivel usuario
Introduccin
Como ya se ha visto en el mdulo anterior, GNU/Linux es uno de los trminos
empleados para referirse a la combinacin del ncleo (kernel) equivalente
desde el punto de vista de prestaciones y funcionalidad (y en algunos casos
superior) a Unix denominado Linux, y de herramientas de sistema GNU,
todo bajo licencia GPL (licencia pblica de GNU) y otra serie de licencias libres.
A pesar de que Linux es, en sentido estricto, el sistema operativo, parte funda-
mental de la interaccin entre el ncleo y el usuario (o los programas de apli-
cacin), se maneja usualmente con las herramientas GNU, como por ejemplo
el intrprete de rdenes o comandos bash, que permite la comunicacin con
el ncleo mediante un completo conjunto de rdenes e instrucciones. Existen
otros ncleos disponibles para el proyecto GNU, el conocido como Hurd y que
muchos desarrolladores consideran que es el autntico ncleo del proyecto
GNU. En http://www.linuxdriver.co.il/kernel_map se puede consultar un ma-
pa interactivo del ncleo donde se demuestra la complejidad que posee un
sistema de estas caractersticas.
En este mdulo veremos conceptos de nivel 0 para aprender desde el inicio los
diferentes conceptos de GNU/Linux, e iremos avanzando hasta ver aspectos de
inicializacin y configuraciones para adecuar el sistema operativo a nuestras
necesidades.
GNUFDL PID_00167540 7 Nivel usuario
1. Introduccin al sistema GNU/Linux
El sistema GNU/Linux es un sistema multitarea, es decir, permite la ejecucin
de centenares de tareas al mismo tiempo independientemente de la cantidad
de cores o CPU que tenga para ejecutarse utilizando una caracterstica comn
en todos los sistemas operativos modernos llamada multiprogramacin. Esta
caracterstica permite ejecutar una tarea durante un determinado tiempo, sus-
penderla, pasar a la siguiente y as sucesivamente, y cuando se llega al final,
volver a comenzar por la primera sin afectar su comportamiento o ejecucin.
Normalmente esta ejecucin se denomina "round robin", ya que distribuye un
"quantum" de tiempo (que oscila entre 15 milisegundos a 150 milisegundos,
dependiendo del operativo) para cada tarea en espera y volviendo a comenzar
por la primera cuando se llega a la ltima de la cola. Si el sistema posee ms de
un core o procesador, GNU/Linux tiene capacidad para distribuir estas tareas
en los diferentes elementos de cmputo obteniendo las consiguientes mejoras
en las prestaciones. Puede parecer que 15 milisegundos = 0,015 segundos es
un tiempo pequeo, pero cualquier procesador actual puede como mnimo
ejecutar en este tiempo unas 2,2 millones de instrucciones mquina! Adems,
Gnu/Linux es un sistema operativo multiusuario que permite que ms de un
usuario a la vez pueda estar trabajando con el sistema y que ste con su trabajo
no pueda afectar a ninguna de las tareas de los otros usuarios en el sistema.
Gnu/Linux es un sistema multitarea y multiusuario que permite (aun
con un solo procesador/core) atender las necesidades simultneas de
mltiples usuarios, utilizando un tcnica habitual de los sistemas ope-
rativos modernos denominada multiprogramacin.
Todos los sistemas Unix, y Gnu/Linux no es una excepcin, consideran dos
tipos de usuarios diferenciados: el superusuario (llamado root), que tiene to-
dos los permisos sobre el sistema, y el resto de los usuarios que disponen de
un directorio de trabajo (home) del que tienen todos los permisos, pero en el
resto del sistema lo que pueden hacer est en funcin de su importancia y ni-
vel de seguridad para el propio sistema. Generalmente, en cualquiera de estos
sistemas *nix (Unix, Linux...) un usuario puede "mirar" (y en algunos casos
ejecutar) todo aquello que no implique informacin confidencial pero tiene
generalmente restringido el resto de acciones.
El segundo concepto interesante en los sistemas *nix es que se puede traba-
jar interactivamente en dos modos diferenciados: modo texto y modo grfico
(y en este ltimo se puede abrir una ventana especial llamada Terminal, que
permite trabajar en modo texto dentro del modo grfico). Normalmente, los
GNUFDL PID_00167540 8 Nivel usuario
modos grficos son los ms utilizados en sistemas de escritorio o de usuario
domstico, mientras que los de texto son adecuados para servidores. No obs-
tante, como no se impone ninguna restriccin se puede cambiar fcilmente
de uno a otro con una secuencia de teclas o incluso estar en modo grfico y
desarrollando cdigo en modo texto sobre un terminal, o conectado con un
terminal a otra mquina o al disco de otra mquina.
El tercer concepto interesante es que la interaccin entre el usuario y el ncleo
se realiza a travs de un intrprete de comandos/rdenes llamado shell y que
puede ser escogido por el usuario entre los diferentes que hay. Estos shell per-
miten la ejecucin (interpretacin, mejor dicho, ya que el cdigo est escrito
en lenguaje texto ASCII) de pequeos programas llamados shell scripts, que
son muy potentes para realizar secuencias de comandos (y que pueden llegar a
ser muy complejas). Obviamente, al igual que otros sistemas operativos, Gnu/
Linux en su interfaz grfica soporta la interaccin grfica sobre los diferentes
acciones del sistema, incluso permitiendo ejecutar shell scripts como si de otro
programa se tratara.
Dos conceptos interesantes ms, en los sistemas *nix, son la idea de tarea de
usuario o del sistema operativo y la estructura del sistema de archivos. En
cuanto al primer concepto, una tarea es una actividad que debe realizar el sis-
tema operativo que bien puede ser la ejecucin de un comando, una orden,
editar un archivo, etc. Para ello, el sistema operativo debe ejecutar un progra-
ma adecuado para realizar esta tarea que normalmente se denomina ejecuta-
ble, ya que contiene las instrucciones mquina para realizar esta tarea. Cuando
el programa ejecutable se carga en memoria se le llama proceso, o programa
en ejecucin, ya que contiene, adems del ejecutable, todas las estructuras de
datos para que se pueda realizar esta tarea, y se libera toda la memoria cuando
finaliza su ejecucin.
Este proceso se puede suspender, bloquear, continuar su ejecucin de acuer-
do a las necesidades del usuario y a lo que ordene el sistema operativo. Una
derivacin de este concepto de proceso es que en los procesadores modernos
un proceso puede ser dividido entre varia subtareas (llamados hilos o threads).
Qu ventajas tiene un programa multithread? Que el cdigo que ejecuta ca-
da thread lo define el programador, por lo cual se puede tener un thread aten-
diendo una lectura de disco y otro haciendo un refresco de una imagen en
pantalla simultneamente dentro del mismo proceso. Aun teniendo un solo
core, este tipo de programacin es ms eficiente que si hiciera una subtarea
primero y otra despus.
Por ltimo, los sistema *nix disponen de una estructura de archivos estndar
donde se ubican los archivos del sistema con total independencia a los dispo-
sitivos fsicos. Es decir, a partir de una raz (llamada root y definida por la "/")
se ubican los diferentes directorios en funcin de sus objetivos, y donde cada
usuario dispone de un directorio propio de trabajo, generalmente en el direc-
Nota
Los hilos de ejecucin o th-
reads pueden ser ejecutados
independientemente por dife-
rentes cores.
GNUFDL PID_00167540 9 Nivel usuario
torio /home/nombre-usuario, donde su dueo tendr total capacidad de deci-
sin, mientras que no as en el resto del rbol (el superusuario tiene su propio
directorio en /root).
GNUFDL PID_00167540 10 Nivel usuario
2. Conceptos y rdenes bsicas
Entrando con un poco ms de detalle, en este apartado discutiremos las ideas
bsicas y las instrucciones necesarias para "movernos" en el sistema. La forma
ms simple es a travs de rdenes al intrprete de rdenes (y ya veris como es
lo ms eficiente cuando se adquiere un poco de prctica aunque al principio
pueda parecer anticuado o complicado o las dos cosas). Este mtodo de trabajo
nos permitir trabajar rpido con cualquier mquina en forma local o remota,
ya que se tiene repeticin/texto predictivo de los comandos, ejecutando rde-
nes complejas o programar shell scripts simplemente con un terminal texto.
Se debe tener en cuenta que con una interfaz grfica para un usuario novel es
sumamente til, pero extremadamente ineficiente para un usuario avanzado.
La mayora de las rdenes, o comandos, que veremos en este apartado forman
parte del estndar y son comunes a todos los sistemas GNU/Linux y a Unix
(son normas IEEE POSIX). Aunque cada distribucin tiene sus propias aplica-
ciones de administracin y gestin, generalmente todas las acciones que se
hacen a partir de ellas tambin se pueden hacer con las rdenes que veremos.
A partir de stas, podremos manipular casi todos los aspectos del sistema y
movernos eficientemente.
En este apartado tenemos por objetivo aprender a utilizar correctamente es-
tas rdenes y a navegar por cualquier sistema basado en GNU/Linux y sin
que importe qu distribucin estemos usando. Cada una de las rdenes del
sistema suele tener multitud de parmetros diferentes. Con la utilizacin de
los parmetros podemos, con una misma orden, ejecutar acciones diferentes,
aunque todas sean de un mismo estilo. En este documento no especificaremos
los diferentes parmetros de cada una de las rdenes que veremos, ya que se
puede consultar el manual incluido en todo sistema *nix con la orden man
<nombre_de_la_orden>. Es interesante comentar que si no se sabe el nombre
de la orden/comando, se puede utilizar el comando apropos accin, que nos
listar todas las rdenes, y en la que la palabra pasada como accin sale en la
especificacin de la orden. Por ejemplo, si ponemos apropos copy nos dar:
cp (1) - copy files and directories
cpgr (8) - copy with locking the given file to the password or gr...
cpio (1) - copy files to and from archives
cppw (8) - copy with locking the given file to the password or gr...
dd (1) - convert and copy a file
...
GNUFDL PID_00167540 11 Nivel usuario
Esto indica los comandos que permiten copiar algn elemento. El parmetro
de una orden/comando est precedido por un espacio o muchas veces por un
"", como por ejemplo:
cp -dpR /home/juan /usr/local/backup
Esto permite hacer una copia de respaldo de los archivos de /home/juan en
/usr/local/backup indicando con -d que copia los enlaces simblicos tal cual
son, en lugar de copiar los archivos a los que apuntan, -p que preserva los per-
misos, el usuario y el grupo del archivo a copiar y -R para copiar los directorios
recursivamente.
2.1. Usuario y grupos
Como hemos dicho en la introduccin, todos los *nix son multiusuario y mul-
titarea. Por este motivo es muy importante que el mismo sistema operativo
incorpore mecanismos para manipular y controlar correctamente a los usua-
rios: el sistema de entrada e identificacin (login), los programas que puede
ejecutar, mecanismos de seguridad para proteger el hardware del ordenador,
proteccin para los ficheros de los usuarios, etc.
Para identificar a los usuarios delante del sistema operativo, generalmente se
utiliza una poltica de nombres estndar que suele ser poner como login la pri-
mera inicial del nombre del usuario seguido de su apellido y se debe recordar
que se diferencian maysculas y minsculas y, por tanto, abc es diferente de
ABC. Los sistemas *nix organizan toda esta informacin por usuarios y grupos.
Para entrar a trabajar interactivamente con el sistema, ste nos pedir un login
y una contrasea.
El login suele ser un nombre que identifica de manera inequvoca el usuario y
si bien existen otros mtodos de identificacin, por ejemplo, mediante certifi-
cados digitales, es el mtodo ms habitual. Para validar el login, se solicita una
palabra que slo conoce el usuario y se llama contrasea (password). La con-
trasea debe ser una combinacin de letras, nmeros y caracteres especiales y
no debe estar formada por ninguna palabra de diccionario o similares porque
puede representar un problema de seguridad importante.
Ejemplo
Por ejemplo, si ponemos una contrasea como .MBAqcytvav34 podra parecer algo im-
posible de recordar fcilmente pero es un punto y las primera letras de un tango "Mi Bue-
nos Aires querido cuando yo te vuelva a ver" y el ao que se escribi el tango formando
una palabra clave que ser mucho ms compleja de averiguar que una palabra que est
en el diccionario, ya sea al derecho o al revs.
El sistema de contraseas es de tipo unidireccional, lo cual significa que nues-
tra contrasea no es almacenada como texto, sino que es cifrada y guardada.
Cuando entramos en el sistema y escribimos nuestra contrasea, sta se cifra y
se compara con la que hay almacenada. Si coinciden, la identificacin es po-
Nota
Existen diferentes tipos de ins-
talaciones de un sistema ope-
rativo en funcin de su objeti-
vo/rol que cumplir y las apli-
caciones que tendr instaladas:
servidor, escritorio, ofimtica,
ocio, gateway, firewall, etc. El
tipo servidor es aquella m-
quina que contiene programas
que se encargan de proporcio-
nar algn tipo de servicio (co-
mo servir pginas web, dejar
que los usuarios se conecten
remotamente, etc.), que en la
mayora de los casos estn vin-
culados a una red de comuni-
caciones, pero no necesaria-
mente.
GNUFDL PID_00167540 12 Nivel usuario
sitiva, si no coinciden, es negativa. La seguridad del sistema se basa en el algo-
ritmo de cifrado, del cual, si es seguro, no se podr conseguir la llave original
haciendo el procedimiento inverso. Los programas que intentan romper las
contraseas de los usuarios realizan millones de cifrados de palabras a partir
de diccionarios (con sistemas automticos para derivarlas y buscar variantes)
y probar si coinciden con el cifrado de alguna de las contraseas de usuario.
Por este motivo, se deben escoger cuidadosamente las contraseas, cuidando
dnde se guardan/apuntan (intentando en lo posible no hacerlo).
Actualmente, en los sistemas GNU/Linux podemos seleccionar dos tipos de
cifrado posibles para las contraseas de usuario. El que se utiliza desde los ini-
cios de UNIX es el 3DES. El nico inconveniente de este tipo de cifrado es
que slo nos permite contraseas de 8 letras (si escribimos ms, se ignoran),
a diferencia del otro tipo de cifrado, denominado MD5, con el cual podemos
usar contraseas de la longitud que queramos (de hecho, MD5 es un sistema
de hashing, pero tambin se puede utilizar para cifrar contraseas de manera
unidireccional). Cuanto ms larga sea la contrasea, resulta ms segura, con
lo cual, se recomienda utilizar el segundo tipo de cifrado en sistemas de alta
seguridad. De todos modos, debemos considerar que, si necesitamos usar al-
gunos programas especiales para la gestin de usuarios, como el NIS, puede
que no sean compatibles con MD5.
Los grupos de usuarios es un conjunto de usuarios con acceso al sistema que
comparten unas mismas caractersticas, de forma que nos es til agruparlos
para poderles dar una serie de permisos especiales en el sistema. Un usuario
debe pertenecer, al menos, a un grupo, aunque puede ser de ms de uno. El
sistema tambin utiliza todo este mecanismo de usuarios y grupos para ges-
tionar los servidores de aplicaciones instalados y otros mecanismos. Por esta
razn, adems de los usuarios reales, en un sistema habr usuarios y grupos
que no tienen acceso interactivo pero estn vinculados a otras tareas que se
deben hacer en el operativo.
Ejemplo
Por ejemplo, el usuario Debian-Exim es un usuario definido para las funcionalidades
del gestor de correo Exim que tiene ID de usuario (101) y de grupo (105), pero que no
se puede conectar interactivamente (tal como lo indica el /bin/false de la definicin del
usuario en el archivo /etc/passwd).
Debian-exim:x:101:105::/var/spool/exim4:/bin/false.
Como ya hemos explicado, en todo sistema operativo hay un superusuario
(root) que tiene privilegios mximos para efectuar cualquier operacin sobre
el sistema. Es necesario que este exista, puesto que ser quien se encargar de
toda la administracin y gestin de servidores, grupos, etc. Este usuario no se
debe utilizar para trabajar normalmente en el sistema. Slo deberemos entrar
como root cuando sea realmente necesario (en la actualidad, la mayora de las
distribuciones no permiten entrar como root, sino entrar como un usuario nor-
mal y luego "elevarse" como root a travs del comando su o ejecutar coman-
Nota
NIS son una serie de aplicacio-
nes que nos permiten gestio-
nar todos los usuarios de una
misma red de manera centrali-
zada en un solo servidor.
GNUFDL PID_00167540 13 Nivel usuario
dos a travs del comando sudo) y utilizaremos otras cuentas o usuarios para el
trabajo normal. De este modo, nunca podremos daar el sistema con opera-
ciones errneas o con la prueba de programas que pueden ser maliciosos, etc.
Toda la informacin de usuarios y grupos se encuentra en los archivos siguien-
tes:
/etc/passwd: informacin (nombre, directorio home, etc.) del usuario.
/etc/group: informacin sobre los grupos de usuarios.
/etc/shadow: contraseas cifradas de los usuarios y configuracin para su
validez, cambio, etc.
Utilizar el archivo de shadow es opcional pero recomendable, ya que es un
archivo que solo puede leer el root y, por lo tanto, el resto de usuarios no ten-
dr acceso a las contraseas cifradas, reduciendo as la probabilidad que un
usuario normal puede utilizar herramientas de fuerza bruta para averiguar las
contraseas de otros usuarios o del root.
Todos estos ficheros estn organizados por lneas, cada una de las cuales iden-
tifica un usuario o grupo (dependiente del fichero). En cada lnea hay varios
campos separados por el carcter ":" y es importante saber qu son estos cam-
pos, por lo cual los exploraremos con algo ms de detalle:
1) /etc/passwd: Por ejemplo: games:x:5:60:games:/usr/games:/bin/sh.
Campo 1) Login: el nombre del usuario. No puede haber dos nombres
iguales, aunque s alguno que coincida con un grupo del sistema.
Campo 2) Contrasea cifrada: si no se utiliza el fichero de shadow, las con-
traseas cifradas se almacenan en este campo. Si utilizamos el fichero de
shadow, todos los usuarios existentes deben estar tambin en el de shadow
y en este campo se identifica con el carcter "x".
Campo 3) User ID: nmero de identificacin del usuario. Es el nmero con
el cual el sistema identifica el usuario. El 0 es el reservado para el root.
Campo 4) Group ID: el nmero de grupo al cual pertenece el usuario. Co-
mo que un usuario puede pertenecer adems de un grupo, este grupo se
denomina primario.
Campo 5) Comentarios: campo reservado para introducir los comentarios
sobre el usuario. Se suele utilizar para poner el nombre completo o algn
tipo de identificacin personal.
Nota
Informacin de usuarios y gru-
pos:
/etc/passwd: informacin
de los usuarios.
/etc/group: informacin so-
bre los grupos de usuarios.
/etc/shadow: contraseas
cifradas de los usuarios y
configuracin para su vali-
dez, cambio, etc.
GNUFDL PID_00167540 14 Nivel usuario
Campo 6) Directorio de usuario: el directorio home del usuario que es don-
de este puede dejar todos sus ficheros. Se suelen poner en una carpeta del
sistema (generalmente /home/login_usuario).
Campo 7) Intrprete de rdenes: un intrprete de rdenes (shell) es un
programa que se encarga de leer todo el que escribimos en el teclado y
ejecutar los programas u rdenes que indicamos. En el mundo Gnu/linux
el ms utilizado es el bash (GNU Bourne-Again Shell), si bien hay otros
(csh, ksh, etc.). Si en este campo escribimos /bin/false, no permitiremos que
el usuario ejecute ninguna orden en el sistema, aunque est dado de alta.
2) /etc/group: Por ejemplo: netdev:x:110:Debian.
Campo 1) Nombre del grupo.
Campo 2) Contrasea cifrada: la contrasea de un grupo se utiliza para
permitir que los usuarios de un determinado grupo se puedan cambiar a
otro o para ejecutar algunos programas con permisos de otro grupo (siem-
pre que se disponga de la contrasea).
Campo 3) Group ID: nmero de identificacin del grupo. Es el nmero con
el cual el sistema identifica internamente los grupos. El 0 est reservado
para el grupo del root (los administradores).
Campo 4) Lista de usuarios: los nombres de los usuarios que pertenecen al
grupo, separados por comas. Aunque todos los usuarios deben pertenecer
a un grupo determinado (especificado en el cuarto campo del fichero de
passwd), este campo se puede utilizar para que usuarios de otros grupos
tambin dispongan de los mismos permisos que tiene el usuario a quien
se est haciendo referencia.
3) /etc/shadow: Por ejemplo:
root:$1$oE9iKzko$n9imGERnPDayiyat0XQjm.:14409:0:99999:7:::
Campo 1) Login: debe ser el mismo nombre que se utiliza en el fichero
de /etc/passwd.
Campo 2) Contrasea cifrada.
Campo 3) Das que han pasado, desde el 1/1/1970, hasta que la contrasea
ha sido cambiada por ltima vez.
Campo 4) Das que deben pasar hasta que la contrasea se pueda cambiar.
Campo 5) Das que deben pasar hasta que la contrasea se deba cambiar.
Campo 6) Das antes de que caduque la contrasea en qu se avisar al
usuario que la debe cambiar.
Campo 7) Das que pueden pasar despus de que la contrasea caduque,
antes de deshabilitar la cuenta del usuario (si no se cambia la contrasea).
Campo 8) Das, desde el 1/1/1970, que la cuenta es vlida, pasados estos
das ser deshabilitada.
GNUFDL PID_00167540 15 Nivel usuario
Campo 9) reservado.
Cuando un usuario entra en el sistema, se le sita en su directorio home y se
ejecuta el intrprete de rdenes (shell) configurado en /etc/passwd en la lnea
correspondiente al usuario (campo 7). De este modo, ya puede empezar a tra-
bajar. Slo el root del sistema (o los usuarios de su grupo) tienen permiso para
manipular la informacin de los usuarios y grupos, darlos de alta, de baja, etc.
Cada orden para manejar a los usuarios tiene varios parmetros diferentes para
gestionar todos los campos que hemos visto anteriormente.
A modo de ejemplo, podemos mencionar:
adduser: nos sirve para aadir un nuevo usuario al sistema. La manera en
que este se aade (si no le especificamos nada) se puede configurar en el
fichero /etc/adduser.conf. Admite un conjunto de opciones diferentes para
especificar el directorio home, el shell a utilizar, etc.
useradd: crea un nuevo usuario o cambia la configuracin por defecto.
Esta orden y la anterior nos pueden servir para efectuar las mismas accio-
nes, aunque con diferentes parmetros.
usermod: con esta orden podemos modificar la mayora de los campos
que se encuentran en el fichero de passwd y shadow, como el directorio
home, el shell, la caducidad de la contrasea, etc.
chfn: cambia la informacin personal del usuario, contenida en el campo
de comentarios del fichero de passwd (campo 5).
chsh: cambia el shell del usuario.
deluser: elimina a un usuario del sistema, y borra todos sus ficheros segn
los parmetros que se le pase, hace copia de seguridad o no, etc. La con-
figuracin que se utilizar por defecto con esta orden se especifica en el
fichero /etc/deluser.conf.
userdel: orden con las mismas posibilidades que la anterior.
passwd: sirve para cambiar la contrasea de un usuario, su informacin
de caducidad o para bloquear o desbloquear una determinada cuenta.
addgroup: permite aadir un grupo al sistema.
groupadd: lo mismo que la orden anterior, pero con diferentes parme-
tros.
Nota
Comandos bsicos de gestin
de usuarios y grupos:
useradd
userdef
passwd
groupadd
groupdef
gpasswd
whoami
groups
id
who
w
su
GNUFDL PID_00167540 16 Nivel usuario
groupmod: permite modificar la informacin (nombre y GID) de un grupo
determinado.
delgroup: elimina un grupo determinado. Si algn usuario todava lo tiene
como primario, no se podr eliminar.
groupdel: igual que en el caso anterior.
gpasswd: sirve para cambiar la contrasea del grupo. Para saber qu usua-
rio somos, podemos utilizar la orden whoami, que nos mostrar nuestro
login.
groups: sirve para saber a qu grupos pertenecemos e id nos mostrar usua-
rio y grupo.
Tambin es interesante podernos convertir en otro usuario sin salir de la sesin
(orden login o su) o cambiarnos de grupo con la orden newgrp. Esta ltima
orden se debe utilizar slo cuando no se pertenece al grupo en cuestin y se
sabe su contrasea (que ha de estar activada en el fichero de group). Si slo
necesitamos los permisos del grupo en cuestin para ejecutar una orden de-
terminada, tambin podemos utilizar sg.
Como vemos, en GNU/Linux tenemos ms de una manera para ejecutar
una accin determinada. Esta es la tnica general que se sigue en el
sistema: podemos editar directamente los ficheros y modificar, utilizar
algunas de las rdenes que existen, crearlas nosotros mismos, etc. En
definitiva, tenemos la posibilidad de seleccionar cul es la opcin que
ms nos satisface.
Por otro lado, y como decamos anteriormente, GNU/Linux es un sistema ope-
rativo multiusuario, por lo cual, en un mismo momento puede haber varios
usuarios conectados al sistema de manera simultnea. Para averiguar quines
son, se puede utilizar la orden who, que nos muestra la lista de usuarios den-
tro del sistema y w, adems, nos muestra qu es lo que estn haciendo. Nos
podemos comunicar con otro usuario utilizando la orden write, con la cual
aparece el mensaje que hemos escrito en la pantalla del usuario indicado o
wall, que escribe el contenido del fichero que hemos especificado en todos
los usuarios dentro del sistema. Para activar o desactivar la opcin de recibir
mensajes, tenemos la orden mesg. Tambin podemos hacer un chat personal
con algn usuario a partir de la orden talk.
GNUFDL PID_00167540 17 Nivel usuario
2.2. El sistema de ficheros y jerarqua
Todo sistema operativo necesita guardar multitud de archivos: configuracin
del sistema, registro de actividades, de usuarios, etc. Existen diferentes siste-
mas de archivos caracterizados por su estructura, fiabilidad, arquitectura, ren-
dimiento, etc. y GNU/Linux es capaz de leer/escribir archivos en la casi tota-
lidad de los sistemas de archivos aunque tiene su propio sistema optimizado
para sus funcionalidades, como por ejemplo ext4 o ReiserFS.
El ext4 es una mejora compatible con ext3 que a su vez es una evolucin del
ext2 que es el ms tpico y extendido. Su rendimiento es muy bueno, incorpora
todo tipo de mecanismos de seguridad y adaptacin, es muy fiable e incorpo-
ra una tecnologa denominada journaling, que permite recuperar fcilmente
errores en el sistema cuando, por ejemplo, hay un corte de luz o el ordenador
sufre una parada no prevista. ext4 soporta volmenes de hasta 1024 PiB (PiB
pebibyte = 2
50
bytes 1.000.000.000.000.000 bytes), mejora el uso de CPU y
el tiempo de lectura y escritura.
ReiserFS es otro de los sistemas utilizados en Linux que incorpora nuevas tec-
nologas de diseo y que le permiten obtener mejores prestaciones y utiliza-
cin del espacio libre. Cualquiera de estos tipos de sistemas de archivos puede
ser seleccionado en el proceso de instalacin y es recomendable etx3/ext4 para
la mayora de las instalaciones.
Una caracterstica muy importante de todos los sistemas *nix es que todos los
dispositivos del sistema se pueden tratar como si fueran archivos (indepen-
dencia del dispositivo fsico). Es decir, existe un procedimiento de "montar el
dispositivo" a travs de la orden mount en un directorio del sistema y luego,
accediendo a este directorio, se accede al dispositivo (incluso si el dispositivo
es remoto), por lo cual no existe una identificacin del dispositivo fsico para
trabajar con los ficheros como en otros operativos como A:, C:, etc.).
El sistema de ficheros ext2/3/4 ha sido diseado para manejar de forma ptima
ficheros pequeos (los ms comunes) y de forma aceptable los ficheros gran-
des (por ejemplo, archivos multimedia) si bien se pueden configurar los par-
metros del sistema de ficheros para optimizar el trabajo con este tipo de archi-
vos. Como hemos mencionado anteriormente, el sistema de archivos parte de
una raz indicada por "/" y se organizan las carpetas (directorios) y subcarpetas
(subdirectorios) a partir de sta, presentando una organizacin jerrquica (vi-
sualizada por el comando tree -L 1) como:
/
|-- bin
|-- boot
|-- cdrom -> media/cdrom
|-- dev
GNUFDL PID_00167540 18 Nivel usuario
|-- etc
|-- home
|-- initrd.img -> boot/initrd.img-2.6.26-2-686
|-- lib
|-- lost+found
|-- media
|-- mnt
|-- opt
|-- proc
|-- root
|-- sbin
|-- selinux
|-- srv
|-- sys
|-- tmp
|-- usr
|-- var
`-- vmlinuz -> boot/vmlinuz-2.6.26-2-686
Donde se muestra el primer nivel de directorios a partir del /. Todos ellos son
directorios, excepto los que figuran con el carcter "->", que son enlaces a ar-
chivos y el archivo original se encuentra a la derecha de la flecha.
2.3. Directorios del sistema
En las distribuciones GNU/Linux se sigue el estndar FHS y tenemos como
directorios en el raz (los ms importantes):
/bin: rdenes bsicas para todos los usuarios del sistema.
/boot: archivos necesarios para el arranque del sistema.
/dev: dispositivos del sistema.
/etc: archivos de configuracin del sistema y de las aplicaciones que hay
instaladas.
/home: directorio de las carpetas home de los usuarios.
/lib: bibliotecas esenciales para el ncleo del sistema y sus mdulos.
/mnt: punto de montaje temporal para dispositivos.
/proc: procesos y variables del ncleo del sistema.
/root: directorio home para el root del sistema.
/sbin: comandos especiales para el root del sistema.
/tmp: archivos temporales.
/usr: segunda estructura jerrquica, utilizada para almacenar todo el soft-
ware instalado en el sistema.
/var: directorio para los gestores de colas o spoolers de impresin, archivos
de registro (logs), etc.
GNUFDL PID_00167540 19 Nivel usuario
No se deben borrar estos directorios a pesar de que parezca que no se utili-
zan para el buen funcionamiento del sistema (muchas aplicaciones pueden no
instalarse o dar errores si los directorios estndar no se encuentran definidos).
Para movernos por la estructura de directorios debemos utilizar las rdenes
para hacer una lista de los contenidos y cambiar de carpeta. Cuando entramos
en el sistema, es usual que el login nos site en nuestro directorio home, que
generalmente se suele indicar con el carcter "~". Si queremos ver lo que hay
en el directorio en el que estamos situados, podemos hacer una lista de los
contenidos utilizando la orden ls o en su versin ms completa ls -la, que
implica todos los ficheros (incluidos los que comienzan por un "." que no
se muestran normalmente) -a y en formato largo -l. En todos los directorios
existen dos entradas indicadas con "." y ".." donde la primera hace referencia
al directorio/carpeta actual y la segunda al directorio/carpeta superior.
Para cambiar de directorio podemos utilizar la orden cd, la cual si no le pa-
samos ningn parmetro nos situar en nuestro directorio home del usuario
que la ha ejecutado. Todos los comandos aceptan direcciones relativas, por
ejemplo, ls ./grub si estamos en el directorio /boot nos listar el contenido
del directorio /boot/grub (forma relativa) o ls /boot/grub tambin nos listar el
contenido del directorio /boot/grub, pero desde cualquier lugar que estemos
(forma absoluta). Otro comando til para saber dnde estamos parados es el
pwd, que nos indicar en qu directorio estamos.
2.4. Enlaces
Un elemento muy utilizado en los archivos son los enlaces o vnculos.
Un enlace es un puente a un archivo o directorio y representa una re-
ferencia que podemos poner en cualquier lugar que nos interese y que
acta como un acceso directo a cualquier otro.
Este mecanismo nos permite acceder a carpetas o ficheros de forma segura y
cmoda, sin tener que desplazarse por la jerarqua de directorios.
Ejemplo
Si necesitamos acceder frecuentemente al archivo /etc/network/if-up/mountnfs, por ejem-
plo, podemos utilizar un enlace en nuestro directorio con la orden ln -s /etc/network/if-up
/mountnfs nfs-conf y haciendo un cat nfs-conf, tendremos el mismo resultado que cat /etc/
network/if-up/mountnfs evitando tener que introducir cada vez toda la ruta completa.
En este caso hemos creado un enlace simblico (parmetro -s) o sea, que si bo-
rramos el archivo el enlace quedar apuntando a nada y dar un error cuando
ejecutemos el comando cat nfs-conf, pero este tipo de enlace se puede hacer
a cualquier recurso y en cualquiera de las particiones del disco. La otra posi-
bilidad es hacer un enlace fuerte (hard link) permitido slo para recurso en la
misma particin y que si borramos el archivo, el enlace queda activo hasta
que no haya ms enlaces apuntando a este archivo (momento en el cual se
Ejemplo
Por ejemplo, si hacemos ls .
mostrar el listado de direc-
torio actual y si hacemos ls ..
mostrar el listado del directo-
rio inmediato superior.
GNUFDL PID_00167540 20 Nivel usuario
borrar el archivo destino). Este recurso se debe utilizar con cuidado (slo el
root puede hacer enlaces fuertes a directorios) ya que permite ocultar a qu
archivo est apuntando, mientras que con un enlace simblico se puede ver
el archivo destino.
2.5. Permisos
Dado que los sistemas *nix son multiusuario, necesitamos que los archivos
almacenados deban tener un serie de propiedades que permitan leer, escribir
y ejecutar (parmetros r,w,x read, write, execute). Para ello Gnu/Linux puede
trabajar con un mtodo simplificado (llamado Access Control List reducidas)
en los que para cada elemento en el sistema de archivo se consideran tres
bits (que representan los atributos para rwx) y se aplican para el dueo del
elemento (owner), tres para el grupo y tres para el resto de usuarios. Por lo
cual, para cada elemento (archivo, directorio, dispositivo, enlace, etc.) existen
9 bits adems de la identificacin a quien pertenece el elemento (uid) y a qu
grupo pertenece (gid). Cuando hacemos ls -l tendremos para cada elemento
una salida como:
-rwxr-xr-x 1 root root 4297 2008-01-18 06:09 mountnfs
Los primeros diez caracteres (empezando por la izquierda) nos indican los per-
misos del fichero de la siguiente manera:
Carcter 1: indica el tipo de archivo, lo ms comunes "" para un archivo,
"d" para un directorio, "l" para un enlace.
Caracteres 2, 3, 4: nos indican, respectivamente, los permisos de lectura,
escritura y ejecucin para el propietario del fichero. En el caso de no tener
el permiso correspondiente activado, se encuentra el carcter "-" y si no
"r", "w" o "x". En el tercer carcter, adems, nos podemos encontrar una
"s", que nos indica si el archivo es de tipo SetUserId, que significa que en
ejecutarlo obtendr los permisos del propietario del fichero. Si slo tiene
el permiso "x", cuando el programa ejecuta lo hace con los permisos de
quien la haya lanzado.
Caracteres 5, 6, 7: estos caracteres tienen exactamente el mismo significa-
do que los anteriores, pero hacen referencia a los permisos concedidos a
los usuarios del grupo al que pertenece el archivo.
Caracteres 8, 9, 10: igual que en el caso anterior, pero para los otros usua-
rios del sistema.
La siguiente cifra (1 en este caso) nos indica el nmero de enlaces fuertes que
tiene el archivo. Para los directorios, este nmero indica cuntas carpetas hay
en su interior adems de los enlaces fuertes que tiene. A continuacin se en-
GNUFDL PID_00167540 21 Nivel usuario
cuentra el propietario y el grupo del archivo, seguido del tamao (en bytes)
que ocupa y la fecha de la ltima modificacin. En todos los archivos se guar-
da su fecha de creacin, del ltimo acceso y de la ltima modificacin, que
podemos manipular con la orden touch. Al final se encuentra el nombre del
fichero, en el que se diferencian minsculas de maysculas y podemos tener
todo tipo de caracteres sin ningn problema (aunque luego ser ms compli-
cado ejecutar rdenes con ellas ya que se deber poner entre comillas ("") para
que no se interpreten estos caracteres). Se recomienda utilizar: a-z A-Z . - _ 0-9.
El mecanismo de SetUserId es muy til cuando un programa necesita tener
los permisos de su propietario para acceder a ciertos archivos o hacer algn
tipo de operacin en el sistema. Se debe vigilar este tipo de archivos porque
pueden generar problemas de seguridad en el sistema si son mal utilizados.
Para cambiar los permisos de un archivo determinado podemos utilizar la or-
den chmod y esta accin slo la puede realizar el propietario del archivo. Las
dos formas ms comunes de utilizar el chmod son: chmod XXX nombreArchivo,
donde XXX puede estar entre 0 y 7 correspondiendo al valor en octal de los
permisos rwx para el propietario (primer nmero), grupo segundo y pblico el
tercero. Para sacar el nmero debemos considerar que 1 es el permiso concedi-
do y 0 quitado, por ejemplo, r-x se traduce como 101 que en octal (o binario)
es 5. Por lo cual, r-x--xr-- se traduce como 101001100 lo cual queda 514.
Nota
Para cambiar las protecciones
de file a rwxr - - r - -:
chmod 744 file
Para cambiar de dueo y gru-
po:
chown user file
chgrp group file
La otra manera de utilizar la orden es indicar de manera explcita qu permi-
so queremos dar o eliminar al archivo indicando con las letras u,g,o al usua-
rio, grupo o resto respectivamente, un + para agregar el permiso y un para
quitarlo y "r", "w", "x" o "s" (este ltimo para el SetUserId) para el permiso en
concreto. Por ejemplo, chmod go +r mountfs concedera el permiso de lectura
al grupo y los otros usuarios para el archivo mountnfs. Para cambiar el pro-
pietario de un fichero, se utiliza la orden chown
1
, y para cambiar el grupo de
un archivo se puede utilizar la orden chgrp. Los permisos por defecto para los
archivos se pueden definir con el comando umask, con la misma notacin que
para la primera forma del chmod pero complementado (es decir, si queremos
rw-r- -r-- el valor debera ser 133).
2.6. Manipulacin, patrones, bsquedas y contenidos
La orden rm permite eliminar los archivos y para eliminar un directorio pode-
mos utilizar la orden rmdir, aunque slo lo borrar cuando ste est vaco (si
quisiramos borrar completamente un directorio y todo su contenido, podra-
mos utilizar rm -r que funciona de modo recursivo). Para copiar archivos de
un lugar a otro tenemos la orden cp, indicando el fichero o directorio origen y
el lugar o nombre de destino, aunque sea en el directorio actual (si queremos
mover archivo/directorio, se puede utilizar el comando mv).
(1)
Comando que slo puede utili-
zar el root, ya que un usuario po-
dra hacer una accin maliciosa y
luego cambiar el dueo del archi-
vo responsabilizando a otro usua-
rio de la accin realizada.
GNUFDL PID_00167540 22 Nivel usuario
Podemos utilizar modificadores en los nombres de los archivos/directorios co-
mo por ejemplo "*", para referirse a cualquier cadena y "?" para indicar un
carcter cualquiera. Por ejemplo, si queremos listar todos los archivos que co-
miencen por a y terminen por x ser ls a*x, pero si queremos listar todos los
archivos de tres letras que comiencen por a y terminen por x, ser ls a?x. Se
puede utilizar "[]" para una seleccin de caracteres, por ejemplo ls [Yy]* indica-
ra todos los archivos que comiencen por Y o por y, y despus cualquier cosa, y
podemos agregar tambin "!" que significa la negacin de lo indicado [! Yy] es
decir, que no comiencen por Y/y. Finalmente, para facilitar ciertas bsquedas,
dentro de "[]" podemos especificar clases de caracteres como [:clase:], en que
la clase puede ser cualquiera de:
alnum [A-Za-z0-9] alpha [A-Za-z]
blank [\] cntrl caracteres de control
digit [0-9A-Fae-f] graph caracteres imprimibles (sin espacios)
lower [a-z] print caracteres imprimibles (con espacios)
punct [.,!?:;] ... space []
upper [A-Z] xdigit [0-9A-Fa-f]
Otro tipo de operacin muy til es la bsqueda de archivos. Existen varias
rdenes para hacer bsquedas de diferentes tipos: find es la orden ms ver-
stil buscar informacin sobre los archivos/directorios (por nombre, tamao,
fecha, protecciones, etc.), locate permite utilizar una base de datos del sistema
para hacer bsquedas ms rpidas que el find pero se debe tener en cuenta
que puede dar informacin no actualizada (y que se puede actualizar con up-
datedb), y whereis indica dnde se encuentra el archivo especificado.
Como los archivos pueden ser de muchos tipos (ejecutables, texto, datos, m-
sica, etc.) en los sistemas *nix no se utiliza la extensin para identificar el tipo
de archivo sino un nmero interno en la cabecera del archivo llamado magic
number, que determina el tipo de archivo segn sus datos (se puede utilizar
la orden file para leer y determinar el tipo de archivo). Si necesitamos ver el
contenido de un archivo, una de las rdenes bsicas es cat, o more si el archivo
es Ascii y lo mostrar paginado. Si hacemos un cat de un archivo ejecutable
algunos de los caracteres pueden desconfigurar el terminal y se puede reinicia-
lizar con la orden reset y clear para borrar la pantalla. La orden less nos per-
mite movernos de forma ms eficiente (adelante y atrs por el archivo). Si el
archivo es binario y queremos ver qu contiene, podemos utilizar las rdenes
hexdump para ver el contenido de forma hexadecimal o strings para buscar
las cadenas de caracteres. Con la orden grep le podemos pasar como segundo
parmetro el nombre del archivo y como primero, el patrn que queramos
buscar (con base en la sintaxis que hemos visto anteriormente, extendida a
otras opciones). Adems, la orden nos permite mltiples acciones ms, como
contar el nmero de lneas en las que aparece el patrn (parmetro -c), etc.
Con cut podemos separar en campos el contenido de cada lnea del fichero es-
pecificando qu carcter es el separador, muy til en tareas de administracin.
Tambin podemos visualizar un determinado nmero de lneas del comienzo
Nota
* cualquier cosa
? un carcter
[Yy] uno u otro
[A-Z] un rango
[:clase:] una clase
GNUFDL PID_00167540 23 Nivel usuario
o del final de un archivo con las rdenes head y tail, respectivamente, y con
wc podemos contar el nmero de lneas o palabras, la mxima longitud de
lnea de un fichero, etc. Finalmente, para comparar diferentes archivos existen
varias rdenes para hacerlo: diff, cmp y comm hacen comparaciones de dife-
rentes maneras y mtodos en los ficheros que indicamos o sdiff, que adems
permite mezclar los datos de acuerdo a los parmetros indicados.
2.7. Procesos
Como hemos dicho en la introduccin, los *nix son sistemas operativos mul-
titareas que ejecutan procesos e hilos (threads) mediante una tcnica llamada
multiprogramacin, que permite ejecutar ms de un proceso/hilo a la vez en
forma concurrente y de forma ms eficiente que si lo ejecutramos en forma
secuencial, ya que se puede solapar la ejecucin de entrada/salida de un pro-
ceso con la ejecucin en CPU de otro proceso. Para identificar de manera ine-
quvoca cada proceso, el ncleo del sistema les asigna un nmero denominado
PID (process identification) necesario para administrar y referenciar el proceso.
Para saber qu procesos se estn ejecutando, podemos utilizar la orden ps.
Otro comando interesante para mirar la ejecucin interactiva de los procesos
es top, que mostrar la carga y estado de sistema en forma dinmica (hacer q
-quit- para salir del comando).
Adems de esto, podemos enviar unas seales a los procesos a fin de informar-
les de algn evento, los podemos sacar de la cola de ejecucin, eliminarlos,
darles ms prioridad, etc. Saber manipular correctamente todos estos aspectos
tambin es muy importante, ya que nos permitir utilizar nuestro ordenador
de manera ms eficiente. La orden kill nos permite enviar seales a los proce-
sos que nos interesen.
Orden ps
Por ejemplo, ps -edaf muestra
un conjunto de informacin
sobre todos los procesos en
ejecucin y en diferentes esta-
dos.
En general, todos los programas se disean para que puedan recibir este tipo
de seales (incluso los scripts pueden capturar las seales). De este modo, se-
gn el tipo de seal recibida saben que deben hacer unas operaciones u otras
(por ejemplo, suspender la ejecucin cuando un usuario hace un Crtl-d). Para
ver los tipos de seales, consultar el man kill. killall es una orden para ha-
cer lo mismo, pero utiliza el nombre del proceso en lugar del pid, y skill es
similar, pero con una sintaxis diferente: por ejemplo, para detener todas las
ejecuciones de un usuario determinado, podramos utilizar skill -STOP -u login,
con lo que se terminar la ejecucin de los procesos de este usuario. Adems
de Crtl-d o Crtl-c para finalizar un proceso (la primera es con espera hasta que
el proceso termine su E/S y la segunda es en el momento que la recibe), con
Ctrl-z podemos interrumpir un programa y revivirlo con fg.
La orden pstree permite ver esta jerarqua de manera grfica, y veremos que
el padre de todos los procesos es un llamado init, ya que es el proceso inicial
para poner en marcha los restantes procesos del sistema, y a partir de este
nacen todos los dems, que a su vez pueden tener ms hijos. Esta estructura es
Kill
Por ejemplo, con la seal
TERM que es 15 si hacemos
kill -15 PID, que es equivalen-
te a hacer Crtl-C en un proce-
so interactivo sobre un termi-
nal, indicamos al proceso que
queremos que acabe, de ma-
nera que al recibir la seal de-
ber guardar todo lo necesa-
rio y terminar su ejecucin, si
el programa no est preparado
para recibir este tipo de seal,
podemos utilizar la -9 (que to-
dos los procesos la obedecen)
y termina independientemente
de lo que estn haciendo kill -9
PID.
GNUFDL PID_00167540 24 Nivel usuario
muy til para identificar de donde vienen los procesos (quien los ha puesto en
marcha) y para eliminar un conjunto de ellos, ya que, al eliminar un proceso
padre tambin se eliminan todos sus hijos.
Un parmetro importante de los procesos es un valor llamado prioridad, que
est relacionado a la CPU que recibirn este proceso (a mayor prioridad mayor
tiempo de CPU). El rango de prioridades va desde el -20 al 19 (las negativas slo
las puede utilizar el root), de mayor a menor. Para lanzar un proceso con una
prioridad determinada, podemos utilizar la orden nice y renice si queremos
dar una prioridad diferente a un proceso que ya est en ejecucin. Por defecto,
la prioridad con que ejecutan los programas es la 0. La orden time permite
calcular el tiempo que utiliza un proceso para ejecutarse (generalmente con
fines contables, por ejemplo si tenemos que facturar por el tiempo de CPU
que gasta un proceso).
2.8. rdenes complementarias
Nota
rdenes para procesos:
kill -9 <pid>
skill -STOP -u <login>
ps -edaf
top
pstree
nice [-n increment] <or-
den>
Todas las rdenes disponen en Gnu/Linux (y en todo los *nix) de un manual
completo que indica todos los parmetros y opciones (man orden) y se utiliza
el comando less para visualizarlas, es por ello que podemos ir adelante y atrs
con las teclas de "AvPg" y "RePg", buscar una palabra con el carcter "/" se-
guido de la palabra ("n" nos sirve para buscar las ocurrencias siguientes y "N",
para las anteriores), "q" para salir, etc. Los manuales del sistema se dividen en
diferentes secciones segn su naturaleza:
1) Programas ejecutables (aplicaciones, rdenes, etc.).
2) Llamadas al sistema proporcionadas por el shell.
3) Llamadas a libreras del sistema.
4) Archivos especiales (generalmente los de dispositivo).
5) Formato de los archivos de configuracin.
6) Juegos.
7) Paquetes de macro.
8) rdenes de administracin del sistema (generalmente aquellas que slo el
root puede utilizar).
9) Rutinas del ncleo.
Si hay ms de un manual disponible para una misma palabra, lo podemos
especificar indicando el nmero correspondiente de la seccin que nos inte-
resa antes de la palabra, por ejemplo man 3 printf (man -k palabra buscar
entre las pginas del manual aquellas que tengan la "palabra" pasada como
argumento, equivalente al apropos y mandb permitir actualizar la base de
Nota
rdenes complementarias:
a) Manuales:
man <comando>
man -k <palabra>
b) Comprimir:
tar cvf <destino> <origen>
tar zcvf <destino> <origen>
gzip <file>
bzip <file>
c) Espacio de disco:
df -k
du -k <directorio/file>
d) Parametros de sistema ar-
chivos:
dumpe2fs <particin>
e) Sincronizar sistema de ar-
chivo:
sync
GNUFDL PID_00167540 25 Nivel usuario
datos de los manuales). Si el manual no nos proporciona toda la informacin
que necesitamos, podemos utilizar el comando info, que es lo mismo que el
manual pero con informacin extendida.
Otra orden til es la utilizada para comprimir un archivo, agrupar varios en
uno solo o ver qu contiene un archivo comprimido. Si bien existen decenas
de programas diferentes en todos los sistemas GNU/Linux encontraremos la
orden tar. Este programa nos permite manipular de cualquier manera uno o
varios archivos para comprimirlos, agruparlos, etc. Su sintaxis es tar opciones
archivoDestino archivosOrigen, donde si el archivo origen es un carpeta tra-
bajar en forma recursiva sobre ella guardando en el archivo destino el con-
tenido de toda la carpeta. Los parmetros comunes son c para crear y f si lo
queremos guardar en un archivo (tar cf archivol.tar o* empaquetar todos los
archivos del directorio actual que comiencen por "o"). Si adems quisiramos
comprimir, podramos utilizar czf, con lo cual se utilizara el programa gzip
despus de empaquetarlos. Para desempaquetar un archivo determinado, el
parmetro necesario es el x, de manera que deberamos escribir tar xf para in-
dicar el archivo empaquetado. Si estuviera comprimido, deberamos pasar xzf.
El programa gzip (utilizado por el tar para comprimir) usa un formato de com-
presin propio y diferente del zip tan popular o del compress (estndar en
los *nix pero obsoleto) y que se puede utilizar para comprimir un archivo en
forma independiente (gunzip para hacer el proceso inverso o gzip -u). Otra
aplicacin de compresin bastante utilizada y que proporciona muy buenos
resultados es el bzip2.
La gestin y manipulacin de los discos duros del ordenador es otro aspecto
fundamental en las tareas de administracin del sistema. Ms adelante se ver
todo un apartado para discos, pero ahora trataremos las rdenes tiles para
obtener informacin de los discos. El disco duro se divide en particiones, a las
que podemos acceder como si se tratara de un dispositivo independiente, y
las denominaremos unidad. Esto es muy til porque nos permite separar de
forma adecuada la informacin que tengamos en el sistema, tener ms de un
sistema operativo instalado en el mismo disco, etc. La orden df nos mostrar,
de cada unidad montada en el sistema, el espacio que se ha utilizado y lo que
queda libre y la orden du nos muestra realmente lo que nos ocupa un fichero
en disco o un directorio (estos nos mostrar en bloques de discos pero con el
parmetro -k en kilobytes).
Un disco est organizado en pistas y dentro de las pistas en sectores (zonas
donde se guardar la informacin) y como este ltimo valor es configurable,
cuando se crea el sistema de archivo con fines de optimizar las prestaciones
de disco/espacio utilizado nos puede interesar ver estos parmetros (para sis-
temas ext2/3/4), por lo que podemos utilizar la orden dumpe2fs particin y
averiguar los parmetros con los cuales ha sido creado el disco.
GNUFDL PID_00167540 26 Nivel usuario
Otro concepto muy extendido es la desfragmentacin de un disco que no es
ms que la reorganizacin de los bloques de los ficheros para que queden en
lugares consecutivos y su acceso sea ms rpido. En los sistemas de ficheros que
utilizamos con GNU/Linux no es necesario desfragmentar los discos (aunque
hay programas con este fin), ya que el sistema se encarga automticamente de
tener el disco siempre desfragmentado, y adems, en el proceso de arranque
siempre se comprueban los errores y se realiza una desfragmentacin total si
es necesaria.
La optimizacin del sistema de archivos de GNU/Linux proviene de que to-
das las funciones del ncleo que se encargan de la gestin de ficheros utilizan
unos mtodos para agilizar los procesos de lectura y escritura. Uno de ellos es
la utilizacin de una cach de disco para evitar estar constantemente leyendo
y escribiendo en el disco fsico (proceso lento y costoso). Esto puede represen-
tar problemas si tenemos un corte de alimentacin, ya que las ltimas opera-
ciones de lectura/escritura no se habrn salvado por estar en memoria. El pro-
grama fsck comprueba y arregla un sistema de ficheros que haya quedado en
este estado. Aunque lo podemos ejecutar cuando se desee, el mismo sistema
operativo lo ejecuta cuando en el proceso de arranque detecta que el sistema
no se cerr adecuadamente. Por eso, para apagar el ordenador correctamente
debemos ejecutar la orden shutdown, que se encarga de lanzar todos los pro-
cesos necesarios para que los programas terminen, se desmonte el sistema de
ficheros, etc. En este sentido, el sistema de ficheros ext3/4 es ms eficaz que
el ext2, ya que el journaling le permite recuperar ms informacin de los ar-
chivos perdidos y en forma ms eficiente (la integridad fsica de una particin
se puede comprobar con la orden badblocks). Si bien no es aconsejable, se
puede desactivar la cach de disco y si queremos en algn momento volcar de
cach a disco, para evitar problemas podemos ejecutar la orden sync.
Se debe tener en cuenta que la mayora de las rdenes mencionadas se deben
ejecutar como root (o algunos de los usuarios que formen parte del grupo de
root).
GNUFDL PID_00167540 27 Nivel usuario
3. Instalacin y arranque de GNU/Linux (conceptos
bsicos)
En este apartado veremos los pasos esenciales que se siguen en la mayora
de los procesos de instalacin de GNU/Linux y que sern complementados
posteriormente con los talleres de instalacin. Si bien cada distribucin tie-
ne su propio entorno de instalacin, en todas ellas hay unos pasos bsicos
para instalar el sistema operativo y que se describirn de modo resumido. Es
importante notar que hoy en da cualquiera de las distribuciones tiene una
instalacin muy optimizada que necesita muy poca atencin del usuario, ya
que obtiene informacin del hardware subyacente, por lo cual, generalmente,
para un usuario novel no es necesario tomar decisiones importantes (distribu-
ciones como Ubuntu o Fedora, por ejemplo, son prcticamente instalaciones
automticas).
Tambin debemos tener en cuenta que un usuario novel puede iniciar su ca-
mino en el mundo Linux con otro tipo de ejecuciones de GNU/Linux que no
modifican el ordenador y permiten trabajar en el sistema operativo sin tener
que instalar otro. Es altamente recomendable iniciar los primeros pasos sobre
un GNU/Linux Live: el usuario debe bajarse la imagen del sistema operativo,
crear un CD/DVD con ella y arrancar desde este dispositivo sin tocar el dis-
co duro de la mquina. Este tipo de distribuciones (es recomendable utilizar
Knoppix por su eficiencia y versatilidad en sus versiones para CD, DVD o USB)
tienen el "inconveniente" de que para salvar el trabajo del usuario se debe ha-
cer sobre un dispositivo de disco USB, ya que si se salva sobre el sistema de
archivo, al estar ste en RAM se perdern los datos salvados.
Otra opcin totalmente recomendable como primeros pasos (o como forma
de trabajo habitual) sin tener que tocar el sistema operativo de una mquina es
trabajar con mquina virtualizadas. Para ello, se recomienda utilizar Virtual-
Box, que permite arrancar una imagen o instalar una sobre un sistema opera-
tivo husped (host), tanto en 32 bits como en 64 bits es altamente configura-
ble y si no se desea hacer una instalacin se puede encontrar gran cantidad
de distribuciones con sus imgenes ya realizadas, como por ejemplo en http:/
/virtualboxes.org/images/, que cuenta con aproximadamente 30 distribucio-
nes de Linux y 15 distribuciones de otros sistemas *nix o incluso Android o
sistemas no *nix.
Es importante que antes de instalar un nuevo sistema conozcamos adecuada-
mente los componentes hardware que tenemos instalados en nuestro ordena-
dor para poder configurarlo adecuadamente, aunque la distribucin que uti-
lizamos incorpore deteccin de hardware. Es posible que en un solo disco du-
ro tengamos instalados dos sistemas operativos (dualboot) o ms, totalmente
Nota
VirtualBox permite arrancar
una imagen o instalar un SO
sobre otro SO husped (host)
tanto en 32 bits como en 64.
Si no se desea hacer una ins-
talacin desde 0 se puede en-
contrar gran cantidad de dis-
tribuciones con sus imgenes
ya realizadas, como por ejem-
plo en http://virtualboxes.org/
images/
GNUFDL PID_00167540 28 Nivel usuario
independientes, y si bien el proceso de instalacin de otro sistema operativo
en el mismo disco no debera interferir con las particiones de los dems, es
aconsejable hacer copias de seguridad de todos los documentos importantes.
Es necesario, antes de comenzar, tener informacin de la marca y el modelo de
la tarjeta grfica, la de sonido, la de red, la marca, el tipo y las caractersticas del
monitor, as como cualquier otro hardware especial que tengamos (el resto del
hardware ser detectado por el sistema: placa base, la CPU y la memoria RAM).
Generalmente, todas las distribuciones de GNU/Linux proporcionan al-
gn tipo de medio para el arranque del proceso de instalacin, siendo
el ms comn tener un CD o DVD de arranque, para lo cual es necesa-
rio configurar la BIOS para que pueda arrancar (boot) desde CD/DVD.
La instalaciones son autoguiadas y es importante prestar atencin a la
seleccin del idioma y del teclado para evitar problemas desde el inicio
(si bien se podr configurar posteriormente).
Para usuarios ya avanzados, existe alguna otra forma de instalar GNU/
Linux que permite hacer la instalacin desde cualquier medio: FTP,
HTTP, disco duro, NFS, USB, pero es recomendable no utilizarlas como
primera experiencia.
La particin del disco duro es una de las partes ms crticas de todo el proceso,
ya que significa dividir el disco duro en varias secciones que sern considera-
das independientes. Si ya tenemos un sistema operativo instalado en nuestro
ordenador, el disco estar particionado en una o varias particiones, pero si el
disco es nuevo, tendr una nica particin. Para instalar GNU/Linux debemos
disponer, al menos, de una particin para uso propio (si bien es posible ins-
talarlo sobre otros sistemas de archivos, no es recomendable esta opcin por
cuestiones de rendimiento y fiabilidad) y otra ms pequea para una exten-
sin de la memoria RAM del ordenador llamada particin de SWAP (general-
mente del doble de la memoria RAM instalada).
El procedimiento ms comn para reducir, crear o cambiar el tamao de las
particiones es utilizar herramientas como las disponibles en Windows Vista, 7
(administracin de Discos o la aplicacin fips con licencia GPL y para sistemas
FAT) o en cualquier Linux Live. Se puede utilizar gparted para modificar el
tamao de una particin ya creada sin perder el contenido de la misma (si bien
se recomienda hacer copias de seguridad de los archivos ms importantes).
El procedimiento recomendable es arrancar con una Linux Live y utilizar el
comando gparted, que es muy eficiente y seguro.
Como primer paso es recomendable que GNU/Linux utilice dos particiones en
el disco duro (una para el sistema de ficheros y la otra para la swap). Si bien
todas las distribuciones tienen un particionamiento guiado, se puede hacer en
forma manual con diferentes utilidades (fdisk, cfdisk, diskDruid, etc). La forma
Nota
La informacin de particiones
y el programa de carga de un
sistema operativo se guardan
en una zona de datos reserva-
da llamada MBR (master boot
record) sobre el primer disco.
GNUFDL PID_00167540 29 Nivel usuario
en que GNU/Linux identifica los discos es con /dev/hdX para los discos IDE y
/dev/sdX para los SCSI y Serial ATA, en los cuales X es una letra, correspondiente
al disco al que nos queramos referir: /dev/hda es el maestro del primer canal
IDE, /dev/hdb el segundo y as sucesivamente (o /dev/sda el primer disco SCSI
o SATA y /dev/sdb el segundo, etc.). La aplicacin de instalacin nos har un
listado de los discos y deberemos escoger sobre cual de ellos queremos realizar
la instalacin.
Cuando creamos una particin podremos escoger entre primaria o lgica. En
un disco duro podemos tener hasta 4 particiones primarias y hasta 64 lgicas.
Si no necesitamos ms de 4 particiones, podemos elegir cualquiera de los dos
tipos. Si necesitamos ms, deberemos tener en cuenta que las lgicas se sitan
dentro de una primaria (hasta un mximo de 16 para cada una), de manera
que no podemos tener 4 particiones primarias creadas y luego aadir otras
lgicas. En este caso, deberamos crear 3 de primarias y hasta 16 lgicas en la
cuarta particin primaria.
Cuando se crea una particin se debe indicar qu sistema de ficheros utilizar
(Linux ext3, Linux ext4, Linux swap u otro) y una vez hechas las particiones,
guardaremos la configuracin y tenemos que indicar al proceso de instalacin
dnde queremos situar la raz del sistema de ficheros (root filesystem) y el swap
del sistema, a partir de este momento se podr continuar con la instalacin
del mismo.
Una parte importante de la instalacin son los mdulos del ncleo que son
partes de software especializadas que trabajan con alguna parte del hardware
o del sistema. En las distribuciones actuales simplemente se debe seleccionar
que dispositivo se tiene (monitor, red, sonido grficos) y la instalacin carga-
r prcticamente todos los mdulos necesarios aunque en la mayora tienen
procesos de autodeteccin, por lo cual no ser necesario seleccionar prctica-
mente nada. Si algn mdulo no se incluye durante la instalacin, es posible
hacerlo luego con comandos como insmod o modprobe (para aadir un nuevo
mdulo), lsmod (para hacer una lista de los instalados), rmmod (para eliminar
alguno) y tambin modprobe (para probar alguno y, si funciona correctamen-
te, incluirlo en el ncleo). Todos estos mdulos son ficheros binarios que so-
lemos encontrar en el directorio /lib/modules/versin-del-operativo/ del sistema.
Despus de configurar los mdulos que se incluirn en el ncleo del sistema
operativo, tendremos que configurar la red (si tenemos la tarjeta necesaria).
Aunque en este documento no entraremos en detalle sobre redes, describire-
mos los conceptos necesarios para poder dar este paso de forma bsica. El pri-
mer dato que solicitar la instalacin es el nombre del sistema (para referirnos
a l de forma amigable) y a continuacin pedir si en nuestra red utilizamos
un mecanismo llamado DHCP (consiste en tener un servidor especial que se
encarga de asignar automticamente las IP a los ordenadores que arrancan). Si
utilizamos este mecanismo, debemos indicarlo, y si no, se nos preguntar por
la IP (cuatro nmeros separados por punto entre 0 y 255) y mscara de nuestro
Nota
De todas las particiones de un
disco duro podemos elegir una
para que sea la activa. Este flag
sirve para indicar a la BIOS o al
EFI del sistema (sistema de ini-
cializacin y carga del sistema
operativo) cul es la particin
que debe iniciar si en el MBR
no encuentra ningn progra-
ma de arranque.
GNUFDL PID_00167540 30 Nivel usuario
ordenador (cuatro nmeros entre 0-255 siendo comn utilizar 255.255.0.0).
Si no conocemos estos datos, debemos dirigirnos al administrador de nuestra
red. Seguidamente deberemos introducir la IP del gateway de nuestra red (ga-
teway es el dispositivo u ordenador que acta de puente entre nuestra red local
e Internet y si no tenemos ningn dispositivo de este tipo, podemos dejar en
blanco este campo).
A continuacin, debemos especificar el servidor (o servidores) de nombres que
utilizamos llamado DNS, que es una mquina que nos proporciona la equiva-
lencia entre un nombre y una direccin IP (es decir, nos permitir conocer
por ejemplo la IP de www.uoc.es en forma transparente). Si no sabemos cules
son, deberemos recurrir al administrador de la red.
Si estamos en una red local podemos consultar al administrador para que nos
proporcione toda la informacin necesaria o, si tenemos otro sistema operati-
vo instalado en el ordenador, podremos obtener esta informacin de l, pero
en ningn caso debemos inventar estos valores, ya que si el ordenador est
conectado a una red local puede generar problemas a otros ordenadores.
Una vez configurados estos aspectos, deberemos seleccionar si queremos ins-
talar un pequeo programa en el disco duro para que en el proceso de arran-
que del ordenador podamos elegir qu sistema operativo de los que tenemos
instalados queremos arrancar (incluso si slo hemos instalado GNU/Linux).
Las aplicaciones ms usuales son el Lilo (Linux loader) o el Grub (recomenda-
do) (GNU, Grand Unified Bootloader), que tienen por objetivo iniciar el proceso
de carga y ejecucin del ncleo del sistema operativo que le indiquemos inte-
ractivamente o por defecto despus de un tiempo de espera. Todas las distri-
buciones (si no hay problemas) detectan si tenemos algn otro sistema opera-
tivo instalado en los discos duros y configuran automticamente el sistema de
arranque. Este programa generalmente se instala en la MBR del disco maestro
del primer canal IDE o SCSI, que es el primer lugar que la BIOS o EFI del orde-
nador inspecciona buscando un programa de estas caractersticas.
El ltimo paso en la instalacin es la seleccin de paquetes a instalar adems
de los estrictamente necesarios para el funcionamiento bsico del sistema ope-
rativo. La mayora de los procesos de instalacin incluyen dos formas de se-
leccionar los programas del sistema: bsico o experto. Con el proceso de selec-
cin bsico, se agrupan los paquetes disponibles para grandes grupos de pro-
gramas: administracin, desarrollo de software, ofimtica, matemticas, etc.
opcin recomendable para dar los primeros pasos. Si no seleccionamos un pa-
quete luego se podr hacer una instalacin posterior con la herramienta de que
disponen todas las distribuciones para instalar o desinstalar paquetes. Debian
GNU/Linux fue una de las primeras en incluir aplicaciones para gestionar los
paquetes, se llama apt y es muy til para hacer el mantenimiento y actualiza-
cin de todos los paquetes instalados incluso en el mismo sistema operativo.
Nota
Una direccin IP es la identifi-
cacin de un ordenador den-
tro de una red cuando utiliza-
mos el protocolo TCP/IP (pro-
tocolo utilizado en Internet).
GNUFDL PID_00167540 31 Nivel usuario
Si la instalacin no ha funcionado correctamente, puede pasar que no poda-
mos arrancar ninguno de los sistemas operativos instalados (ni el nuevo ni
el anterior), pero todas las distribuciones tienen un apartado en el arranque
de "rescate" (rescue mode), que nos permitir arrancar el sistema GNU/Linux
desde el CD/DVD, acceder al disco duro y arreglar aquellas cosas que no han
funcionado o recuperar el sistema operativo inicial, si bien para algunos casos
son necesarios una serie de conocimientos avanzados en funcin de cul haya
sido la causa de error.
GNUFDL PID_00167540 32 Nivel usuario
4. Configuraciones bsicas
4.1. El sistema de login
Tanto en modo grfico como en modo texto, el procedimiento de iden-
tificacin y entrada se denomina login. Generalmente, el sistema arran-
car en modo grfico, pero podemos pasar a modo texto seleccionando
el tipo de sesin en el panel de entrada o con Crtl-Alt-Backspace (termi-
nando la ejecucin del servidor grfico).
En modo texto se lanzan 5 terminales independientes, a las que se puede ac-
ceder mediante Alt-F1, Alt-F2, etc., que permitir trabajar simultneamente
con diferentes cuentas al mismo tiempo. El proceso de login pone en pantalla,
primero, un mensaje que se puede modificar desde el archivo /etc/issue y que
admite diferentes variables (\d fecha actual, \s nombre del SO, \t hora actual,
etc.) y en segundo lugar el mensaje del da desde /etc/motd (creando un fichero
vaco llamado .hushlogin, en su directorio home se anula este mensaje). A con-
tinuacin el proceso de login lanza el shell por defecto para el usuario (indicado
en el ltimo campo de /etc/passwd).
El shell ejecuta el archivo .profile del directorio home del usuario para las op-
ciones por defecto de este mismo usuario y se complementa con el /etc/profile,
que configura opciones por defecto para todos los usuarios. Cada shell adems
posee archivos de configuracin propios, como por ejemplo el shell Bash, y
ejecuta adems dos ficheros ms llamados .bashprofile (que se ejecuta en cada
login) y .bashrc (que se ejecuta cada vez que abrimos un nuevo terminal). Ve-
remos algunas de las instrucciones que podemos encontrar en estos archivos:
# ~/.profile: ejecutado por el shell durante el login
# No ser ledo por bash si existe ~/.bash_profile o ~/.bash_login
# Ver ejemplos en /usr/share/doc/bash/examples/startup-files
# EL valor por defecto de umask
umask 022
# Si est ejecutando bash ejecuta .bashrc si existe
if [ -n "$BASH_VERSION" ]; then
if [ -f "$HOME/.bashrc" ]; then
. "$HOME/.bashrc"
fi
GNUFDL PID_00167540 33 Nivel usuario
fi
# Incluye en PATH un directorio bin del usuario
if [ -d "$HOME/bin" ] ; then
PATH="$HOME/bin:$PATH"
fi
# Cambia el prompt
export PS1='\h:\w\$ '
# ~/.bashrc: ejecutado por bash(1) para non-login shells.
# Si no se ejecuta interactivamente no hace nada.
[ -z "$PS1" ] && return
# Habilita el soporte de color para el comando ls
if [ -x /usr/bin/dircolors ]; then
eval "`dircolors -b`"
alias ls='ls --color=auto'
alias dir='dir --color=auto'
fi
# otros alias
alias ll='ls -l'
# habilita programmable completion features
if [ -f /etc/bash_completion ]; then
. /etc/bash_completion
fi
Como se puede observar en estos ficheros (que son un ejemplo de shell script
y que veremos ms adelante), se incluyen diferentes definiciones de variables
(PATH, por ejemplo, que es la variable donde se buscarn los programas para
su ejecucin sin tener que incluir todo el camino; PS1, que es la variable que
almacena el prompt, que es el carcter que sale a la izquierda de la lnea de
comando acabado en $ o % para el usuario normal y en # para el root). Tam-
bin tenemos alias de rdenes o ejecucin condicional de otros archivos (en
el primero si se est ejecutando el bash, ejecuta el $HOME/.bashrc). Si se quiere
ejecutar programas del directorio desde el que estamos situados sin necesidad
de poner "./" al principio, podramos aadir esta entrada en la declaracin del
PATH, pero generalmente no se incluye, ya que puede representar un agujero
de seguridad. Para el prompt hemos utilizado la orden export para definir las
llamadas variables de entorno, que se mantienen durante toda la sesin y se
pueden consultar con la misma orden.
Con set y unset tambin podemos inicializar o quitar otras variables/atributos
representados por defecto (con echo $variable podremos consultar el valor
de cada variable). Algunas de bash son:
GNUFDL PID_00167540 34 Nivel usuario
PWD: directorio actual.
LOGNAME: nombre del usuario conectado.
BASH_VERSION: versin del bash que utilizamos.
SHELL: Shell utilizado.
RANDOM: genera un nmero aleatorio diferente cada vez que mostramos su
contenido.
SECONDS: nmero de segundos que han pasado desde que hemos abierto el
shell.
HOSTNAME: nombre del sistema.
OSTYPE: tipo de sistema operativo que estamos utilizando.
MACHTYPE: arquitectura del ordenador.
HOME: directorio home del usuario.
HISTFILESIZE: tamao de archivo de historia (nmero de rdenes que se guar-
dan).
HISTCMD: nmero de orden actual en la historia.
HISTFILE: fichero en el que se guarda la historia de rdenes.
La configuracin adicional del login grfico se realizar por medio del entorno
grfico y depender del tipo de entorno.
4.2. El intrprete de comandos (shell)
Como ya hemos avanzado, el trmino genrico shell se utiliza para denominar
un programa que sirve de interfaz entre el usuario y el ncleo (kernel) del sis-
tema GNU/Linux. En este apartado veremos alguna caractersticas bsicas de
los shells interactivos de texto, que es el programa que ver el usuario (y lo
atender) una vez realizado el procedimiento de login.
El shell es lo que los usuarios ven del sistema, ya que el resto del sistema ope-
rativo permanece esencialmente oculto a sus ojos. El shell est escrito de la
misma forma que un proceso (programa) de usuario; no est integrado en el
kernel y se ejecuta como un programa ms del usuario.
GNUFDL PID_00167540 35 Nivel usuario
Cuando el sistema GNU/Linux arranca, suele presentar a los usuarios una in-
terfaz de entrada que puede ser grfica o en modo texto. Estas diferentes en-
tradas dependern de los modos (o niveles) de arranque del sistema (runlevels),
que permitir configurar los modos de arranque del sistema operativo.
La siguiente figura muestra el arranque shell en modo texto y los procesos de
sistema involucrados (OKe).
En el modo de arranque grfico, la interfaz est compuesta por algn gestor de
acceso que administra el proceso de login del usuario desde una pantalla (cara-
tula) grfica, en la que se solicita la informacin de entrada correspondiente:
su identificador como usuario y su palabra de paso (o passsword). En GNU/Li-
nux suelen ser habituales los gestores de acceso: xdm (propio de X Window),
gdm (Gnome) y kdm (KDE), as como algn otro asociado a diferentes gestores
de ventanas (window managers) como muestra la figura siguiente:
Una vez validado el acceso, el usuario encontrar una interfaz grfica de X
Window con algn gestor de ventanas, como Gnome o KDE (ver ltimo punto
del captulo). Desde el modo grfico tambin es posible "interactuar" con el
sistema a travs de un entorno de trabajo en modo texto simplemente abrien-
do un "emulador de terminal" o simplemente terminal (p. ej., Xterm) desde
los mens de la interfaz grfica (en Gnome Aplicaciones Accesorios
Terminal).
GNUFDL PID_00167540 36 Nivel usuario
Si el acceso es por modo texto (llamado tambin modo consola) y una vez
identificados obtendremos el acceso al shell en forma interactiva (se puede pa-
sar del modo grfico al texto con Crtl+Alt+F1 a F5, que permitir tener 5 con-
solas diferentes y volver con Crtl+Alt+F7). Otra forma de trabajo con un shell
interactivo es a travs de una conexin remota desde otra mquina conectada
mediante red y con aplicaciones tales como telnet o rlogin (poco utilizadas
por inseguras), ssh, o grficas como los emuladores X Window.
Una vez iniciado el shell interactivo [Qui01], se muestra un prompt (smbolo
o secuencia de caracteres como $, %, # utilizado generalmente para identifi-
car el usuario root o tambin algo configurable por el usuario como MySys)
indicndole al usuario que puede introducir una lnea de comando. Tras la
introduccin, el shell asume la responsabilidad de validar la sintaxis y poner
los procesos necesarios en ejecucin, mediante una serie de secuencias/fases:
1) Leer e interpretar la lnea de comandos.
2) Evaluar los caracteres "comodn" como $ * ? u otros.
3) Gestionar las redirecciones de E/S necesarias, los pipes y los procesos en
segundo plano (background) necesarios (&).
4) Manejar seales.
5) Preparar la ejecucin de los programas.
Normalmente, las lneas de comandos podrn ser ejecuciones de comandos
del sistema, comandos propios del shell interactivo, puesta en marcha de apli-
caciones o shell scripts (secuencias de comandos, variables, sentencias de con-
trol, etc., que generalmente se encuentran en un archivo ASCII).
Los ficheros de script son directamente ejecutables por el sistema bajo el nom-
bre que se haya dado al fichero. Para ejecutarlos, se invoca el shell junto con
el nombre del fichero, o bien se dan permisos de ejecucin al shell script.
En cierta manera, podemos ver el shell script como cdigo de un lenguaje inter-
pretado que se ejecuta sobre el shell interactivo correspondiente. Para el admi-
nistrador, los shell scripts son muy importantes bsicamente por dos razones:
1) La configuracin del sistema y de la mayora de los servicios proporcionados
se hacen mediante herramientas en forma de shell scripts.
2) La principal forma de automatizar procesos de administracin es mediante
la creacin de shell scripts por parte del administrador.
La figura siguiente muestra el flujo de control bsico de un shell:
GNUFDL PID_00167540 37 Nivel usuario
Todos los programas invocados mediante un shell poseen tres ficheros prede-
finidos, especificados por los correspondientes descriptores de ficheros (file
handles). Por defecto, estos ficheros son:
1) standard input (entrada estndar): normalmente asignada al teclado del
terminal (consola); usa el descriptor nmero 0 (en UNIX los ficheros utilizan
descriptores enteros).
2) standard output (salida estndar): normalmente asignada a la pantalla del
terminal; usa el descriptor 1.
GNUFDL PID_00167540 38 Nivel usuario
3) standard error (salida estndar de errores): normalmente asignada a la pan-
talla del terminal; utiliza el descriptor 2.
Esto nos indica que cualquier programa ejecutado desde el shell tendr por
defecto la entrada asociada al teclado del terminal, su salida hacia la pantalla
y, en el caso de producirse errores, tambin los enva a la pantalla.
Adems, los shells pueden proporcionar tres mecanismos siguientes de gestin
de la E/S:
1) Redireccin: dado que los sistemas *nix tratan de la misma forma a los
dispositivos de E/S y los ficheros, el shell los trata a todos simplemente como
ficheros. Desde el punto de vista del usuario, se pueden reasignar los descrip-
tores de los ficheros para que los flujos de datos de un descriptor vayan a cual-
quier otro descriptor; a esto se le llama redireccin. Por ejemplo, nos referire-
mos a la redireccin de los descriptores 0 o 1 como a la redireccin de la E/S
estndar. Para ello se utilizan los smbolos , por ejemplo ls dir.txt redi-
recciona la salida del comando ls a un fichero llamado dir.txt, que si existe se
borra y guarda la salida del comando y si no, se crea y se guarda la salida. Si
fuera ls dir.txt aade al final si el fichero existe.
2) Tuberas (pipes): la salida estndar de un programa puede usarse como en-
trada estndar de otro por medio de pipes. Varios programas pueden ser conec-
tados entre s mediante pipes para formar lo que se denomina un pipeline. Por
ejemplo ls | sort | more donde la salida del comando ls se ordena (sort) y la
salida de este se muestra por pantalla en forma paginada.
3) Concurrencia de programas de usuario: los usuarios pueden ejecutar va-
rios programas simultneamente, indicando que su ejecucin se va a produ-
cir en segundo plano (background), en trminos opuestos a primer plano (o
foreground), donde se tiene un control exclusivo de pantalla. Otra utilizacin
consiste en permitir trabajos largos en segundo plano cuando interactuamos
el shell con otros programas en primer plano. Por ejemplo, ls dir.txt & se eje-
cutar en background permitiendo al usuario continuar interactuando con el
shell mientras el comando se va ejecutando.
El shell por defecto es el que se indica en el ltimo campo del fichero /etc/
passwd para el usuario y se puede averiguar desde la lnea de comando por el
valor de la variable de entorno con:
echo $SHELL
Algunas consideraciones comunes a todos los shells:
GNUFDL PID_00167540 39 Nivel usuario
Todos permiten la escritura de shell scripts, que son luego interpretados
ejecutndolos bien por el nombre (si el fichero tiene permiso de ejecucin)
o bien pasndolo como parmetro al comando del shell.
Los usuarios del sistema tienen un shell por defecto asociado a ellos. Esta
informacin se proporciona al crear las cuentas de los usuarios. El admi-
nistrador asigna un shell a cada usuario, o bien si no se asigna el shell por
defecto (bash en GNU/Linux). Esta informacin se guarda en el fichero
de /etc/passwd, y puede cambiarse con la orden chsh, esta misma orden
con opcin -l nos lista los shells disponibles en el sistema (o ver tambin
/etc/shells).
Cada shell es en realidad un comando ejecutable, normalmente presente
en los directorios /bin en GNU/Linux (o /usr/bin).
Se pueden escribir shell scripts en cualquiera de ellos, pero ajustndose a
la sintaxis de cada uno, que es normalmente diferente (a veces hay slo
pequeas diferencias). La sintaxis de las construcciones, as como los co-
mandos internos, estn documentados en la pgina man de cada shell (man
bash, por ejemplo).
Cada shell tiene algunos ficheros de arranque asociados (ficheros de ini-
cializacin), cada usuario puede adaptarlos a sus necesidades, incluyendo
cdigo, variables, caminos (path)...
La potencia en la programacin est en combinar la sintaxis de cada shell
(de sus construcciones), con los comandos internos de cada shell, y una
serie de comandos UNIX muy utilizados en los scripts, como por ejemplo
los cut, sort, cat, more, echo, grep, wc, awk, sed, mv, ls, cp...
Si como usuarios estamos utilizando un shell determinado, nada impide
arrancar una copia nueva de shell (lo llamamos subshell), ya sea el mismo u
otro diferente. Sencillamente, lo invocamos por el nombre del ejecutable,
ya sea el sh, bash, csh o ksh. Tambin cuando ejecutamos un shell script se
lanza un subshell con el shell que corresponda para ejecutar el script pedido.
Dada la importancia de los shell scripts en las tareas de administracin de un
sistema *nix, en el captulo siguiente se vern algunos detalles ms sobre el
shell y ejemplos de sintaxis y de programacin.
4.3. El sistema de arranque
Ya hemos visto en el punto anterior la forma de configurar durante la insta-
lacin del arranque del sistema a travs de un gestor como Lilo o Grub (reco-
mendable). Como ya sabemos, a partir de la BIOS o EFI, el ordenador lee el
MBR del primer disco mster y ejecuta el gestor de arranque (si no se encuen-
GNUFDL PID_00167540 40 Nivel usuario
tra este programa, se inspecciona el sector de arranque de la particin activa
del disco) aunque recomendamos instalar grub en el MBR, que es el primer
lugar que se inspecciona.
Grub nos permite mltiples configuraciones, permite tener un pequeo intr-
prete de rdenes al arrancar el ordenador, y acceder a los archivos de las parti-
ciones del disco sin cargar ningn sistema operativo, etc. En este subapartado
slo veremos algunas configuraciones bsicas, pero si se necesitan opciones
avanzadas se puede consultar la documentacin existente en:
http://www.gnu.org/software/grub/manual/grub.html.
Grub se carga en dos fases y durante el procedimiento de instalacin ya se car-
gan dos ficheros correspondientes a cada fase. Si queremos instalar el grub pa-
ra que no nos muestre ningn men para seleccionar el sistema operativo que
queremos cargar, slo tenemos que ejecutar la orden grub y desde el prompt
de ste, ejecutar:
install (hd0, 0)/boot/grub/stage1 d (hd0) (hd0, 0)/boot/grub/stage2
Esta instruccin instala el Grub en el MBR del disco mster y, como podemos
observar, la forma como se refieren los discos difieren a como se hace referencia
en GNU/Linux (o en Lilo). En hdX la X, en lugar de a, b. ..., es 0, 1, ... y para las
particiones tambin se empieza con el nmero 0 para la primera, por lo cual
hda1 ser en grub (hd0, 0). El parmetro d (hd0) indica que la primera fase del
grub se instalar en el MBR del primer disco. La ltima opcin especifica dnde
se sita el fichero para la segunda fase de carga, que es ejecutada por la primera
(otra forma de hacer la instalacin del grub es con la orden grub-install).
El paso de parmetros al ncleo Linux en el momento del arranque es muy
simple. Por ejemplo, pasando single o 1 iniciara el sistema en el runlevel 1,
con root=/dev/hda3 especificaremos la raz del sistema de ficheros, etc. Si bien
se pueden introducir las rdenes interactivamente, durante el arranque es re-
comendable utilizar un archivo de configuracin como (los comentarios em-
piezan por "#"):
# Archivo menu.lst en /boot/grub
# Especificacin del sistema operativo que se carga por defecto
default 0
# Espera de 10 segundos antes de cargar el sistema por defecto
timeout 10
# Configuracin de arranque para un sistema GNU/Linux
title Debian GNU/Linux
kernel (hd0, 0) /vmlinuz root=/dev/hda1
# Configuracin de arranque para un sistema Windows
title Windows
GNUFDL PID_00167540 41 Nivel usuario
root (hd0, 2)
makeactive
Para instalar Grub con este men de arranque, deberamos ejecutar la misma
instruccin que anteriormente, pero aadiendo el parmetro
p (hd0, 0)/boot/grub/menu.lst
Normalmente es la forma habitual de trabajar, por lo cual solo deberemos en-
trar en /boot/grub y modificar este archivo. El archivo de configuracin acepta
varios parmetros, adems de los mencionados, como:
Colores:
color cyan/blue white/blue
Passwd (para evitar que se pueda editar el archivo durante el arranque):
password ['--md5'] passwd
Carga de un kernel especfico con initramfs:
title Debian GNU/Linux, kernel 2.6.26-2-686
root (hd0,0)
kernel /boot/vmlinuz-2.6.26-2-686 root=/dev/hda1 ro quiet
initrd /boot/initrd.img-2.6.26-2-686
Carga de un kernel especfico con initramfs y en modo Single User:
title Debian GNU/Linux, kernel2.6.26-2-686 (single-user mode)
root (hd0,0)
kernel /boot/vmlinuz-2.6.26-2-686 root=/dev/hda1 ro single
initrd /boot/initrd.img-2.6.26-2-686
La carga de un kernel con una imagen llamada initrd hace referencia a un dis-
co RAM (generado con mkinitramfs), que se carga en el momento del arran-
que para acceder a diferentes mdulos que se anexarn al kernel. Este tipo de
configuracin permite tener un kernel general y agregar los dispositivos en el
momento de la carga (mdulos) por lo cual podramos utilizar el kernel en di-
ferentes mquinas y con diferente hardware slo cambiando la imagen de los
mdulos del initrd.
GNUFDL PID_00167540 42 Nivel usuario
4.4. Acceso a particiones y dispositivos
Los sistemas tipo UNIX tratan todos los dispositivos del ordenador como si
fueran archivos. Esto permite total flexibilidad, ya que se pueden aprovechar
todos los mecanismos y las funciones que se utilizan con ficheros para los dis-
positivos. En el directorio /dev/ se tienen todos los dispositivos reconocidos por
el sistema. Si el sistema no reconoce adecuadamente un dispositivo o quere-
mos crear uno especial, se puede utilizar la orden mknod, pero se debe utilizar
con cuidado ya que su mal uso podra daar partes del sistema.
Para las unidades de almacenamiento, el sistema provee comandos como
mount y umount, que sitan (montan) o desmontan todo el sistema de ar-
chivos de un determinado dispositivo/unidad en un directorio existente del
sistema.
La forma bsica de utilizar el orden es mount dispositivo directorio, donde el
dispositivo puede ser cualquiera del canal IDE o SCSI (/dev/hdXX,/dev/sdXX), la
disquetera (/dev/FDX), memorias USB, etc., y directorio es la ubicacin en que
montaremos la estructura de ficheros del dispositivo, y si el sistema de archivo
no es el mismo con el cual estamos trabajando, se deber agregar el parmetro
-t filesystem, donde fylesystem es una sigla que se puede consultar en la pgina
del manual del mount. Es recomendable que el directorio en el que montamos
estos dispositivos est vaco, ya que cuando se utiliza como punto de montaje
no se puede acceder a l. Para desmontar uno de estos dispositivos, podemos
utilizar umount directorio, donde el directorio debe ser el punto de montaje
utilizado. Si montamos dispositivos movibles como CD/USB, es importante
no sacar el dispositivo del soporte, ya que antes debemos avisar al sistema para
que actualice la cach del sistema de ficheros del dispositivo (o actualizar las
tablas internas en el caso que el dispositivo slo sea de lectura). Igualmente,
tampoco podemos desmontar el dispositivo si algn usuario o aplicacin est
utilizando alguno de sus archivos o directorios (al intentarlo, el sistema dara
un mensaje de error).
Por defecto, para poder montar/desmontar sistemas de archivo, se necesitan
privilegios de superusuario, pero se pueden ceder estos permisos a usuarios
"administradores" aadiendo una entrada en el fichero sudoers, de manera que
con la orden sudo mount ... el usuario habilitado podr hacer tareas permitidas
solo al root (consultar el manual de mount para otras opciones en el trabajo
con dispositivos/particiones, como por ejemplo rw, suid, dev, exec, auto, nou-
ser, async, que son las consideradas por defecto).
Todo el montaje de particiones y dispositivos se puede hacer durante la ini-
cializacin del sistema operativo a travs de entradas en el archivo /etc/fstab.
Un ejemplo tpico de este archivo es:
# /etc/fstab: static file system information.
GNUFDL PID_00167540 43 Nivel usuario
#
# <file system> <mount point> <type> <options> <dump> <pass>
proc /proc proc defaults 0 0
/dev/hda1 / ext3 errors=remount-ro 0 1
/dev/hda5 none swap sw 0 0
/dev/hdc /media/cdrom0 udf,iso9660 user,noauto 0 0
Cada lnea es un mount y los parmetros son (en orden) dispositivo a mon-
tar, donde se monta, tipo de filesystem (auto para que lo detecte automtica-
mente), opciones de montado, especificacin si queremos hacer copias de se-
guridad (dump) y el ltimo campo sirve para indicar el orden de montaje (0,
indica que el orden no es importante). La raz del sistema de archivos es lo
primero que se debe montar, con lo que en este campo debera haber un 1.
Una entrada que siempre veremos en este fichero y que nos puede sorprender
es el directorio /proc/, que tiene un significado especial. Realmente, lo que
hay en este directorio no son ficheros, sino el valor de muchas de las variables
que utiliza el ncleo del sistema y que permitir ajustar parmetros del kernel
como si se tratara de un archivo.
Es interesante consultar la orden autofs, que permite montar automticamen-
te un sistema de archivo cuando se detecta la insercin de un dispositivo en
el sistema.
4.5. Configuracin de dispositivos
Es importante, antes de intentar configurar algn dispositivo, buscar informa-
cin al respecto e incluso antes de comprar uno, asegurarse de que dispone de
drivers compatibles con la versin que pretendemos trabajar.
1) Teclado
Si comenzamos por el teclado, es importante que funcione de acuerdo al mapa
de caracteres configurado en el proceso de instalacin. Este mapa de caracteres
se encuentra en /etc/console/boottime.kmap.gz y si cambiamos de teclado, slo
se debe cambiar este fichero por el adecuado, que est en /usr/share/keymaps/
ordenado por arquitecturas de ordenadores y pases (de estos archivos se pue-
de cambiar alguna de sus entradas para adaptarlas a nuestras necesidades). Se
puede ver el nmero que corresponde a cada tecla ejecutando como root la
orden showkey. Si no se desea reiniciar el sistema al cambiar el archivo de
configuracin de teclado, podemos utilizar la orden loadkeys, dumpkeys nos
muestra las que estn configuradas y consolechars permite cargar la fuente
que se desee para el terminal. Otro aspecto relacionado con el teclado es el
tema de los acentos, las diresis, que se pueden configurar a partir del fichero
/etc/inputrc (todas las directivas posibles de este fichero las tenemos especifica-
GNUFDL PID_00167540 44 Nivel usuario
das en el manual de readline). La que puede ser ms til es la de convert-me-
ta, que al desactivarla (set convert-meta off) nos permite utilizar los acentos y
las diresis.
Finalmente, otra configuracin importante (indirectamente relacionada con
el teclado) es la de locales, donde se puede configurar la zona geogrfica en la
que estamos para poder utilizar teclas especiales del teclado, ver las fechas en
el formato correcto, etc. Esta configuracin es utilizada por muchas de las li-
breras del sistema, de manera que en muchas rdenes y aplicaciones del mis-
mo se utilizar su configuracin para adaptar algunas funciones del entorno
local. Su configuracin se encuentra en /etc/locale.gen y se pueden utilizar las
rdenes locale-gen y locale, verlas o actualizarlas.
2) Tarjeta de red (Ethernet)
Para configurar una nueva tarjeta de red (tipo Ethernet) se debe, en primer lu-
gar, aadir el mdulo necesario para que se reconozca adecuadamente. Si bien
no es necesario para algunas tarjetas, debemos asegurarnos (antes de comprar
la tarjeta) de que existe el driver o mdulo necesario para ella.
Con la orden discover podemos saber qu tipo de hardware tenemos y encon-
trar el mdulo correspondiente. Si se quiere dejar configurado para que se car-
gue, se deber incluir en /etc/modules (o tambin se puede utilizar modprobe
o insmode). Para configurarla en el /etc/network/interfaces, se podr especificar
(en Debian) la configuracin de las interfaces del sistema. Una interfaz es un
dispositivo (real o lgico) relacionado con la red a partir del cual el sistema
podr comunicarse. Un ejemplo podra ser:
# Interfaz de loopback
auto lo
iface lo inet loopback
# NIC auto eth0
iface eth0 inet static
address 192.168.0.10
netmask 2 55.255.255.0
network 192.168.0.0 # opcional
broadcast 192.168.0.255 # opcional
gateway 192.168.0.1 # opcional
La primera entrada de este archivo es la interfaz de loopback. Esta interfaz no se
corresponde con ninguna tarjeta ni dispositivo real del ordenador y permite
utilizar los mecanismos de comunicacin de forma interna. La directiva auto,
delante del dispositivo, indica que se puede montar automticamente cuan-
do el sistema arranca. La directiva de iface especifica el tipo de tarjeta y pro-
tocolo que se utilizar con ella mediante la sintaxis iface dispositivo protocolo
configuracin. Para las tarjetas Ethernet, el dispositivo ser ethX, donde la X
Nota
Otra manera de reconfigurar el
keymap y las locales en Debian
es apt-reconfigure console-data
apt-reconfigure locales respecti-
vamente.
GNUFDL PID_00167540 45 Nivel usuario
ser un nmero empezando por 0, que indica el nmero de tarjeta instalada
en el ordenador. La familia del protocolo de comunicacin utilizado con la
tarjeta suele ser inet para el protocolo Ipv4 utilizado en Internet y inet6 para
la nueva versin de Ipv6, y en el ltimo campo se indica cmo se obtiene la
configuracin de red de la tarjeta (su direccin IP, la red donde est, el gateway
a utilizar, etc.) con las siguientes posibilidades (bsicas):
static: deberemos proveer address (direccin IP de la interfaz), netmask
(mscara de la direccin IP), gateway (direccin IP del gateway que utiliza-
mos para esta interfaz).
dhcp: para configurar de forma remota la IP de todos los ordenadores de
una red local (dynamic host configuration protocol).
Para manejar la configuracin de red tenemos diferentes rdenes, como if-
config (visualiza y configura los dispositivos), ifdown y ifup (para apagar o
encender la interfaz) o route (que nos muestra la tabla de encaminamiento).
3) Tarjeta inalmbrica (Wifi)
La red inalmbrica (wireless LAN o WiFi), y para configurarla deberemos aadir
al ncleo los mdulos necesarios o utilizar los que ya estn compilados en el
mismo ncleo. Se sigue la misma norma de nombre de dispositivos que para las
tarjetas Ethernet y en /etc/network/interfaces (en Debian) deberemos aadir la
configuracin necesaria para que se asigne una IP como en el siguiente ejemplo
(consideramos que es el segundo dispositivo, por lo cual ser eth1):
# Wireless network
auto eth1
iface eth1 inet dhcp
wireless_essid miwifi
wireless_channel 6
wireless_mode managed
wireless_keymode open
wireless_key1 millavehexadecimal
wireless_key2 s: millaveascii
wireless_defaultkey 1
Donde los parmetros subsiguientes a iface los podremos encontrar en la p-
gina del manual de la orden iwconfig, que es la que se utiliza para configurar
los dispositivo inalmbricos.
4) Tarjeta de sonido
GNUFDL PID_00167540 46 Nivel usuario
Al igual que en los casos anteriores, la tarjeta de sonido tambin necesita el
mdulo del ncleo para poder funcionar correctamente. Con la aplicacin
discover, podemos descubrir qu mdulo es el que se corresponde con nuestra
tarjeta o con la orden lspci | grep audio. Para instalar el mdulo, procedere-
mos como con la tarjeta de red con insmod o modprobe, para configurarlo
permanentemente en /etc/modules. Si bien con el mdulo correspondiente ya
podremos utilizar la tarjeta de sonido adecuadamente, generalmente tambin
se suele instalar la infraestructura de sonido ALSA (advanced linux sound archi-
tecture) incluida por defecto en la mayora de las distribuciones.
5) Impresora
En GNU/Linux, la configuracin de impresoras se puede hacer de diferentes
maneras, si bien el lpd (line printer daemon) fue uno de los primeros programas
de gestin de impresin, en la actualidad hay otros ms fciles de configurar
y gestionar. Los ms bsicos son:
lpd: uno de los primeros daemons de impresin de los sistemas tipo UNIX.
Su configuracin se debe hacer manualmente.
lpr: la versin de BSD del lpd. Es muy recomendable utilizar algn tipo de
filtro automtico como magicfilter o apsfilter para configurarlas.
LPRng: aplicaciones basadas en lpr, con la ventaja de que incorporan una
herramienta de configuracin denominada lprngtool, que permite confi-
gurarla de manera grfica y sencilla.
gnulpr: la versin de GNU del sistema de impresin lpr. Tambin incor-
pora herramientas grficas de configuracin, gestin de los servicios, etc.
CUPS (recomendado): de Common UNIX printing systems, este conjunto
de aplicaciones es compatible con las rdenes de lpr y tambin sirve para
redes Windows.
Normalmente, todas estas rdenes tienen sus propios mtodos de configura-
cin, pero utilizan el fichero /etc/printcap para guardarla y utilizan un daemon
(proceso que se ejecuta indefinidamente) para que el sistema de impresin sea
operativo e incluso se pueda imprimir desde otros ordenadores.
GNUFDL PID_00167540 47 Nivel usuario
5. El entorno grfico
Los sistemas *nix utilizan una arquitectura de entorno grfico llamada X-Win-
dow diseada en la dcada de los ochenta, que es independiente de la plata-
forma y sirve para cualquier tipo de *nix. X.Org es una implementacin de
cdigo abierto del sistema X-Window (que surge como bifurcacin de proyec-
to Xfree86) y funciona en modo cliente/servidor de manera que no podemos
conectar grficamente a un servidor remoto o ejecutar sobre un ordenador lo-
cal aplicaciones grficas de un ordenador remoto. Hoy en da se trabaja con-
juntamente con una infraestructura de DRI (direct rendering infrastructure), que
permite aprovechar los chips de procesamiento de las tarjetas para ahorrar tra-
bajo de visualizacin al cliente X-Window.
El sistema X-Window (basado en una librera llamada xlibs) proporciona los
mtodos para crear las interfaces grficas de usuarios (GUI), pero no imple-
menta ninguna sino que stas son proporcionadas por toolkits, que son biblio-
tecas generalmente implementadas con xlibs y que proporcionan un GUI par-
ticular. El window manager es un servidor especial de X-Window, que se encar-
ga de gestionar todas las ventanas, los escritorios, las pantallas virtuales, etc.
y obviamente, todas las aplicaciones pueden funcionar con cualquier window
manager, ya que ste slo se encarga de gestionar la ventana donde est ubica-
do el programa y hay decenas de ellos (Wmaker, sawmill, olvwm, etc.) siendo
el usuario quien puede elegir el que ms le agrade.
Otro tipo de software muy relacionado con X-Window es el que se encarga de
proporcionar un entorno integrado para las aplicaciones, el escritorio, las he-
rramientas de administracin del sistema, etc. Los ms populares en la actua-
lidad son KDE (the K desktop environment) y GNOME (GNU, object model envi-
ronment). Ambos proporcionan un toolkit particular, un entorno de escritorio
con muchas funcionalidades y configuraciones diferentes y una lista de apli-
caciones integradas, que cada vez va creciendo ms, y son los ms distribuidos
en todas las distribuciones GNU/Linux. En las siguientes figuras podemos ver
en primer lugar el aspecto de KDE y en segundo GNOME (se pueden ver dife-
rentes WM y entornos en http://www.xwinman.org/):
GNUFDL PID_00167540 48 Nivel usuario
En la actualidad, la mayora de las tarjetas grficas del mercado estn sopor-
tadas y muchos fabricantes ya dan soporte para GNU/Linux proporcionando
su propios drivers.
Para instalar Xorg en nuestro ordenador, es necesario bajar los paquetes que
contienen las herramientas bsicas y el software para el cliente y el servidor.
Generalmente, estos paquetes se suelen denominar xorg, xserver-xorg, etc. y
llevan implcitas diversas dependencias de fuentes y algunas utilidades bsicas
para el manejo de X-Window (se puede utilizar en Debian apt-cache search
Xorg para ver los servidores disponibles y apt-get install <Xorg.server> para
instalar uno en particular). Una vez instalados estos paquetes, debemos confi-
gurar adecuadamente los dispositivos de los que disponemos para poder arran-
car correctamente el cliente y el servidor X-Window. En Debian podemos uti-
GNUFDL PID_00167540 49 Nivel usuario
lizar la orden dexconf, que utilizar la base de datos debconf para generar
el archivo de configuracin del entorno grfico (ubicado en /etc/X11/xorg.conf
normalmente).
Para probar la configuracin podemos ejecutar startx y una vez que tenemos
la pantalla en modo grfico, podemos cambiar su resolucin con las teclas
CtrlAlt+ CtrlAlt- o volver a los terminales texto con CtrlAltF1-5 y con CtrlAltF7
volveramos a la grfica. Con CrtlAltBackspace terminaramos la sesin del WM
y volveremos al terminal texto.
GNUFDL PID_00167540 51 Nivel usuario
Actividades
1. Analizad las siguientes rdenes y sus principales parmetros:
passwd, pwd, cd, ls, chmod, chown, chgrp, vi, man, cat, cp, date, df, du, find, mail,
mkdir, more, page, mv, rm, rmdir, who, w, ps, cal, clear, zip, gzip, compress, uncom-
press, dc,diff, env, expr, exit, file, grep, kill, ln, lp, mesg, nice, nohup, quota, sed, awk,
ftp,telnet, sleep, sort, su, sudo, tail, tar, tee, pstree, test, users, wc, write, cut, head.
2. Instalad Virtual Box sobre un sistema operativo husped que se disponga y cargad una
imagen ya configurada verificando que el sistema funcione (incluyendo sistema grfico, red,
acceso a disco del husped, etc.).
3. Repetid el punto anterior instalando el sistema desde los CD/DVD enviados por la UOC.
Programacin
de comandos
combinados (shell
scripts)
Remo Suppi Boldrito
PID_00167541
GNUFDL PID_00167541 Programacin de comandos combinados (shell scripts)
2010, FUOC. Se garantiza permiso para copiar, distribuir y modificar este documento segn los trminos de la GNU Free
Documentation License, Version 1.2 o cualquiera posterior publicada por la Free Software Foundation, sin secciones invariantes ni
textos de cubierta delantera o trasera. Se dispone de una copia de la licencia en el apartado "GNU Free Documentation License" de
este documento.
GNUFDL PID_00167541 Programacin de comandos combinados (shell scripts)
ndice
Introduccin............................................................................................... 5
1. Introduccin: el shell........................................................................ 7
1.1. Redirecciones y pipes .................................................................. 9
1.2. Aspectos generales ....................................................................... 9
2. Elementos bsicos de un shell script............................................ 11
2.1. Qu es un shell script? ............................................................... 11
2.2. Variables y arrays.......................................................................... 12
2.3. Estructuras condicionales ............................................................ 14
2.4. Los bucles .................................................................................... 16
2.5. Funciones, select, case, argumentos y otras cuestiones .............. 17
2.6. Filtros: Grep ................................................................................. 24
2.7. Filtros: Awk ................................................................................. 26
2.8. Ejemplos complementarios ......................................................... 29
Actividades.................................................................................................. 33
Bibliografa................................................................................................. 34
GNUFDL PID_00167541 5 Programacin de comandos combinados (shell scripts)
Introduccin
En este mdulo veremos la importancia fundamental que tiene el intrprete
de rdenes o comandos (shell) y sobre todo analizaremos con cierto detalle las
posibilidades de estos para ejecutar ficheros de rdenes secuenciales y escritos
en texto plano (ASCII) que sern interpretados por el shell. Estos ficheros,
llamados shell scripts, son la herramienta fundamental de cualquier usuario
avanzado e imprescindible para un administrador de sistemas *nix.
GNUFDL PID_00167541 7 Programacin de comandos combinados (shell scripts)
1. Introduccin: el shell
El shell es una pieza de software que proporciona una interfaz para los
usuarios en un sistema operativo y que provee acceso a los servicios del
ncleo. Su nombre proviene de la envoltura externa de algunos molus-
cos, ya que es la parte externa que protege al ncleo.
Los shells se dividen en dos categoras: lnea de comandos y grficos, ya sea
si la interaccin se realiza mediante una lnea de comandos (CLI) o en forma
grfica a travs de una GUI. En cualquier categora el objetivo principal del
shell es invocar o "lanzar" otro programa, sin embargo, suelen tener capacida-
des adicionales, tales como ver el contenido de los directorios, interpretar r-
denes condicionales, trabajar con variables internas, gestionar interrupciones,
redirigir entrada/salida, etc.
Si bien un shell grfico es agradable para trabajar y permite a usuarios sin mu-
chos conocimientos desempearse con cierta facilidad, los usuarios avanza-
dos prefieren los de modo texto ya que permiten una forma ms rpida y efi-
ciente de trabajar. Todo es relativo, ya que en un servidor es probable que un
usuario administrador no utilice ni siquiera interfaz grfica, mientras que para
un usuario de edicin de vdeo nunca trabajar en modo texto. El principal
atractivo de los sistema *nix es que tambin en modo grfico se puede abrir
un terminal y trabajar en modo texto como si estuviera en un shell texto, o
cambiar interactivamente del modo grfico y trabajar en modo texto (hasta
con 5 terminales diferentes) y luego regresar al modo grfico con una simple
combinacin de teclas. En este apartado nos dedicaremos a shell en modo tex-
to y las caractersticas avanzadas en la programacin de shell scripts.
Entre los shells ms populares (o histricos) en los sistemas *nix tenemos:
Bourne shell (sh).
Almquist shell (ash) o su versin en Debian (dash).
Bourne-Again shell (bash).
Korn shell (ksh).
Z shell (zsh).
C shell (csh) o la versin Tenex C shell (tcsh).
El Bourne shell ha sido el estndar de facto en los sistemas *nix, ya que fue
distribuido por Unix Version 7 en 1977 y Bourne-Again (Bash) es una versin
mejorada del primero escrita por el proyecto GNU bajo licencia GPL, la cual
se ha transformado en el estndar de los sistemas GNU/Linux. Bash ser el in-
trprete que analizaremos, ya que, adems de ser el estndar, es muy potente,
GNUFDL PID_00167541 8 Programacin de comandos combinados (shell scripts)
posee caractersticas avanzadas, recoge las innovaciones planteadas en otros
shells y permite ejecutar sin modificaciones (generalmente) scripts realizados
para cualquier shell con sintaxis Bourne compatible. La orden cat /etc/shells
nos proporciona los shells conocidos por el sistema Linux, independientemen-
te de si estn instalados o no. El shell por defecto para un usuario se obtendr
del ltimo campo de la lnea correspondiente al usuario del fichero /etc/passwd
y cambiar de shell simplemente significa ejecutar el nombre del shell sobre un
terminal activo, por ejemplo:
RS@DebSyS:~$ echo $SHELL
/bin/bash
RS@DebSyS:~$ tcsh
DebSyS:~>
Una parte importante es lo que se refiere a los modos de ejecucin de un shell.
Se llama login interactivo cuando proviene de la ejecucin de un login, lo cual
implicar que se ejecutarn los archivos /etc/profile, ~/.bash_profile,
~/.bash_login o ~/.profile (la primera de las dos que exista y se pueda leer) y
~/.bash_logout cuando terminemos la sesin. Cuando es de no-login interactivo
(se ejecuta un terminal nuevo) se ejecutar ~/.bashrc, dado que un bash inte-
ractivo tiene un conjunto de opciones habilitadas a si no lo es (consultar el
manual). Para saber si el shell es interactivo, ejecutar echo $- y nos deber
responder himBH donde la i indica que s lo es.
Existen un conjunto de comandos internos
1
a shell, es decir, integrados con el
cdigo de shell, que para Bourne son:
:, ., break, cd, continue, eval, exec, exit, export, getopts, hash, pwd, rea-
donly, return, set, shift, test, [, times, trap, umask, unset.
Y adems Bash incluye:
alias, bind, builtin, command, declare, echo, enable, help, let, local, lo-
gout, printf, read, shopt, type, typeset, ulimit, unalias.
Cuando Bash ejecuta un script shell, crea un proceso hijo que ejecuta otro Bash,
el cual lee las lneas del archivo (una lnea por vez), las interpreta y ejecuta
como si vinieran de teclado. El proceso Bash padre espera mientras el Bash hijo
ejecuta el script hasta el final que el control vuelve al proceso padre, el cual
vuelve a poner el prompt nuevamente. Un comando de shell ser algo tan sim-
ple como touch archivo1 archivo2 archivo3 consiste en el propio comando
seguido de argumentos, separados por espacios considerando archivo1 el pri-
mer argumento y as sucesivamente.
(1)
Consultar el manual para una
descripcin completa.
GNUFDL PID_00167541 9 Programacin de comandos combinados (shell scripts)
1.1. Redirecciones y pipes
Existen 3 descriptores de ficheros: stdin, stdout y stderr (la abreviatura std sig-
nifica estndar) y en la mayora de los shells (incluso en Bash) se puede rediri-
gir stdout y stderr (juntas o separadas) a un fichero, stdout a stderr y viceversa,
donde el nmero 0 representa a stdin, 1 a stdout, y 2 a stderr.
Por ejemplo, enviar stdout del comando ls a un fichero ser: ls -l > dir.txt,
donde se crear un fichero llamado 'dir.txt', que contendr lo que se vera en
la pantalla si se ejecutara ls -l.
Para enviar la salida stderr de un programa a un fichero, haremos
grep xx yy 2> error.txt. Para enviar la stdout a la stderr, haremos grep xx yy
1>&2 y a la inversa simplemente intercambiando el 1 por 2, es decir, grep xx
yy 2>&1.
Si queremos que la ejecucin de un comando no genere actividad por pantalla,
lo que se denomina ejecucin silenciosa, solamente debemos redirigir todas
sus salidas a /dev/null, por ejemplo pensando en un comando del cron que
queremos que borre todos los archivos acabados en .mov del sistema:
rm -f $(find / -name "*.mov") &> /dev/null pero se debe ir con cuidado y
estar muy seguro, ya que no tendremos ninguna salida por pantalla.
Los pipes permiten utilizar en forma simple tanto la salida de una orden como
la entrada de otra, por ejemplo, ls -l | sed -e "s/[aeio]/u/g", donde se ejecuta
el comando ls y su salida, en vez de imprimirse en la pantalla, se enva (por
un tubo o pipe) al programa sed, que imprime su salida correspondiente. Por
ejemplo, para buscar en el fichero /etc/passwd todas las lneas que acaben con
false podramos hacer cat /etc/passwd | grep false$, donde se ejecuta el cat,
y su salida se pasa al grep donde el $ al final de la palabra le est indicando
al grep que es final de lnea.
1.2. Aspectos generales
Si la entrada no es un comentario, es decir (dejando de lado los espa-
cios en blanco y tabulador) la cadena no comienza por #, el shell lee
y lo divide en palabras y operadores, que se convierten en comandos,
operadores y otras construcciones. A partir de este momento, se reali-
zan las expansiones y sustituciones, las redirecciones, y finalmente, la
ejecucin de los comandos.
En Bash se podrn tener funciones, que son una agrupacin de comandos que
se pueden invocar posteriormente. Y cuando se invoca el nombre de la funcin
de shell (se usa como un nombre de comando simple), la lista de comandos
GNUFDL PID_00167541 10 Programacin de comandos combinados (shell scripts)
relacionados con el nombre de la funcin se ejecutar teniendo en cuenta que
las funciones se ejecutan en el contexto del shell en curso, es decir, no se crea
ningn proceso nuevo para ello.
Un parmetro es una entidad que almacena valores, que puede ser un nombre,
un nmero o un valor especial. Una variable es un parmetro que almacena
un nombre y tiene atributos (1 o ms o ninguno) y se crean con la sentencia
declare y se remueven con unset y si no se les da valor, se les asigna la cadena
nula.
Por ltimo, existen un conjunto de expansiones que realiza el shell que se lle-
va a cabo en cada lnea y que pueden ser enumeradas como: de tilde/comillas,
parmetros y variables, substitucin de comandos, de aritmtica, de separa-
cin de palabras y de nombres de archivos.
GNUFDL PID_00167541 11 Programacin de comandos combinados (shell scripts)
2. Elementos bsicos de un shell script
2.1. Qu es un shell script?
Un shell script es simplemente un archivo (mysystem.sh para nosotros) que
tiene el siguiente contenido (hemos numerado las lneas para referirnos a ellas
con el comando el cat -n pero no forman parte del archivo):
RS@debian:~$ cat -n mysys.sh
1 #!/bin/bash
2 clear; echo "Informacin dada por el shell script mysys.sh. "
3 echo "Hola, $USER"
4 echo
5 echo "La fecha es `date`, y esta semana `date +"%V"`."
6 echo
7 echo "Usuarios conectados:"
8 w | cut -d " " -f 1 - | grep -v USER | sort -u
9 echo
10 echo "El sistema es `uname -s` y el procesador es `uname -m`."
11 echo
12 echo "El sistema est encendido desde hace:"
13 uptime
14 echo
15 echo "Esto es todo amigos!"
Para ejecutarlo podemos hacer bash mysys.sh o bien cambiarle los atributos
para hacerlo ejecutable y ejecutarlo como una orden (al final se muestra la
salida despus de la ejecucin):
RS@debian:~$ chmod 744 mysys.sh
RS@debian:~$ ./mysys.sh
Informacin dada por el shell script mysys.sh.
Hola, RS
La fecha es Sat Apr 17 07:04:36 EDT 2010, y esta semana 15.
Usuarios conectados:
RS
GNUFDL PID_00167541 12 Programacin de comandos combinados (shell scripts)
El sistema es Linux y el procesador es i686.
El sistema est encendido desde hace:
07:04:36 up 1:45, 2 users, load average: 0.29, 0.10, 0.03
Esto es todo amigos!
El script comienza con "#!", que es una lnea especial para indicarle con qu
shell se debe interpretar este script. La lnea 2 es un ejemplo de dos comandos
(uno borra la pantalla y otro imprime lo que est a la derecha) en la misma
lnea, por lo que deben estar separados por ";". El mensaje se imprime con la
sentencia echo (comando interno) pero tambin se podra haber utilizado la
sentencia printf (tambin comando interno) para una salida con formato. En
cuanto a los aspectos ms interesantes del resto: la lnea 3 muestra el valor de
una variable, la 5 forma un string con la salida de un comando (reemplazo de
valores), la 8 ejecuta la secuencia de 4 comandos con parmetros encadenados
por pipes "|" y la 10 (similar a la 5) tambin reemplaza valores de comandos
para formar una cadena de caracteres antes de imprimirse por pantalla.
Para depurar un shell script podemos ejecutar el script con bash -x mysys.sh
o incluir en la primera lnea el -x: #/bin/bash -x.
Tambin se puede depurar una seccin de cdigo incluyendo:
set -x # activa debugging desde aqu
cdigo a depurar
set +x # para el debugging
2.2. Variables y arrays
Se pueden usar variables pero no existen tipos de datos. Una variable de bash
puede contener un nmero, un carcter o una cadena de caracteres; no se
necesita declarar una variable, ya que se crear con slo asignarle un valor.
Tambin se puede declarar con declare y despus asignarle un valor:
#!/bin/bash
a="Hola UOC"
echo $a
declare b
echo $b
b="Cmo estn Uds.?"
echo $B
#!/bin/bash
As evitamos que si el usuario
tiene otro shell, su ejecucin
d errores de sintaxis, es decir,
garantizamos que este script
siempre se ejecutar con bash.
GNUFDL PID_00167541 13 Programacin de comandos combinados (shell scripts)
Como se puede ver, se crea una variable a y se le asigna un valor (que para
delimitarlo se deben poner entre " ") y se recupera el VALOR de esta variable
ponindole un '$' al principio, y si no se antepone el $, slo imprimir el
nombre de la variable no su valor. Por ejemplo, para hacer un script que haga
una copia (backup) de un directorio, incluyendo la fecha y hora en el momento
de hacerlo en el nombre del archivo (intentad hacer esto tan fcil sobre un
sistema W y solo con el SO y terminaris frustrados):
#!/bin/bash
OF=/home/$USER-$(date +%d%m%Y).tgz
tar -cZf $OF /home/$USER
Este script introduce algo nuevo, ya que estamos creando una variable y asig-
nando un valor (resultado de la ejecucin de un comando en el momento de la
ejecucin). Fijaos en la expresin $(date +%d%m%Y) que se pone entre () para
capturar su valor. USER es una variable de entorno y solamente se reemplazar
por su valor. Si quisiramos agregar (concatenar) a la variable USER, por ejem-
plo, una string ms, deberamos delimitar la variable con {}. Por ejemplo:
RS@debian:~$OF=/home/${USER}uppi-$(date +%d%m%Y).tgz
RS@debian:~$ echo $OF
/home/RSuppi-17042010.tgz
As, el nombre del fichero ser distinto cada da. Es interesante ver el reemplazo
de comandos que hace el bash con los (), por ejemplo, echo $(ls).
Las variable locales pueden declararse anteponiendo local y eso delimita su
mbito.
#!/bin/bash
HOLA=Hola
function uni {
local HOLA=UOC
echo -n $HOLA
}
echo -n $HOLA
uni
echo $HOLA
La salida ser HolaUOCHola, donde hemos definido una funcin con una va-
riable local que recupera su valor cuando se termina de ejecutar la funcin.
GNUFDL PID_00167541 14 Programacin de comandos combinados (shell scripts)
Las variables las podemos declarar como ARRAY[INDEXNR]=valor, donde
INDEXNR es un nmero positivo (comenzando desde 0) y tambin podemos
declarar un array como declare -a ARRAYNAME y se pueden hacer asignacio-
nes mltiples con: ARRAY=(value1 value2 ... valueN)
RS@debian:~$ array=( 1 2 3)
RS@debian:~$ echo $array
1
RS@debian:~$ echo ${array[*]}
1 2 3
RS@debian:~$ echo ${array[2]}
3
RS@debian:~$ array[3]=4
RS@debian:~$ echo ${array[*]}
1 2 3 4
RS@debian:~$ echo ${array[3]}
4
RS@debian:~$ unset array[1]
RS@debian:~$ echo ${array[*]}
1 3 4
2.3. Estructuras condicionales
Las estructuras condicionales le permiten decidir si se realiza una accin o no;
esta decisin se toma evaluando una expresin.
La ms bsica es: if expresin then sentencia donde 'sentencia' slo se eje-
cuta si 'expresin' se evala como verdadera. '2<1' es una expresin que se
evala falsa, mientras que '2>1' se evala verdadera.
Los condicionales tienen otras formas, como: if expresin then sentencia1
else sentencia2. Aqu 'sentencia1' se ejecuta si 'expresin' es verdadera. De
otra manera se ejecuta 'sentencia2'.
Otra forma ms de condicional es: if expresin1 then sentencia1 else if ex-
presin2 then sentencia2 else sentencia3. En esta forma slo se aade "else
if 'expresin2' then 'sentencia2'", que hace que sentencia2 se ejecute si ex-
presin2 se evala verdadera. La sintaxis es:
if [expresin];
then
cdigo si 'expresin' es verdadera.
fi
GNUFDL PID_00167541 15 Programacin de comandos combinados (shell scripts)
Un ejemplo en el que el cdigo que se ejecutar si la expresin entre corchetes
es verdadera se encuentra entre la palabra then y la palabra fi, que indica el
final del cdigo ejecutado condicionalmente:
#!/bin/bash
if [ "pirulo" = "pirulo" ]; then
echo expresin evaluada como verdadera
fi
Otro ejemplo con variables y comparacin por igualdad y por diferencia (=
o !=):
#!/bin/bash
T1="pirulo"
T2="pirulon"
if [ "$T1" = "$T2" ]; then
echo expresin evaluada como verdadera
else
echo expresin evaluada como falsa
fi
if [ "$T1" != "$T2" ]; then
echo expresin evaluada como verdadera
else
echo expresin evaluada como falsa
fi
Un ejemplo de expresin de comprobacin si existe un fichero (vigilar con los
espacios despus de [ y antes de ]):
FILE=~/.basrc
if [ -f $FILE ]; then
echo el fichero $FILE existe
else
echo fichero no encontrado
fi
if [ 'test -f $FILE' ]
echo Otra forma de expresin para saber si existe o no
fi
Existen versiones cortas del if, como por ejemplo:
[ -z "${COLUMNS:-}" ] && COLUMNS=80
GNUFDL PID_00167541 16 Programacin de comandos combinados (shell scripts)
Es la versin corta de:
if [ -z "${COLUMNS:-}" ]; then
COLUMNS=80
fi
2.4. Los bucles
El bucle for es distinto a los de otros lenguajes de programacin, ya que per-
mite iterar sobre una serie de 'palabras' contenidas dentro de una cadena. El
bucle while ejecuta una seccin de cdigo si la expresin de control es verda-
dera, y slo se para cuando es falsa (o se encuentra una interrupcin explcita
dentro del cdigo en ejecucin). El bucle until es casi idntico al bucle while,
excepto en que el cdigo se ejecuta mientras la expresin de control se evale
como falsa. Veamos unos ejemplos y observemos la sintaxis:
#!/bin/bash
for i in $( ls ); do
echo elemento: $i
done
En la segunda lnea declaramos i como la variable que recibir los diferentes
valores contenidos en $( ls ), que sern los elementos del directorio obtenido
en el momento de la ejecucin. El bucle se repetir (entre do y done) tantas
veces como elementos tenga la variable y en cada iteracin la variable i adqui-
rir un valor diferente de la lista. Otra sintaxis aceptada podr ser:
#!/bin/bash
for i in `seq 1 10`;
do
echo $i
done
La sintaxis del while es:
#!/bin/bash
contador=0
while [ $contador -lt 10 ]; do
echo El contador es $contador
let contador=contador+1
done
GNUFDL PID_00167541 17 Programacin de comandos combinados (shell scripts)
Como podemos ver, adems de while hemos introducido una compara-
cin en la expresin por menor "-lt" y una operacin numrica con let
contador=contador+1. La sintaxis del until es equivalente:
#!/bin/bash
contador=20
until [ $contador -lt 10 ]; do
echo Contador-Until $contador
let contador-=1
done
En este caso vemos la equivalencia de la sentencia y adems otra forma de
hacer operaciones sobre las mismas variables con el "-=".
2.5. Funciones, select, case, argumentos y otras cuestiones
Las funciones son la forma ms fcil de agrupar secciones de cdigo que se
podrn volver a utilizar. La sintaxis es function nombre { mi_cdigo }, y para
llamarlas slo es necesario que estn dentro de mismo archivo y escribir su
nombre.
#!/bin/bash
function salir {
exit
}
function hola {
echo Hola UOC!
}
hola
salir
echo Nunca llegar a esta lnea
Como se puede ver tenemos dos funciones, salir y hola, que luego se ejecu-
tarn (no es necesario declararlas en un orden especfico) y como la funcin
salir ejecuta un exit en shell nunca llegar a ejecutar el echo final. Tambin
podemos pasar argumentos a las funciones, que sern ledos por orden (de la
misma forma como se leen los argumentos de un script) por $1, el primero, $2
el segundo y as sucesivamente:
#!/bin/bash
function salir {
exit
}
function hola-con-parametros {
GNUFDL PID_00167541 18 Programacin de comandos combinados (shell scripts)
echo $1
}
hola-con-parametros Hola
hola-con-parametros UOC
salir
echo Nunca llegar a esta lnea
El select es para hacer opciones y leer desde teclado:
#!/bin/bash
OPCIONES="Salir Opcin1"
select opt in $OPCIONES; do
if [ "$opt" = "Salir" ]; then
echo Salir. Adis.
exit
elif [ "$opt" = "Opcin1" ]; then
echo Hola UOC
else
clear
echo opcin no permitida
fi
done
El select permite hacer mens modo texto y es equivalente a la sentencia for,
solo que itera sobre el valor de la variable indicada en el select. Otro aspecto
importante es la lectura de argumentos, como por ejemplo:
#!/bin/bash
if [ -z "$1" ]; then
echo uso: $0 directorio
exit
fi
A=$1
B="/home/$USER"
C=backup-home-$(date +%d%m%Y).tgz
tar -cZf $A$B $C
Si el nmero de argumentos es 0, escribe el nombre del comando ($0) con un
mensaje de uso. El resto es similar a lo que hemos visto anteriormente excepto
por el primer argumento ($1). Mirad con atencin el uso de " y la sustitucin
de variables. El case es otra forma de seleccin, miremos este ejemplo que nos
alerta en funcin del espacio de disco que tenemos disponible:
#!/bin/bash
GNUFDL PID_00167541 19 Programacin de comandos combinados (shell scripts)
space=`df -h | awk '{print $5}' | grep % \
| grep -v Use | sort -n | tail -1 | cut -d "%" -f1 -`
case $space in
[1-6]*)
Message="todo ok."
;;
[7-8]*)
Message="Podra comenzar a borrar algo en $space %"
;;
9[1-8])
Message="Uff. Mejor un nuevo disco. Particin $space % a tope."
;;
99)
Message="Pnico! No tiene espacio en $space %!"
;;
*)
Message="NO tienen nada..."
;;
esac
echo $Message
Adems de prestar atencin a la sintaxis del case, podemos mirar cmo escribir
un comando en dos lneas con "\", el filtrado secuencia con varios greps y |
y un comando interesante (filtro) como el awk (el mejor comando de todos
los tiempos).
En muchas ocasiones, puede querer solicitar al usuario alguna informacin, y
existen varias maneras para hacer esto:
#!/bin/bash
echo Por favor, introduzca su nombre
read nombre
echo "Hola $nombre!"
Como variante, se pueden obtener mltiples valores con read:
#!/bin/bash
echo Por favor, introduzca su nombre y primer apellido
read NO AP
echo "Hola $AP, $NO!"
GNUFDL PID_00167541 20 Programacin de comandos combinados (shell scripts)
Si hacemos echo 10 + 10 y esperabais ver 20 quedaris desilusionados, la forma
de evaluacin directa ser con echo $((10+10)) o tambin echo $[10+10] y
si necesitis operaciones como fracciones u otras podis utilizar bc, ya que
lo anterior solo sirve para nmeros enteros. Por ejemplo, echo $[3/4] dar 0
pero echo 3/4|bc -l s que funcionar. Tambin recordemos el uso del let, por
ejemplo, let a=75*2 asignar 150 a la variable a. Un ejemplo ms:
RS@debian:~$ echo $date
20042011
RS@debian:~$ echo $((date++))
20042011
RS@debian:~$ echo $date
20042012
Es decir, como operadores podemos utilizar:
VAR++ VAR-- variable post-incremento y post-decremento.
++VAR VAR dem anterior pero antes.
+ - operadores unarios.
! ~ negacin lgica y negacin en strings.
** exponente.
/ + - % operaciones.
<< >> desplazamiento izquierda y derecha.
<= >= < > comparacin.
== != igualdad y diferencia.
& ^ | operaciones and, or exclusivo y or.
&& || operaciones and y or lgicos.
expr ? expr : expr evaluacin condicional.
= *= /= %= += -= <<= >>= &= ^= |= operaciones implcitas.
, separador entre expresiones.
Para capturar la salida de un comando, es decir, el resultado de la ejecucin,
podemos utilizar el nombre del comando entre comilla hacia la izquierda (` `).
#!/bin/bash
A=`ls`
for b in $A ;
do
file $b
done
Para la comparacin tenemos las siguientes opciones:
s1 = s2 verdadero si s1 coincide con s2.
s1 != s2 verdadero si s1 no coincide con s2.
GNUFDL PID_00167541 21 Programacin de comandos combinados (shell scripts)
s1 < s2 verdadero si s1 es alfabticamente anterior a s2.
s1 > s2 verdadero si s1 es alfabticamente posterior a s2.
-n s1 s1 no es nulo (contiene uno o ms caracteres).
-z s1 s1 es nulo.
Por ejemplo, se debe ir con cuidado porque si S1 o S2 estn vacos, nos dar
un error de interpretacin (parse):
#!/bin/bash
S1='cadena'
S2='Cadena'
if [ $S1!=$S2 ];
then
echo "S1('$S1') no es igual a S2('$S2')"
fi
if [ $S1=$S1 ];
then
echo "S1('$S1') es igual a S1('$S1')"
fi
En cuanto a los operadores aritmticos y relacionales, podemos utilizar:
a) Operadores aritmticos:
+ (adicin).
- (sustraccin).
* (producto).
/ (divisin).
% (mdulo).
b) Operadores relacionales:
-lt (<).
-gt (>).
-le (<=).
-ge (>=).
-eq (==).
-ne (!=).
Hagamos un ejemplo de script que nos permitir renombrar ficheros S1 con
una serie de parmetros (prefijo o sufijos) de acuerdo a los argumentos. El mo-
do ser p [prefijo] ficheros... o si no, s [sufijo] ficheros.. o tambin r [patrn-
antiguo] [patrn-nuevo] ficheros.. (y como siempre decimos, los scripts son
mejorables):
GNUFDL PID_00167541 22 Programacin de comandos combinados (shell scripts)
#!/bin/bash -x
# renom: renombra mltiples ficheros de acuerdo con ciertas reglas
# Basado en original de F. Hudson Enero - 2000
# comprueba si deseo renombrar con prefijo y dejo solo los nombres de
# archivos
if [ $1 = p ]; then
prefijo=$2 ; shift ; shift
# si no hay entradas de archivos termino.
if [ "$1" = '' ]; then
echo "no se especificaron ficheros"
exit 0
fi
# Interacin para renombrar
for fichero in $*
do
mv ${fichero} $prefijo$fichero
done
exit 0
fi
# comprueba si deseo renombrar con prefijo y dejo solo los nombres de
# archivos
if [ $1 = s ]; then
sufijo=$2 ; shift ; shift
if [ "$1" = '' ]; then
echo "no se especificaron ficheros"
exit 0
fi
for fichero in $*
do
mv ${fichero} $fichero$sufijo
done
exit 0
fi
# comprueba si es una sustitucin de patrones
if [ $1 = r ]; then
shift
# se ha incluido esto como medida de seguridad
if [ $# -lt 3 ] ; then
echo "uso: renom r [expresin] [sustituto] ficheros... "
exit 0
fi
VIEJO=$1 ; NUEVO=$2 ; shift ; shift
for fichero in $*
do
nuevo=`echo ${fichero} | sed s/${VIEJO}/${NUEVO}/g`
mv ${fichero} $nuevo
GNUFDL PID_00167541 23 Programacin de comandos combinados (shell scripts)
done
exit 0
fi
# si no le muestro la ayuda
echo "uso:"
echo " renom p [prefijo] ficheros.."
echo " renom s [sufijo] ficheros.."
echo " renom r [patrn-antiguo] [patrn-nuevo] ficheros.."
exit 0
Especial atencin se debe prestar a las "", '', `` {}etc., por ejemplo:
RS@debian:~$ date=20042010
RS@debian:~$ echo $date
20042010
RS@debian:~$ echo \$date
$date
RS@debian:~$ echo '$date'
$date
RS@debian:~$ echo "$date"
20042010
RS@debian:~$ echo "`date`"
Sat Apr 17 14:35:03 EDT 2010
RS@debian:~$ echo "lo que se me ocurre es: \"Estoy cansado\""
lo que se me ocurre es: "Estoy cansado"
RS@debian:~$ echo "\"
>
(espera ms entradas: hacer Crtl-C)
remo@debian:~$ echo "\\"
\
RS@debian:~$ echo grande{cit,much,poc,ningun}o
grandecito grandemucho grandepoco grandeninguno
Una combinacin de entrada de teclado y operaciones/expresiones para cal-
cular un ao bisiesto:
#!/bin/bash
clear;
echo "Entre el ao a verificar (4 digits), y despus [ENTER]:"
read year
if (( ("$year" % 400) == "0" )) || (( ("$year" % 4 == "0") \
&& ("$year" % 100 !="0") )); then
echo "$year es bisiesto."
else
echo "$year este ao NO es bisiesto."
GNUFDL PID_00167541 24 Programacin de comandos combinados (shell scripts)
fi
Un comando interesante combinado de read con delimitador en una expre-
sin (est puesto todo en una lnea y por eso la sintaxis est separada por ;).
El resultado ser "interesante" (nos mostrar todos los string dados por el find
en un lnea y sin /:
find "$PWD" -name "m*" | while read -d "/" file; do echo $file; done
Un aspecto interesante para trabajar con string (ver manual de bash: man bash)
es ${VAR:OFFSET:LENGTH}.
RS@debian:~$ export str="unstring muy largo"
RS@debian:~$ echo $str
unstring muy largo
RS@debian:~$ echo ${str:4}
ring muy largo
RS@debian:~$ echo $str
unstring muy largo
RS@debian:~$ echo ${str:9:3}
muy
RS@debian:~$ echo ${str%largo}
unstring muy
La sentencia trap nos permitir capturar una seal (por ejemplo, de teclado)
dentro de un script.
#!/bin/bash
# Para finalizar hacer desde otro terminal kill -9 pid
trap "echo ' Ja!'" SIGINT SIGTERM
echo "El pid es $$"
while : # esto es lo mismo que "while true".
do
sleep 10 # El script no hace nada.
done
2.6. Filtros: Grep
El grep es un filtro de patrones muy til y verstil, a continuacin podemos
ver algunos ejemplos:
GNUFDL PID_00167541 25 Programacin de comandos combinados (shell scripts)
RS@debian:~$ grep root /etc/passwd busca patron root
root:x:0:0:root:/root:/bin/bash
RS@debian:~$ grep -n root /etc/passwd adems numera las lneas
1:root:x:0:0:root:/root:/bin/bash
RS@debian:~$ grep -v bash /etc/passwd | grep -v nologin
lista los que no tienen el patrn y bash ni el patrn nologin
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
sys:x:3:3:sys:/dev:/bin/sh
sync:x:4:65534:sync:/bin:/bin/sync
...
RS@debian:~$ grep -c false /etc/passwd cuenta los que tienen false
7
RS@debian:~$ grep -i ps ~/.bash* | grep -v history
busca patrn ps en todos los archivos que comienzan por .bash en el directorio home
excluyendo los que el archivo contenga history
/home/RS/.bashrc:[ -z "$PS1" ] && return
/home/RS/.bashrc:export HISTCONTROL=$HISTCONTROL${HISTCONTROL+,}ignoredups
/home/RS/.bashrc:# ... or force ignoredups and ignorespace
...
RS@debian:~$ grep ^root /etc/passwd busca a inicio de lnea
root:x:0:0:root:/root:/bin/bash
RS@debian:~$ grep false$ /etc/passwd busca a final de lnea
Debian-exim:x:101:105::/var/spool/exim4:/bin/false
statd:x:102:65534::/var/lib/nfs:/bin/false
RS@debian:~$ grep -w / /etc/fstab busca /
/dev/hda1 / ext3 errors=remount-ro 0 1
RS@debian:~$ grep [yf] /etc/group busca y o Y
sys:x:3:
tty:x:5:
....
RS@debian:~$ grep '\<c...h\>' /usr/share/dict/words busca comenzando por c y terminando
por h con un mximo de tres.
catch
cinch
cinch's
....
GNUFDL PID_00167541 26 Programacin de comandos combinados (shell scripts)
RS@debian:~$ grep '\<c.*h\>' /usr/share/dict/words busca comenzando por c y terminando
por h todas.
caddish
calabash
...
2.7. Filtros: Awk
Awk, o tambin la implementacin de GNU gawk, es un comando que acepta
un lenguaje de programacin diseado para procesar datos basados en texto,
ya sean ficheros o flujos de datos, y ha sido la inspiracin de Larry Wall para
escribir Perl. Su sintaxis ms comn es awk 'programa' archivos ... y donde
programa puede ser: patrn {accin} patrn {accin}..., awk lee la entrada
de archivos un rengln a la vez. Cada rengln se compara con cada patrn
en orden; para cada patrn que concuerde con el rengln se efecta la accin
correspondiente. Un ejemplo pregunta por el primer campo si es root de cada
lnea del /etc/passwd y la imprime considerando como separador de campos
el ":" con -F:, en el segundo ejemplo reemplaza el primer campo por root e
imprime el resultado cambiado.
RS@debian:~$ awk -F: '$1=="root" {print}' /etc/passwd
root:x:0:0:root:/root:/bin/bash
RS@debian:~$ awk -F: '$1="root" {print}' /etc/passwd
root x 0 0 root /root /bin/bash
root x 1 1 daemon /usr/sbin /bin/sh
root x 2 2 bin /bin /bin/sh
root x 3 3 sys /dev /bin/sh
root x 4 65534 sync /bin /bin/sync
root x 5 60 games /usr/games /bin/sh
root x 6 12 man /var/cache/man /bin/sh
El awk divide automticamente la entrada de lneas en campos, es decir, ca-
dena de caracteres que no sean blancos separados por blancos o tabuladores,
por ejemplo, el who tiene 5 campos y awk nos permitir filtrar cada uno de
estos campos.
RS@debian:~$ who
RS tty7 2010-04-17 05:49 (:0)
RS pts/0 2010-04-17 05:50 (:0.0)
RS pts/1 2010-04-17 16:46 (:0.0)
remo@debian:~$ who | awk '{print $4}'
05:49
05:50
GNUFDL PID_00167541 27 Programacin de comandos combinados (shell scripts)
16:46
El awk llama a estos campos $1 $2 ... $NF donde NF es una variable igual al
nmero de campos (en este caso NF=5). Por ejemplo:
ls -al | awk '{print NR, $0} Agrega nmeros de entradas (la variable NR cuenta el
nmero de lneas, $0 es la lnea entera.
awk '{printf "%4d %s\n", NR, $0}' significa un nmero decimal (NR) un string ($0)
y un new line
awk -F: '$2 == "" ' /etc/passwd Dar los usuarios que en el archivo de passwd no
tengan puesto la contrasea
El patrn puede escribirse de varias formas:
$2 == "" si el segundo campo es vaco
$2 ~ /^$/ si el segundo campo coincide con la cadena vaca
$2 !~ /./ si el segundo campo no concuerda con ningn carcter (! es negacin)
length($2) == si la longitud del segundo campo es 0, length es una funcin interna del awk
~ indica coincidencia con una expresin
!~ significa los contrario (no coincidencia)
NF % 2 != 0 muestra el rengln solo si hay un nmero par de campos
awk 'lenght ($0) 32 {print "Lnea", NR, "larga", substr($0,1,30)} ' /etc/passwd
evala las lneas de /etc/passwd y genera un substring de esta
Existen dos patrones especiales BEGIN y END. Las acciones BEGIN se realizan
antes que el primer rengln se haya ledo; puede usarse para inicializar las va-
riables, imprimir encabezados o posicionar separadores de un campo asignn-
doselos a la variable FS por ejemplo:
awk 'BEGIN {FS = ":"} $2 == "" ' /etc/passwd igual que el ejemplo de antes
awk 'END { print NR } ' /etc/passwd imprime el nmero de lneas procesadas al
final de la lectura del ltimo rengln.
El awk permite operaciones numricas en forma de columnas, por ejemplo,
para sumar todos los nmeros de la primera columna:
{ s=s + 1} END { print s} y para la suma y el promedio END { print s, s/NR}
Las variables se inicializan a cero al declararse, y se declaran al utilizarse, por
lo que resulta muy simple (los operadores son los mismos que en C):
{ s+=1} END {print s} Por ejemplo, para contar renglones, palabras y caracteres:
GNUFDL PID_00167541 28 Programacin de comandos combinados (shell scripts)
{ nc += length($0) +1 nw +=NF } END {print NR, nw, nc}
Existen variables predefinidas en el awk:
FILENAME nombre del archivo actual.
FS carcter delimitador del campo.
NF nmero de campos del registro de entrada.
NR nmero del registro del entrada.
OFMT formato de salida para nmeros (%g default).
OFS cadena separadora de campo en la salida (blanco por default).
ORS cadena separadora de registro de salida (new line por default).
RS cadena separador de registro de entrada (new line por default).
Operadores (dem C):
= += -= *= /= %= || && ! >> >>= << <<= == != ~ !~
+ - * / %
++ --
Funciones predefinidas en awk: cos(), exp(), getline(), index(), int(), length(),
log(), sin(), split(), sprintf(), substr().
Adems soporta dentro de accin sentencias de control con la sintaxis similar
a C:
if (condicin)
proposicin1
else
proposicin2
for (exp1;condicin;exp2)
while (condicin) {
proposicin
expr2
}
continue sigue, evala la condicin nuevamente
break rompe la condicin
next lee la siguiente lnea de entrada
exit salta a END
Tambin el awk maneja arreglos, por ejemplo, para hacer un head de
/etc/passwd:
GNUFDL PID_00167541 29 Programacin de comandos combinados (shell scripts)
awk '{ line[NR] = $0} \
END { for (i=NR; i>2; i--) print line[i]} ' /etc/passwd
Otro ejemplo:
awk 'BEGIN { print "Usuario UID Shell\n------- --- -----" } $3 >= 500 { print $1, $3,
$7 | "sort -r"}' FS=":" /etc/passwd
Usuario UID Shell
------- --- -----
RS 1001 /bin/bash
nobody 65534 /bin/sh
debian 1000 /bin/bash
RS@debian:~$ ls -al | awk '
BEGIN { print "File\t\t\tOwner" }
{ print $8, "\t\t\t", \
$3}
END { print "done"}
'
File Owner
. RS
.. root
.bash_history RS
.bash_logout RS
.bashrc RS
.config RS
...
2.8. Ejemplos complementarios
1) Un ejemplo completo para borrar los logs (borra /var/log/wtmp y se queda
con 50 lneas o las que pase el usuario en lnea de comando de /var/log/mes-
sages).
#!/bin/bash
#Variables
LOG_DIR=/var/log
ROOT_UID=0 # solo lo pueden ejecutar el root
LINES=50 # Lneas por defecto.
E_XCD=86 # NO me puedo cambiar de directorio
E_NOTROOT=87 # Salida de No-root error.
if [ "$UID" -ne "$ROOT_UID" ] # Soy root?
then
echo "Debe ser root. Lo siento."
GNUFDL PID_00167541 30 Programacin de comandos combinados (shell scripts)
exit $E_NOTROOT
fi
if [ -n "$1" ] # Nmero de lneas a preservar?
then
lines=$1
else
lines=$LINES # valor por defecto.
fi
cd $LOG_DIR
if [ `pwd` != "$LOG_DIR" ]
# tambin puede ser if [ "$PWD" != "$LOG_DIR" ]
then
echo "No puedo ir a $LOG_DIR."
exit $E_XCD
fi #
# Otra forma de hacerlo sera :
# cd /var/log || {
# echo "No puedo !" >&2
# exit $E_XCD;
# }
tail -n $lines messages > mesg.temp # Salvo en temporal
mv mesg.temp messages # Muevo.
cat /dev/null > wtmp #Borro wtmp.
echo "Logs Borrados."
exit 0
# Un cero indica que todo Ok.
2) Utilizacin del expr.
#!/bin/bash
echo "Arimticos"
echo
a=`expr 5 + 3`
echo "5 + 3 = $a"
a=`expr $a + 1`
echo
echo "a + 1 = $a"
echo "(incremento)"
a=`expr 5 % 3`
# mdulo
GNUFDL PID_00167541 31 Programacin de comandos combinados (shell scripts)
echo
echo "5 mod 3 = $a"
# Lgicos
# 1 si true, 0 si false,
#+ opuesto a normal Bash convention.
echo "Lgicos"
x=24
y=25
b=`expr $x = $y` # por igual.
echo "b = $b" # 0 ( $x -ne $y )
a=3
b=`expr $a \> 10`
echo 'b=`expr $a \> 10`, por lo cual...'
echo "If a > 10, b = 0 (false)"
echo "b = $b" # 0 ( 3 ! -gt 10 )
b=`expr $a \< 10`
echo "If a < 10, b = 1 (true)"
echo "b = $b" # 1 ( 3 -lt 10 )
echo
# Cuidado con los operadores de escape \.
b=`expr $a \<= 3`
echo "If a <= 3, b = 1 (true)"
echo "b = $b" # 1 ( 3 -le 3 )
# Se utiliza un operador "\>=" operator (greater than or equal to).
echo "String"
echo
a=1234zipper43231
echo "String base \"$a\"."
b=`expr length $a`
echo "Long. de \"$a\" es $b."
# index: posicin del primer caracter que satisface en el string
#
b=`expr index $a 23`
echo "Posicin numrica del \"2\" en \"$a\" es \"$b\"."
# substr: extract substring, starting position & length specified
b=`expr substr $a 2 6`
echo "Substring de \"$a\", comenzando en 2,\
y de 6 chars es \"$b\"."
# Using Regular Expressions ...
b=`expr match "$a" '[0-9]*'` # contador numrico.
echo Nmero de digitos de \"$a\" es $b.
b=`expr match "$a" '\([0-9]*\)'` # cuidado los caracteres de escape
echo "Los dgitos de \"$a\" son \"$b\"."
GNUFDL PID_00167541 32 Programacin de comandos combinados (shell scripts)
exit 0
GNUFDL PID_00167541 33 Programacin de comandos combinados (shell scripts)
Actividades
1. Cread un script interactivo que calcule el nmero de das entre dos fechas introducidas
por el usuario en el siguiente formato da/mes/ao. Tambin deberis calcular el nmero de
horas si el usuario introduce hora de inicio y hora de final en el siguiente formato hh:mm.
Si introduce solo una hora, se calcular hasta las 23:59 del da dado como final del perodo
a calcular.
2. Cread un script que se haga una copia (recursiva) de los archivos en /etc, de modo que un
administrador del sistema pueda modificar los archivos de inicio sin temor.
3. Escribid un script llamado homebackup que automatice el tar con las opciones correctas y
en el directorio /var/backups para hacer una copia de seguridad del directorio principal del
usuario con las siguientes condiciones:
a. Haced un test del nmero de argumentos. El script debe ejecutarse sin argumentos y si
hay, debe imprimir un mensaje de uso.
b. Determinad si el directorio de copias de seguridad tiene suficiente espacio libre para alma-
cenar la copia de seguridad.
c. Preguntad al usuario si desea una copia completa (todo) o una copia incremental (solo
aquellos archivos que hayan cambiado). Si el usuario no tiene una copia de seguridad com-
pleta, se deber hacer, y en caso de una copia de seguridad incremental, slo hacerlo si la
copia de seguridad completa no tiene ms de una semana.
d. Comprimid la copia de seguridad utilizando cualquier herramienta de compresin.
e. Informad al usuario que se har en cada momento, ya que esto puede tardar algn tiempo
y as se evitar que el usuario se ponga nervioso si la salida no aparece en la pantalla.
f. Imprimid un mensaje informando al usuario sobre el tamao de la copia de seguridad
sin comprimir y comprimida, el nmero de archivos guardados/actualizados y el nmero de
directorios guardados/actualizados.
4. Escribid un script que ejecute un simple navegador web (en modo texto), utilizando wget
y links -dump para mostrar las pginas HTML en un terminal.
El usuario tiene 3 opciones: introducir una direccin URL, entrar b para retroceder (back) y q
para salir. Las 10 ltimas URL introducidas por el usuario se almacenan en una matriz, desde
donde el usuario puede restaurar la URL utilizando la funcionalidad b (back).
GNUFDL PID_00167541 34 Programacin de comandos combinados (shell scripts)
Bibliografa
Es recomendable complementar la lectura en la que se ha basado parte de esta documenta-
cin y sobre todo para aspectos avanzados, ya que aqu solo se ha visto un breve resumen
de lo esencial:
Barnett, Bruce. "AWK". General Electric Company.
"Big Admin: Script Examples".
Cooper, Mendel. "Advanced Bash-Scripting Guide".
Garrels, Machtelt. "Bash Guide for Beginners".
"Man bash".
Mike G. "Programacin en BASH - COMO de introduccin".
Robbins, Arnold. "UNIX in a Nutshell" (3 ed.).
"The GNU awk programming language".
Migracin y
coexistencia con
sistemas no Linux
Josep Jorba Esteve
PID_00167542
GNUFDL PID_00167542 Migracin y coexistencia con sistemas no Linux
2010, FUOC. Se garantiza permiso para copiar, distribuir y modificar este documento segn los trminos de la GNU Free
Documentation License, Version 1.2 o cualquiera posterior publicada por la Free Software Foundation, sin secciones invariantes ni
textos de cubierta delantera o trasera. Se dispone de una copia de la licencia en el apartado "GNU Free Documentation License" de
este documento.
GNUFDL PID_00167542 Migracin y coexistencia con sistemas no Linux
ndice
Introduccin............................................................................................... 5
1. Sistemas informticos: ambientes................................................. 7
2. Servicios en GNU/Linux................................................................... 11
3. Tipologas de uso............................................................................... 14
4. Migrar o coexistir.............................................................................. 17
4.1. Identificar requerimientos de servicios ....................................... 19
4.2. Proceso de migracin .................................................................. 20
4.2.1. Workstation .................................................................... 21
4.2.2. Mquinas clientes de escritorio ..................................... 22
5. Taller de migracin: anlisis de casos de estudio...................... 26
5.1. Migracin individual de un usuario de escritorio Windows a
un sistema GNU/Linux ............................................................... 26
5.2. Migracin de una pequea organizacin que dispone de
sistemas Windows y algunos UNIX ............................................ 29
5.3. Migracin de un servidor Windows a un servidor Samba en
GNU/Linux .................................................................................. 32
Actividades.................................................................................................. 41
Bibliografa................................................................................................. 42
GNUFDL PID_00167542 5 Migracin y coexistencia con sistemas no Linux
Introduccin
Una vez realizada una primera aproximacin a los sistemas GNU/Linux, el
siguiente paso es integrarlos en el entorno de trabajo como sistemas de pro-
duccin. Segn el sistema actual que est en uso, podemos plantear, o bien
una migracin total a sistemas GNU/Linux, o bien una coexistencia mediante
servicios compatibles.
La migracin al entorno GNU/Linux puede hacerse de forma progresiva,
sustituyendo servicios parcialmente, o bien sustituyendo todo por los
equivalentes GNU/Linux del antiguo sistema.
En los entornos distribuidos actuales, el paradigma ms presente es el de clien-
te/servidor. Cualquier tarea en el sistema global est gestionada por uno o ms
servidores dedicados, accediendo las aplicaciones o directamente los usuarios
a los servicios prestados.
Respecto al ambiente de trabajo, ya sea desde el caso ms simple, como el
usuario individual, o bien a uno complejo, como un entorno empresarial, en
cada entorno se necesitar un conjunto de servicios que tendremos que selec-
cionar, adaptando luego las mquinas clientes y servidores, para que puedan
acceder a stos o proporcionar sus servicios.
Los servicios pueden englobar muchos aspectos diferentes. Suelen estar pre-
sentes varios tipos, ya sea para compartir recursos o informacin. Son habi-
tuales servidores de archivos, de impresin, de web, de nombres, correo, etc.
El administrador, normalmente, seleccionar un conjunto de servicios que de-
bern estar presentes en el ambiente de trabajo, dependiendo de las necesida-
des de los usuarios finales, y/o de la organizacin, y deber configurar el sopor-
te adecuado a la infraestructura, en forma de servidores que soporten la carga
de trabajo esperada (tanto carga interna, como carga del exterior si la hay).
GNUFDL PID_00167542 7 Migracin y coexistencia con sistemas no Linux
1. Sistemas informticos: ambientes
En el proceso de algunas instalaciones de distribuciones de GNU/Linux, pode-
mos encontrarnos a menudo que nos preguntan por el tipo de ambiente, o por
las tareas a las que va a estar dedicado nuestro sistema. Esto permite muchas
veces escoger un subconjunto de software que se nos instalar por defecto, por
ser el ms adecuado a la funcin prevista. Es habitual que nos pregunten si el
sistema se destinar a:
a) Estacin de trabajo (workstation): este tipo de sistema incorpora algunas
aplicaciones particulares que sern las ms usadas. El sistema, bsicamente,
se dedica a la ejecucin de estas aplicaciones y a un pequeo conjunto de
servicios de red.
b) Servidor: se integran la mayora de servicios de red o, en todo caso, alguno
particular, el cual va a ser el servicio principal del sistema.
c) Estacin dedicada a clculo: aplicaciones intensivas en clculo, renders,
aplicaciones cientficas, grficos CAD, etc.
d) Estacin grfica: escritorio con aplicaciones que necesitan de interaccin
con el usuario en forma grfica.
Usualmente, podemos componer nuestro sistema GNU/Linux a partir de una
o ms de estas posibilidades.
Ms en general, si tuvisemos que separar los ambientes de trabajo en
que se puede utilizar un sistema GNU/Linux, podramos identificar tres
tipos principales de ambiente: estacin de trabajo (workstation), servidor
y escritorio (desktop).
Tambin se podra incluir otro tipo de sistemas, los que llamaramos genri-
camente como dispositivos empotrados (embebbed), o bien sistemas mviles
de pequeas dimensiones, por ejemplo un PDA, un telfono mvil inteligente
(smartphone), una videoconsola porttil, etc. GNU/Linux ofrece, asimismo, so-
porte para estos dispositivos, con kernels reducidos y personalizados para ello.
Ejemplo
Destacamos, por ejemplo, un trabajo inicial realizado por la firma Sharp en
sus modelos Zaurus, un PDA con Linux de altas prestaciones (varios modelos
estuvieron disponibles en las dcadas de los noventa y la primera del 2000). O
Funciones
Los sistemas GNU/Linux pue-
den dedicarse a funciones de
servidor, estacin de trabajo o
escritorio.
GNUFDL PID_00167542 8 Migracin y coexistencia con sistemas no Linux
tambin otras iniciativas Linux de tipo empotrado como los TPV (terminales
punto de venta). O videoconsolas como la GP2X. Tambin es especialmente
destacable la evolucin en el mercado de los smartphones de la plataforma An-
droid de Google Inc., basada en mquina virtual Java sobre un kernel Linux
modificado, as como otras plataformas mviles, como Nokia Maemo y Intel
Moblin.
Nota
Caractersticas e historia de Plataforma Android en:
http://en.wikipedia.org/wiki/Android_(operating_system)
http://www.android.com
Respecto a los tres principales ambientes, veamos cmo se desarrolla cada uno
de estos sistemas informticos en un entorno GNU/Linux:
1) Un sistema de tipo workstation suele ser una mquina de alto rendimiento,
utilizada para una tarea especfica en lugar de un conjunto general de tareas.
La workstation, clsicamente, estaba compuesta de una mquina de altas pres-
taciones con hardware especfico adecuado a la tarea que haba que desarrollar.
Sola tratarse de una mquina Sun Sparc, IBM Risc o Silicon Graphics (entre
otras) con sus variantes de UNIX propietarios. Estas mquinas de alto coste
se orientaban a un segmento claro de aplicaciones, ya fuese el diseo grfico
3D (caso Silicon o Sun) o bases de datos (IBM o Sun). Hoy en da, muchos de
los actuales PC tienen un rendimiento comparable a estos sistemas (aunque
no igual), y la frontera entre uno de estos sistemas y un PC no est ya tan
clara, gracias a la existencia de GNU/Linux como alternativa a las versiones
de UNIX propietarios. Cabe destacar que muchos de estos fabricantes (Sun,
IBM, Silicon) estn ofreciendo GNU/Linux como opcin de operativo para sus
sistemas actuales de gama alta, normalmente mediante convenios con distri-
buidores Linux comerciales, como Red Hat o Novell SUSE.
2) Un sistema de tipo servidor tiene un objetivo concreto, que es ofrecer ser-
vicios a otras mquinas de la red: ofrece caractersticas o una funcionalidad
clara al resto de mquinas. En sistemas informticos relativamente pequeos
(por ejemplo, menores de 5-10 mquinas), no suele haber un sistema exclusivo
de servidor (aunque acostumbran a ser comunes los de archivos e impresin),
y suele estar compartido con otras funcionalidades, por ejemplo tambin co-
mo mquina de tipo escritorio. En sistemas medianos (unas pocas decenas de
mquinas), suele haber una o ms mquinas dedicadas a actuar de servidor,
ya sea la mquina exclusiva que centra todos los servicios (correo, web, etc.)
o un par de mquinas dedicadas a repartirse los servicios principales.
En sistemas grandes (un centenar o ms de mquinas, incluso miles), por la
capacidad de carga puede ser necesario que exista un buen grupo de servido-
res, cada uno de ellos dedicado normalmente a algn servicio en exclusiva, o
incluso se puede dedicar un conjunto de mquinas exclusivamente a un ser-
vicio. Es ms, si estos servicios se proporcionan hacia dentro o hacia fuera
GNUFDL PID_00167542 9 Migracin y coexistencia con sistemas no Linux
de la organizacin mediante acceso por clientes directos o abierto a Internet,
dependiendo de la capacidad de carga que tengamos que soportar, tendremos
que recurrir a soluciones de tipo SMP (mquinas con varios procesadores in-
terconectados en la misma mquina) o de tipo clusters de alta disponibilidad
(agrupacin de mquinas que se distribuyen la carga de un determinado ser-
vicio).
Los servicios que podemos necesitar de forma interna (o externa), podran
englobarse (entre otras) dentro de estas categoras de servicios:
a) Aplicaciones: el servidor dispone de ejecucin de aplicaciones y como
clientes slo observamos la ejecucin de stas e interactuamos con ellas. Pue-
de, por ejemplo, englobar servicios de terminales y ejecucin de aplicaciones
en web.
b) Ficheros: se nos proporciona un espacio comn y accesible desde cualquier
punto de la red donde almacenar/recuperar nuestros ficheros.
c) Base de datos: se centralizan datos que se van a consultar o producir por
parte de las aplicaciones del sistema en red (o bien de otros servicios).
d) Impresin: se dispone de conjuntos de impresoras, donde se gestionan sus
colas y los trabajos que se les enven desde cualquier punto de la red.
e) Correo electrnico: se ofrecen servicios para recibir, enviar o reenviar co-
rreos procedentes o destinados tanto al interior como al exterior.
f) Web: servidor (o servidores) propios de la organizacin, de utilizacin in-
terna o externa para los clientes.
g) Informacin de red: en organizaciones grandes es imprescindible poder
localizar los servicios ofrecidos, recursos compartidos o los mismos usuarios. Se
necesitan servicios que permitan esta localizacin y consulta de propiedades
de cada tipo de objeto.
h) Servicios de nombres: se necesitan servicios que permitan nombrar y tra-
ducir los distintos nombres por los que se conoce un mismo recurso.
i) Servicios de acceso remoto: en caso de no disponer de acceso directo, de-
bemos disponer de mtodos alternativos que nos permitan interaccionar des-
de el exterior, que nos dejen acceder al sistema que queramos.
j) Servicios de generacin de nombres: en el nombrado de mquinas, por
ejemplo, puede darse una situacin muy variable de nmero o que aquellas no
sean siempre las mismas. Debemos proporcionar mtodos para identificarlas
claramente.
GNUFDL PID_00167542 10 Migracin y coexistencia con sistemas no Linux
k) Servicios de acceso a Internet: en muchas organizaciones no tiene por qu
haber accesos directos, sino accesos por medio de pasarelas (gateways) o por
intermediarios (proxys).
l) Servicios de filtrado: medidas de seguridad para filtrar informacin inco-
rrecta o que afecte a nuestra seguridad, o proteger/limitar el acceso a los re-
cursos.
3) Un sistema de tipo desktop sera simplemente una mquina que se utiliza
para las tareas informticas rutinarias, de todos los das (por ejemplo, el PC
que tenemos en casa o en la oficina).
Ejemplo:
Podramos definir las siguientes tareas como comunes (se incluyen algunos de
los programas GNU/Linux ms utilizados):
Tareas ofimticas. El software clsico de una suite ofimtica: procesador de
texto, hoja de clculo, presentaciones, alguna pequea base de datos, etc.
Podemos encontrar suites como OpenOffice (gratuita), StarOffice (de pa-
go, producida por Sun), KOffice (de KDE), o varios programas como Gnu-
meric, AbiWord, que formaran una suite para Gnome (denominada Gno-
meOffice).
Navegacin web. Navegadores como Mozilla Firefox, Konqueror, Epip-
hany, etc.
Soporte hardware (dispositivos USB, de almacenamiento...). En GNU/Li-
nux soportados por los controladores adecuados, normalmente proporcio-
nados en el kernel, o bien por fabricantes. Tambin hay herramientas de
anlisis de hardware nuevo, como kudzu/hal (Fedora/Red Hat) o discover
(Debian). Media y entretenimiento (grficos, procesamiento imgenes, fo-
tografa digital, juegos y ms). En GNU/Linux hay una cantidad enorme
de estas aplicaciones, de calidad muy profesional: Gimp (retoque fotogr-
fico), Sodipodi, Xine, Mplayer, gphoto, etc.
Conectividad (acceso al escritorio de forma remota, acceso a otros siste-
mas). Este aspecto en GNU/Linux hay una cantidad enorme de herramien-
tas, ya sea las propias TCP/IP como ftp, telnet, ssh, web, etc. como el
propio X Window, que tiene capacidades de escritorio remoto hacia cual-
quier mquina UNIX, rdesktop (para conectarse a escritorios Windows), o
VNC (que permite conectarse a UNIX, Windows, Mac, etc.).
Nota
Pginas web de suites ofimti-
cas:
http://openoffice.org
http://www.koffice.org/
http://live.gnome.org/Gno-
meOffice
GNUFDL PID_00167542 11 Migracin y coexistencia con sistemas no Linux
2. Servicios en GNU/Linux
GNU/Linux dispone de servidores adaptados para cualquier ambiente
de trabajo.
Las categoras de los servicios que hemos apuntado tienen equivalentes en
servicios que podemos proporcionar desde nuestros sistemas GNU/Linux al
resto de mquinas de la red (y de los que tambin podremos actuar como
cliente):
a) Aplicaciones: GNU/Linux puede ofrecer servicios de terminales remotos,
ya sea por conexin directa mediante interfaces serie de terminales "tontos",
que sirvan para visualizar o interactuar con las aplicaciones. Otra posibilidad
es la conexin remota de modo textual, desde otra mquina, por medio de
servicios TCP/IP como los rlogin, telnet, o de forma segura con ssh. GNU/Linux
proporciona servidores para todos estos protocolos. En el caso de ejecutar apli-
caciones grficas, disponemos de soluciones mediante X Window de forma
remota. Cualquier cliente UNIX, Linux o Windows (u otros) que dispongan de
un cliente X Window puede visualizar la ejecucin del entorno y sus aplica-
ciones. Asimismo, hay otras soluciones como VNC para el mismo problema.
En cuanto a las aplicaciones va web, GNU/Linux dispone del servidor Apa-
che, y cualquiera de los mltiples sistemas de ejecucin web estn disponibles,
ya sean Servlets/JSP (con Tomcat), Perl, PHP, xml, webservices, etc., as como
servidores de aplicaciones web como Oracle/BEA WebLogic, IBM Websphere,
JBoss (libre), que tambin se ejecutan sobre plataformas GNU/Linux.
b) Ficheros: pueden servirse ficheros de mltiples maneras, desde proporcio-
nar acceso a ellos por ftp como servirlos de forma transparente a otras mqui-
nas UNIX y GNU/Linux con NFS, o bien actuar de cliente o servidor hacia
mquinas Windows mediante Samba/CIFS.
c) Base de datos: soporta una gran cantidad de bases de datos cliente/servi-
dor de tipo relacional, como MySQL y PostgreSQL, y varias comerciales, como
Oracle o IBM DB2, entre otras.
d) Impresin: puede servir impresoras locales o remotas, tanto a sistemas
UNIX con protocolos TCP/IP como a Windows mediante Samba/CIFS.
GNUFDL PID_00167542 12 Migracin y coexistencia con sistemas no Linux
e) Correo electrnico: ofrece tanto servicios para que los clientes obtengan
correo en sus mquinas (servidores POP3 o IMAP), como agentes MTA (mail
transfer agent) para recuperar y retransmitir correo, como el servidor Sendmail
(el estndar UNIX) u otros como Exim o Postfix y, en el caso de envos exter-
nos, el servicio de SMTP.
f) Web: est disponible el servidor http Apache, ya sea en sus versiones 1.3.x
o las nuevas 2.0.x/2.2.x. Adems, podemos integrar servidores de aplicaciones
web, como Tomcat para servir servlets/JSP o servidores de aplicaciones como
JBoss.
g) Informacin de red: servicios como NIS, NIS+ o LDAP nos permiten cen-
tralizar la informacin de las mquinas, usuarios y recursos varios de nuestra
red, facilitando la administracin y los servicios a los usuarios, de manera que
stos no dependan de su situacin en la red. Si nuestra organizacin tiene
cierta estructura interna, estos servicios nos permiten modelarla (mediante es-
tructuras jerrquicas), dejando acceso a los recursos a quien los necesita.
h) Servicios de nombres: servicios como DNS para los nombres de las mqui-
nas y su traduccin desde IP o a IP, por medio de, por ejemplo, el servidor Bind
(el DNS estndar UNIX).
i) Servicios de acceso remoto: ya sea para ejecutar aplicaciones o para obte-
ner informacin remota de las mquinas. Los servidores podran ser los que
hemos comentado para aplicaciones: X Window, VNC, etc., y tambin los que
permiten ejecutar algunos comandos remotos sin interactividad, como rexec,
rsh, ssh, etc.
j) Servicios de generacin de nombres: servicios como DHCP permiten redes
TCP/IP, una generacin dinmica (o esttica) de las direcciones IP que se dis-
ponen en funcin de las mquinas que las necesiten.
k) Servicios de acceso a Internet: en determinadas situaciones puede tenerse
un nico punto de salida a Internet (o varios). Estos puntos suelen actuar co-
mo proxy, ya que tienen el acceso y lo redirigen a los posibles accesos a Internet
por parte de los clientes. Tambin suelen actuar de cach de contenidos. En
GNU/Linux podemos disponer, por ejemplo, del Squid. Dentro de esta catego-
ra, tambin podra entrar la actuacin de un sistema GNU/Linux de pasarela
(gateway) o de router, ya sea para dirigir paquetes hacia otras redes o para buscar
rutas de reenvo alternativas. Tambin en el caso de pequeas instalaciones
como las domesticas, podramos incluir el acceso a Internet mediante mdem
por los servicios PPP.
l) Servicios de filtrado: una de las medidas de seguridad ms utilizadas ac-
tualmente es la implantacin de cortafuegos (o firewalls). Consiste en tcnicas
de filtrado de los paquetes entrantes o salientes, de los diferentes protocolos
GNUFDL PID_00167542 13 Migracin y coexistencia con sistemas no Linux
que estemos usando, para poner barreras a los no deseados. En GNU/Linux
disponemos de mecanismos como ipchains (obsoleto) e iptables (ms moder-
no, tambin denominado Netfilter) para implementar los cortafuegos.
GNUFDL PID_00167542 14 Migracin y coexistencia con sistemas no Linux
3. Tipologas de uso
GNU/Linux ofrece, como sistema, caractersticas vlidas para el uso des-
de el usuario personal hasta el usuario de una infraestructura de media
o gran escala.
Desde la perspectiva de los usuarios de los sistemas GNU/Linux, podramos
diferenciar usuarios individuales, de media escala y de organizacin amplia:
a) El usuario individual o usuario domstico: este tipo de usuario dispone
de una o varias mquinas en su hogar, que sern compartidas o no. En general,
en este ambiente, GNU/Linux se usara para desarrollar un sistema de escrito-
rio, con lo cual ser importante la parte grfica: el escritorio de GNU/Linux.
Tambin est adquiriendo importancia, por el crecimiento de los contenidos
digitales (foto, video, msica), la utilizacin de GNU/Linux en un ambiente
domstico, como servidor de medios digitales, y/o servidor de archivos, en
forma o bien de servidores creados a medida, o de productos comerciales ti-
po NAS (network attached storage) caseros que proporcionan servidores Samba,
NFS, FTP, impresin, backup y streaming de video/audio.
En cuanto a la parte de escritorio tenemos dos opciones principales, en forma
de los entornos Gnome y KDE. Los dos entornos constituyen opciones per-
fectamente vlidas. Ambos disponen de servicios de visualizacin y ejecucin
de las aplicaciones, as como de un amplio conjunto de aplicaciones propias
bsicas que nos permiten desarrollar todo tipo de tareas rutinarias. Los dos
entornos ofrecen un escritorio visual con diferentes mens, barras de utilidad
e iconos, as como navegadores de ficheros propios y aplicaciones de utilidad
variadas. Cada entorno puede ejecutar sus aplicaciones propias y las disponi-
bles en el otro entorno, aunque cada aplicacin tiene mejor ejecucin en su
entorno propio, por tener un aspecto visual ms acorde al entorno para el que
se dise.
En cuanto a las aplicaciones para el usuario personal, incluiramos las tpicas
del sistema de escritorio. En el caso de que el usuario disponga de una red en su
casa, por ejemplo, un pequeo conjunto de ordenadores con una red de tipo
Ethernet, tambin podran ser interesantes servicios para compartir ficheros e
impresoras entre las mquinas. Podran ser necesarios servicios como NFS, si
hay otras mquinas Linux, o bien Samba, si hay mquinas con Windows (o
Mac). Los sistemas NAS caseros intentan integrar todos estos servicios junto
con un conjunto de almacenamiento en disco (RAID), accesible por red me-
diante diferentes protocolos (ftp, http, nfs, samba...).
GNUFDL PID_00167542 15 Migracin y coexistencia con sistemas no Linux
En el caso de tener una conexin a Internet por algn proveedor de acceso
(ISP), segn la forma de conexin utilizada, necesitaramos controlar los dis-
positivos y los protocolos correspondientes:
Conexin por mdem: los mdems telefnicos suelen utilizar el proto-
colo PPP de conexin con el proveedor. Tendramos que habilitar este pro-
tocolo y configurar las cuentas que tengamos habilitadas en el proveedor.
Un problema importante con Linux es el tema de los winModems. Estos
mdems (con excepciones) no estn soportados, ya que no son un mdem
real, sino una simplificacin hardware ms un software de driver, y la ma-
yora funcionan nicamente con Windows, por lo que hay que evitarlos
(si no estn soportados) y comprar mdem "reales" (completos).
Conexin mediante un mdem ADSL: el funcionamiento sera parecido,
se podra utilizar el protocolo PPP u otro denominado EoPPP. Esto puede
depender del fabricante del mdem y del tipo, Ethernet o USB.
Conexin por ADSL con router: la configuracin es muy simple, debido
a que en esta situacin slo hay que configurar la tarjeta de red Ethernet
y/o la tarjeta wireless en nuestro sistema para conectar al router ADSL (ste
suele proporcionar servicios de IP dinmica para las mquinas cliente).
Una vez la interfaz a Internet est conectada y configurada, el ltimo punto es
incluir el tipo de servicios que necesitaremos. Si slo queremos actuar como
clientes en Internet, bastar con utilizar las herramientas cliente de los dife-
rentes protocolos, ya sea ftp, telnet, el navegador web, el lector de correo o
news, etc. Si adems queremos ofrecer servicios hacia el exterior por ejemplo,
publicar una web (servidor web) o permitir nuestro acceso externo a la m-
quina (servicios de ssh, telnet, ftp, X Window, VNC, etc.), en este caso, servi-
dor cabe recordar que esto slo ser posible, en principio, si nuestro provee-
dor nos ofrece direcciones IP fijas (estticas) para nuestra mquina. De otro
modo, nuestra direccin IP cambiara a cada conexin y la posibilidad de pro-
porcionar un servicio se volvera muy difcil o imposible (hay posibles solu-
ciones a este problema, como los servicios, gratuitos, ofrecidos por la empresa
DynDNS).
Otro servicio interesante sera compartir el acceso a Internet entre las mqui-
nas de que dispongamos a partir de un sistema GNU/Linux que est conectado
al exterior (actuando de proxy o gateway para el resto de mquinas). De hecho,
varios routers ADSL son en realidad servidores de este tipo, y muchos fabrican-
tes utilizan un GNU/Linux empotrado en el firmware de los routers. Aun as, si
disponemos de una nica mquina con acceso a Internet (mdem telefnico
o mdem ADSL), podemos establecer esta mquina con conexin compartida
para el resto de nuestra red casera.
GNUFDL PID_00167542 16 Migracin y coexistencia con sistemas no Linux
b) Usuario de media escala: es un usuario de una organizacin de media es-
cala, ya sea una pequea empresa o un grupo de usuarios. Estos usuarios dis-
pondrn de conectividad en red local (por ejemplo, una LAN) con algunas
mquinas e impresoras conectadas. Y tendrn acceso directo a Internet, bien
por medio de algn proxy (punto o mquina destinada a la conexin externa),
o bien a travs de unas pocas mquinas conectadas fsicamente a Internet. En
general, en este ambiente, el trabajo suele ser en parte local y en parte com-
partido (ya sea recursos como las impresoras o aplicaciones comunes). Nor-
malmente, necesitaremos sistemas de escritorio, por ejemplo, en una oficina
podemos utilizar las aplicaciones ofimticas junto con clientes Internet, y qui-
zs tambin sistemas de tipo workstation. Por ejemplo, en trabajos de ingenie-
ra o cientficos pueden utilizarse aplicaciones de CAD, de procesamiento de
imgenes, aplicaciones de clculo matemtico intensivo, etc., y seguramente
habr algunas mquinas ms potentes destinadas a estas tareas.
Cabe comentar que este ambiente est un poco en transicin hacia el hecho de
ser el comn del usuario individual, ya que debido a las conexiones de banda
ancha disponibles en los hogares cada vez se amplan ms las caractersticas del
usuario domstico y se acercan a este segundo ambiente. De hecho, a veces el
usuario de media escala suele denominarse como SOHO (Small Office, Home
Office).
En este ambiente de uso, necesitaremos servicios de comparticin de recursos
como ficheros, impresoras, posiblemente aplicaciones, etc. Por lo tanto, en un
sistema GNU/Linux sern adecuados los servicios de NFS, servicios de impre-
sin y Samba (si hay mquinas Windows con las que compartir ficheros o im-
presoras). Tambin es posible que tengamos necesidad de entornos de bases
de datos, algn servidor interno de web con aplicaciones compartidas, etc.
c) Usuario de organizacin amplia: este tipo de usuario es una evolucin
del anterior, y se diferencia de l en el tamao de la organizacin y en los
recursos de los que puede disponer, que podran llegar a ser muy altos, de
modo que se necesitaran algunos recursos de sistemas de directorio de red de
tipo NIS, NIS+ o LDAP para poder manejar la gran cantidad de informacin
de la organizacin y reflejar su estructura, as como, seguramente, disponer de
grandes infraestructuras de servicios hacia los clientes externos, por lo general
en forma de sitios web con aplicaciones distintas.
En este tipo de organizaciones se presentan niveles de heterogeneidad eleva-
dos, tanto en el hardware como en el software de los sistemas, y podramos
encontrar muchas arquitecturas y diferentes sistemas operativos, por lo que
la tarea principal consiste en facilitar la compatibilidad de los datos va bases
de datos y formatos de documentos estndar y facilitar la interconexin me-
diante protocolos, clientes y servidores estndar (con elementos TCP/IP).
GNUFDL PID_00167542 17 Migracin y coexistencia con sistemas no Linux
4. Migrar o coexistir
A continuacin, vamos a plantear otro aspecto importante en el proceso de
adopcin de los sistemas GNU/Linux. Supongamos que o bien somos princi-
piantes en el manejo de este sistema o, por el contrario, que somos experi-
mentados y queremos adoptar uno o varios sistemas GNU/Linux como usua-
rios individuales, para el trabajo en nuestra pequea organizacin, o nos es-
tamos planteando sustituir la infraestructura completa (o parcial) de nuestra
gran empresa u organizacin.
Realizar esta migracin no es algo trivial; hay que evaluar las opciones
mediante un estudio en el que se analicen tanto los costes como las
prestaciones que esperamos obtener. Adems, puede realizarse total o
parcialmente, con cierto grado de coexistencia con los antiguos siste-
mas.
Nos encontramos ante un proyecto de migracin, total o parcial, de nuestros
sistemas informticos hacia GNU/Linux, y como administradores somos res-
ponsables de este proceso.
Como en todo proyecto, habr que estudiar el modo de responder a cuestiones
como: es rentable el cambio, en prestaciones, en coste?, con qu objetivo
lo hacemos?, qu requerimientos queremos o debemos cumplir?, podemos
hacer o es necesaria una migracin completa?, tiene que haber coexistencia
con otros sistemas?, habr que formar de nuevo a los usuarios?, podremos
utilizar el mismo hardware o necesitaremos uno nuevo?, habr costes aadi-
dos importantes? o, simplemente, saldr bien? Esta y muchas preguntas ms
son las que tendremos que intentar responder. En el caso empresarial, la res-
puesta pasara por la definicin de un proyecto/plan de migracin, con sus
objetivos, anlisis de requerimientos, proceso de implantacin, estudios eco-
nmicos, planes de formacin de usuarios, calendarios de fases de desarrollo e
implementacin, etc. No entraremos en esto, pero nos plantearemos algunas
de las cuestiones de forma sencilla. Y en el apartado 5 examinaremos unos pe-
queos casos prcticos de cuestiones a examinar en el proceso de migracin.
Adems, en el momento en que empecemos la migracin a los sistemas GNU/
Linux es cuando comenzaremos a apreciar las ventajas que aportar a nuestra
organizacin:
a) Costes: reduccin de los costes, en licencias software del sistema y de las
aplicaciones. GNU/Linux tiene un coste 0 en cuanto a las licencias, si se obtie-
ne desde la Red (por ejemplo, en forma de imgenes de los CD de la distribu-
GNUFDL PID_00167542 18 Migracin y coexistencia con sistemas no Linux
cin), o un coste despreciable teniendo en cuenta que la mejor comparacin
para sistemas equivalentes en prestaciones seran sistemas Windows Server,
con costes que se sitan en rangos de varios miles de euros por licencia, sin
incluir gran parte del software extra que proporciona una distribucin GNU/
Linux tpica.
Pero cuidado, no hay que desestimar los costes de mantenimiento y forma-
cin. Si nuestra organizacin slo est formada por usuarios y administradores
Windows, podemos tener costes altos en nueva formacin, personal, y quizs
mantenimiento. Por eso, grandes empresas desean depender de algn distri-
buidor comercial de GNU/Linux para que les implante y mantenga el siste-
ma, como por ejemplo las versiones empresariales que ofrecen Red Hat, SuSe
y otros. Estas versiones GNU/Linux tambin tienen costes de licencia altos
(comparables a Windows), pero, por el contrario, estn ya adaptadas a estruc-
turas empresariales y traen software propio para gestionar la infraestructura
informtica de las empresas. Otro aspecto importante, que resumira esta es-
timacin de costes, es el concepto de TCO (total cost of ownership), como eva-
luacin global de los costes asociados que nos encontraremos al emprender
un desarrollo tecnolgico. No slo hay que evaluar los costes de licencias y
maquinaria, sino tambin los costes de soporte y formacin de las personas
y productos implicados, que pueden ser tan importantes o ms que los de la
solucin implementada.
b) Soporte: GNU/Linux tiene el soporte de mantenimiento mayor que haya
tenido un sistema operativo, y gratis en su mayor parte. A pesar de ello, algunas
empresas no lo adoptan por ciertos temores, objetando que no hay soporte del
producto, y se dedican a comprar distribuciones comerciales que les ofrecen
contratos de soporte y mantenimiento. GNU/Linux tiene una comunidad de
soporte mundial bien establecida, por medio de diferentes organizaciones que
proporcionan documentacin libre (los famosos Howto's), foros de usuarios
especializados, comunidades de usuarios de prcticamente cualquier regin o
pas del mundo, etc. Cualquier duda o problema con el que nos encontremos
puede buscarse (por ejemplo, por alguno de los buscadores en Internet), y po-
demos tener respuestas en minutos. Cuando no, si hemos encontrado un bug,
error, o situacin no probada, podemos informar de ella en varios lugares (fo-
ros, sitios de desarrollo, sitios de bugs de distribuciones, etc.) y obtener solu-
ciones en horas o a lo sumo en algunos das. Siempre que aparezca una duda
o algn problema, hay que intentar primero algunos procedimientos (as se
desarrolla el aprendizaje de administracin), y si no obtenemos solucin en
un tiempo prudencial, consultar a la comunidad GNU/Linux por si a algn
otro usuario (o grupo de ellos) le ha ocurrido el mismo problema y ha obte-
nido solucin. Si no, siempre podemos informar del problema (sitios de bugs
de las distribuciones), para que nos planteen algunas soluciones temporales,
o se comiencen a elaborar revisiones de los paquetes software afectados, si se
considera que es un problema importante.
Algunas fuentes de
soporte GNU/Linux
Linux Howto's: http://
www.tldp.org/
HowtoForge: http://
howtoforge.org/
LinuxQuestions: http://
www.linuxquestions.org
Linux Forum: http://
www.linuxforums.org/forum/
Soporte Debian:
http://www.debianhelp.org/
http://forums.debian.net/
http://www.debian-
administration.org/
Soporte Fedora:
http://fedoraforum.org/
http://fedorasolved.org/
http://fedoraunity.org/
GNUFDL PID_00167542 19 Migracin y coexistencia con sistemas no Linux
4.1. Identificar requerimientos de servicios
Si tenemos unos sistemas ya funcionando, deberemos tener implantados al-
gunos servicios de los cuales sern clientes los usuarios, o servicios que ayu-
den a la infraestructura del soporte informtico. Los servicios entrarn dentro
de alguna de las categoras vistas anteriormente, con las opciones GNU/Linux
que comentamos.
Los sistemas GNU/Linux no son "nuevos" en absoluto, y derivan (como vimos
en la introduccin) de una historia de ms de cuarenta aos de uso y desarrollo
de los sistemas UNIX. Gracias a ello, una de las primeras cosas que veremos es
que no nos falta soporte para ningn tipo de servicio que queramos. Si acaso,
habr diferencias en la forma de hacer las cosas. Adems, muchos de los ser-
vicios que se utilizan en los sistemas informticos fueron pensados, investiga-
dos, desarrollados e implementados en su da para UNIX, y posteriormente
adaptados a otros sistemas (como Windows, con ms o menos acierto).
Muchas de las empresas que disponen de UNIX propietarios participan
en GNU/Linux y ofrecen algunos de sus desarrollos a la comunidad.
Cualquier servicio disponible en cada momento podr ser adaptado en los
sistemas GNU/Linux con servicios equivalentes (cuando no iguales).
Ejemplo
Un caso famoso es el de los servidores Samba. Windows ofrece lo que l denomina "com-
partir archivos e impresoras en red" mediante unos protocolos propios denominados ge-
nricamente SMB (server message block) (con apoyo de red en los protocolos NetBios y
NetBEUI). Tambin es de comn uso el nombre CIFS (common Internet file system), que es
como se denomin al protocolo en una segunda revisin (que segua incluyendo a SMB
como protocolo base). Estos protocolos permiten compartir carpetas de archivos (o dis-
cos) y de impresoras en una red de mquinas Windows (en una configuracin de work-
group, o trabajo en grupo, o en dominios Windows). En UNIX esta idea ya era antigua,
cuando apareci en Windows, y se dispona de servicios como NFS de comparticin de
archivos o la gestin remota de impresoras, bajo protocolos TCP/IP.
Uno de los problemas de sustituir los servicios Windows de comparticin basados en
NetBios/NetBeui (y ltimamente con NetBios sobre TCP/IP), era cmo dar soporte a es-
tos protocolos, ya que, si queramos conservar las mquinas clientes con Windows, no
podamos utilizar los servicios UNIX (aunque distintos fabricantes han implementado
clientes UNIX para Windows, suelen ser una opcin o bien cara o bien no completa).
Para este problema, Samba se desarroll como un servidor para UNIX que soportaba los
protocolos Windows y poda sustituir a una mquina cliente/server Windows de forma
transparente; los usuarios clientes con Windows no tenan por qu notar absolutamen-
te nada. Es ms, el resultado fue que en la mayor parte de los casos el rendimiento era
comparable, cuando no era mejor que en la mquina original con los servicios Windows.
Actualmente Samba evoluciona constantemente para mantener la compatibilidad de los
servicios Windows de comparticin de impresoras y archivos, debido a los cambios ge-
nerales a que Microsoft somete los protocolos SMB/CIFS (base que Samba implementa)
en cada nueva versin de Windows; en particular, la evolucin desde los esquemas de
trabajo en grupo en sus versiones cliente del operativo, a los esquemas centralizados en
servidor (o en grupos de ellos), con servicios particulares de autentificacin de usuarios
(NTLM, NTLMv2, Kerberos) y almacenamiento centralizado de la gestin del sistema co-
mo Active Directory. Tambin se vara la configuracin de servidores de dominios en las
diferentes versiones de Windows server existentes (ya sean con servidores controladores
primarios, backup o Active Directory).
GNUFDL PID_00167542 20 Migracin y coexistencia con sistemas no Linux
Actualmente, en los procesos de migracin con Samba tendremos que observar qu con-
figuraciones de clientes/servidores Windows (y las versiones de ste) existen en el siste-
ma informtico, as como qu mecanismos de autentificacin de los usuarios y/o gestin
de la informacin se utilizan (grupos, dominios, sistema de autentificacin). Adems,
necesitaremos conocer la estructuracin del sistema informtico en dominios (y sus ser-
vidores controladores, miembros o servidores aislados), para poder realizar un mapeado
completo y correcto hacia soluciones basadas sobre Samba, y en servicios complementa-
rios de autentificacin de usuarios (winbind, kerberos, nss_ldap) y gestin de directorios
(como por ejemplo openLDAP).
4.2. Proceso de migracin
En el proceso de migracin, hay que tener en cuenta qu se quiere migrar, y si
quiere realizarse de forma completa o parcial, coexistiendo con otros servicios
o equipos o con un sistema operativo diferente.
En estos ambientes, como en las grandes organizaciones, en los que en-
contramos un gran nmero de sistemas heterogneos, habr que tener
en cuenta que seguramente no se migrarn todos, en especial los siste-
mas de tipo workstation dedicados a la ejecucin de alguna aplicacin
bsica para una tarea. Puede que no exista la aplicacin equivalente o
simplemente podemos desear quedarnos con esos sistemas por razones
de coste o para rentabilizar la inversin realizada.
Podemos migrar varios elementos, ya sean los servicios que ofrecemos, las m-
quinas que los sirven o los clientes que acceden a ellos. Los elementos que se
migren pueden ser variados.
En la migracin, pasaremos por la sustitucin de un servicio por otro equiva-
lente, normalmente con el menor impacto posible si no queremos sustituir
tambin a los clientes.
En caso de clientes Windows, podemos usar el servidor Samba para sustituir
los servicios de archivos e impresoras que proporcionaban las mquinas Win-
dows. Si se trata de otros servicios, podremos sustituirlos por los equivalentes
GNU/Linux. En el caso de sustituir slo algn servicio, normalmente se inha-
bilitar el servicio en la mquina que lo ofreca y se habilitar en el sistema
nuevo. Pueden ser necesarios cambios en los clientes (por ejemplo, direcciones
de la nueva mquina o parmetros relacionados con el servicio).
Si la funcin la cumpla por entero una mquina servidora, hay que analizar
si la mquina estaba dedicada a uno o ms servicios y si todos podrn ser sus-
tituidos. En tal caso, slo hay que reemplazar la mquina antigua por la nue-
va (o mantener la antigua) con los servicios bajo GNU/Linux y, en todo caso,
modificar algn parmetro en los clientes si fuese necesario. Normalmente,
antes de efectuar el cambio, es conveniente testear la mquina por separado
con algunos clientes para asegurarse de que cumple su funcin correctamente
y sustituir las mquinas en algn periodo de inactividad del sistema.
GNUFDL PID_00167542 21 Migracin y coexistencia con sistemas no Linux
En cualquier caso, seguramente habr que hacer backups de los datos anterio-
res al nuevo sistema, por ejemplo, el sistema de ficheros o las aplicaciones dis-
ponibles en el servidor original. Otro de los puntos previos a tener en cuenta
es la portabilidad de los datos; un problema que a menudo presenta difcil
solucin si en la organizacin se utilizaban formatos de datos o aplicaciones
dependientes de una plataforma.
Algunos casos prcticos de problemas con que se encuentran algunas empresas hoy en
da son:
1) Aplicaciones en web con ASP o ASP.net: algunas de estas aplicaciones son slo
realizables en plataformas web con Windows y el servidor web IIS de Microsoft. Ha-
bra que evitarlas, si en algn momento pensamos hacer una migracin de platafor-
mas, y no queremos reescribirlas o pagar a una empresa para que lo haga. En plata-
formas GNU/Linux est disponible el servidor web Apache (el ms utilizado en Inter-
net), que tambin se puede utilizar con Windows. Este servidor soporta ASP en Perl
(en Windows se suele utilizar visual basic, C# y Javascript generalmente) y existen
soluciones de terceros para migrar los ASP o ms o menos convertirlos. Pero si nues-
tra empresa dependiese de esto, sera muy costoso en tiempo y dinero. Una solucin
prctica habra sido realizar los desarrollos web en Java (que s que es portable entre
plataformas) u otras soluciones como PHP. En este punto cabe destacar el proyecto
Mono (patrocinado por Novell) para la portabilidad de parte del entorno .NET de
Microsoft a GNU/Linux, en particular gran parte de las API de .NET, el lenguaje C#,
y la especificacin ASP.NET. Permiten una migracin flexible de aplicaciones .NET
basadas en API .NET que estn soportadas por la plataforma Mono. Por otra parte,
cabe sealar el proyecto DotGnu de la FSF, como alternativa GPL a Mono.
2) Bases de datos: utilizar, por ejemplo, un SQL server de Microsoft nos hace total-
mente dependientes de su plataforma Windows. Adems, si utilizamos soluciones
propietarias en un entorno concreto para aplicaciones de la base de datos, sern de
difcil transferencia. Otras bases de datos, como Oracle y DB2 (de IBM) son ms por-
tables por disponer de versin en las diferentes plataformas (GNU/Linux incluida), o
por utilizar lenguajes de programacin ms portables. Tambin se podra trabajar con
sistemas de bases de datos PostgreSQL o MySQL (tambin tiene versin para Win-
dows) disponibles en GNU/Linux, y que permiten una transicin ms fcil. Asimis-
mo, si se combina con el desarrollo web tenemos muchas facilidades. En este senti-
do, hoy en da se utilizan sistemas como aplicaciones web con Java, ya sea servlets,
applets o EJB, o bien soluciones como las famosas LAMP combinacin de GNU/Linux,
Apache, Mysql y Php.
4.2.1. Workstation
En estas migraciones el mayor problema parte de las aplicaciones, ya que son
las que dan su razn de ser a la estacin de trabajo, ya sean programas de CAD,
de animacin, de ingeniera o cientficos. Aqu ser importante que podamos
sustituirlas por aplicaciones iguales o, como mnimo, compatibles con las mis-
mas caractersticas o con la funcionalidad esperada, o con portabilidad de for-
matos de datos o ficheros. Normalmente, la mayor parte de estas aplicaciones
ya provienen de un mundo UNIX, puesto que la mayora de estas workstations
estaban pensadas como mquinas UNIX. Por ello, quizs baste una recompi-
lacin o una adaptacin mnima al nuevo sistema GNU/Linux, si disponemos
del cdigo fuente (como suele pasar en muchas aplicaciones cientficas). Si se
trata de aplicaciones comerciales, los fabricantes (de software de ingeniera y
cientfico) comienzan a adaptarlas a GNU/Linux, aunque en estos casos las
aplicaciones suelen ser muy caras (pueden ir perfectamente de miles a cente-
GNUFDL PID_00167542 22 Migracin y coexistencia con sistemas no Linux
nares de miles de euros). Tambin para algunos softwares hay soluciones libres
compatibles en mayor o menor medida. Hay que examinar qu soluciones li-
bres tenemos y si se adaptan mnimamente a nuestras necesidades.
4.2.2. Mquinas clientes de escritorio
Las mquinas de escritorio continan siendo un quebradero de cabeza en el
mundo GNU/Linux, ya que ofrecen bastantes problemas adicionales. En los
servidores, las mquinas se destinan a funcionalidades claras, que en general
no requieren interfaces grficas complejas (muchas veces con comunicacin
textual es suficiente), el hardware es de propsito especfico y de altas presta-
ciones, se compra para unas funcionalidades concretas y las aplicaciones sue-
len ser los propios servidores incluidos en el sistema operativo o algunos de
terceros. Adems, estas mquinas suelen estar gestionadas por personal de tipo
administrador que tiene amplios conocimientos de lo que gestiona. Por con-
tra, en el caso del escritorio, nos encontramos con un factor problemtico (en
s mismo, y an ms para los administradores): los usuarios finales del siste-
ma. Los usuarios de escritorio esperan disponer de potentes interfaces grficas,
ms o menos intuitivas, y de aplicaciones que permitan desarrollar sus tareas
rutinarias, normalmente ofimticas. Este tipo de usuario (con excepciones)
no tiene por qu tener unos conocimientos informticos elevados. En gene-
ral, sus conocimientos son de ofimtica y suele usar un reducido nmero de
aplicaciones con mayor o menor dominio de stas. Aqu GNU/Linux tiene un
problema claro, ya que UNIX como tal nunca fue pensado como un sistema
puramente de escritorio, y slo fue adaptado a posteriori por sistemas grficos
como X Window y los diferentes entornos de escritorios, como los actuales de
GNU/Linux: Gnome y KDE. Adems, el usuario final suele estar acostumbrado
a sistemas Windows (que copan casi un 95% del mercado de escritorio), aun-
que la tendencia tambin est cambiando, con ms plataformas disponibles
en escritorio como MacOS X (de hecho, un UNIX con interfaz de escritorio
propia, aunque puede usar tambin X Window).
El ambiente de escritorio es una batalla todava por librar para los sis-
temas GNU/Linux; tienen que vencer la desconfianza de los usuarios
a cambiar de sistema y saber dar a conocer que ofrecen alternativas de
sencillez y aplicaciones, que solucionan las tareas de los usuarios.
En el caso del escritorio, GNU/Linux tiene que superar unos cuantos obst-
culos. Uno de los ms crticos es que no viene preinstalado en las mquinas
(esta tendencia est cambiando gracias a algunos fabricantes y al emergente
mercado de los porttiles tipo notebook), lo que obliga al usuario a tener cono-
cimientos para poder instalarlo.
Otros problemas podran ser:
GNUFDL PID_00167542 23 Migracin y coexistencia con sistemas no Linux
Desconfianza del usuario: una pregunta que se puede plantear un usuario
es por qu debo cambiar de sistema?, o me ofrecer lo mismo el nuevo
entorno? Una de las razones bsicas para hacer el cambio sera el software
de calidad y su precio, del que una buena parte es libre. En este punto,
afecta el tema de las copias de software ilegales. Parece ser que los usua-
rios consideran que su software es gratis, cuando en realidad estn en una
situacin ilegal. El software GNU/Linux ofrece gran calidad a bajo coste
(o gratis en muchos casos) y ofrece mltiples alternativas para una misma
tarea.
Sencillez: a veces, el usuario se muestra perdido si el sistema no le ofrece
algunas referencias que lo hagan parecido a lo que ya conoce, como el
comportamiento de la interfaz, o que las herramientas sean parecidas en
funcionalidad (de hecho, lo que se denomina la usabilidad del sistema).
Espera que, en general, no necesite mucho tiempo extra para aprender y
manejar el nuevo sistema. GNU/Linux an presenta algunos problemas en
las instalaciones ms o menos automticas, para las que, aunque mejoran
da a da, todava es necesario un cierto grado de conocimiento. En este
punto, cabe destacar la facilidad de instalacin en diferentes ambientes
ofrecida por distribuciones recientes orientadas a escritorio como Ubuntu,
que han permitido que su instalacin sea muy sencilla y comparable o
incluso mejor que las otras plataformas. Otro problema habitual radica
en el soporte del hardware del PC, al que, a pesar de que est mejorando
mucho, los fabricantes actualmente no le prestan la atencin adecuada
(en parte por la cuota de mercado de usuario personal). Hasta que no haya
una clara intencin en este aspecto, no podremos tener el mismo soporte
que en otros sistemas propietarios (como en Windows). Aunque hay que
destacar el trabajo de la comunidad del kernel de Linux para dar el soporte
adecuado a nuevas tecnologas, en algunos casos ayudando al fabricante,
o preparando soporte primario (si no est soportado por el fabricante) o
alternativo al ofrecido por el fabricante.
Transparencia: los entornos GNU/Linux tienen muchos mecanismos
complejos, como los daemons, servicios, ficheros ASCII difciles de confi-
gurar, etc. De cara a un usuario final, sera necesario poder ocultar todas
estas complejidades, mediante programas grficos, asistentes de configu-
racin, etc. Es uno de los caminos que han tomado algunas distribuciones
como Red Hat, Mandriva, Ubuntu o Novell SuSe.
GNUFDL PID_00167542 24 Migracin y coexistencia con sistemas no Linux
Soporte de aplicaciones conocidas: un usuario ofimtico tpico tendr el
problema de la portabilidad de sus datos, o del tratamiento de los formatos
de stos. Qu hace con los datos que tena hasta el momento? Esta cues-
tin se est mejorando da a da, gracias a las suites ofimticas que comien-
zan a tener las funcionalidades necesarias para un usuario de escritorio.
Por ejemplo, si nos planteamos una migracin desde un uso de un paque-
te Office de Windows, podemos encontrar suites como OpenOffice (soft-
ware libre y gratuito), que puede leer (y crear) los formatos (con algunas
restricciones) de ficheros Office (de diferentes versiones). La compatibili-
dad de formatos no es que sea difcil, cuando stos son abiertos, pero en el
caso Windows Microsoft contina manteniendo una poltica de formatos
cerrados (con algunas modificaciones en los ltimos tiempos), y hay que
hacer un trabajo considerable para poder utilizar estos formatos, median-
te reingeniera inversa, un proceso bastante costoso. Adems, en la era de
Internet, donde la informacin se supone que se mueve libremente, los
formatos cerrados sin documentar son ms un obstculo que otra cosa. Lo
mejor es utilizar formatos abiertos editables como RTF (aunque este caso
tambin tiene algn problema, por las mltiples versiones que existen de
l), o bien formatos basados en XML (OpenOffice genera sus documentos
propios en formatos basados en XML), o PDF para la documentacin de
lectura. Tambin hay que destacar los esfuerzos realizados recientemente
por la comunidad OpenOffice para la creacin del estndar OpenDocu-
ment (usado por la suite a partir de las versiones 2.x y adoptado por otras
suites ofimticas), que han permitido disponer de un formato libre como
estndar ISO para la creacin de documentos. Este hecho ha obligado a
Microsoft, a abrir (parcialmente) su formato en las versiones a partir de
Office 2007, incorporando los formatos documentados OpenXML (y a in-
cluir soporte para los formatos OpenDocument), ya que muchas adminis-
traciones pblicas obligan en sus contratos de sistemas de informacin a
que los formatos de datos sean estndares abiertos.
Alternativas vlidas: el software que se deja de usar tiene que tener alter-
nativas que cumplan el trabajo anterior en el otro sistema. En la mayora
de aplicaciones existen una o varias alternativas con funcionalidades pa-
recidas, cuando no superiores. Pueden encontrarse por Internet diferen-
tes listas de equivalencias (ms o menos completas) de aplicaciones Win-
dows con sus correspondientes GNU/Linux (hemos comentado algunas
anteriormente en este mdulo).
Soporte de ejecucin de otras aplicaciones de diferentes sistemas: en al-
gunas condiciones es posible ejecutar aplicaciones de otros sistemas UNIX
(de la misma arquitectura, por ejemplo Intel x86), o bien de msdos o Win-
dows, mediante paquetes de compatibilidad o algn tipo de emuladores.
GNU/Linux dispone de herramientas de escritorio remoto para otras pla-
taformas, y de soporte de aplicaciones Windows con paquetes como Wi-
ne, que permiten ejecutar abundante cantidad de software sin problemas.
Otra posibilidad, para software que deba mantenerse, es la creacin de m-
Nota
Para ejemplos de aplicaciones
equivalentes:
http://www.linuxalt.com/
http://wiki.
linuxquestions.org/
wiki/Linux_software
_equivalent_to_
Windows_software
http://www.linuxrsp.ru/win-
lin-soft/table-eng.html
GNUFDL PID_00167542 25 Migracin y coexistencia con sistemas no Linux
quinas virtuales que ejecuten la plataforma con el software que no hemos
podido migrar. Sistemas como VirtualBox, Vmware u otros nos darn so-
porte en este caso.
La mayor parte de estos problemas que aparecen en las migraciones de escri-
torio estn superndose poco a poco y nos permitirn, en el futuro, disfrutar
de una mayor cuota de usuarios GNU/Linux en el escritorio y, a medida que
aumenten, disponer de mejores aplicaciones, ya que las empresas de software
implementarn versiones para GNU/Linux.
En el caso empresarial, esto puede superarse con una migracin suave, primero
de las etapas de servidores y workstations, para despus pasar por un proceso
de formacin amplia de los usuarios en los nuevos sistemas y aplicaciones y,
finalmente, integrarlos en su escritorio.
Un proceso que va a ayudar en gran medida es la introduccin del software
de cdigo abierto en diferentes frentes, por ejemplo en las fases educativas y
en las administraciones pblicas. En este sentido, son pioneros: la comunidad
autnoma de Extremadura, con su distribucin GNU/Linux llamada Linex, el
GuadaLinex de la Junta de Andaluca, o bien recientes medidas para implantar
este software en la educacin primaria, o las iniciativas de algunas universida-
des de llevar a cabo cursos y materias con estos sistemas.
GNUFDL PID_00167542 26 Migracin y coexistencia con sistemas no Linux
5. Taller de migracin: anlisis de casos de estudio
En este taller, vamos a intentar aplicar lo estudiado en el presente mdulo para
analizar unos procesos de migracin sencillos y algn detalle de las tcnicas
necesarias (en el caso de tcnicas de red y/o servidores especficos, las veremos
junto con el resto de contenidos de los materiales de administracin y admi-
nistracin avanzada).
Nos plantearemos los siguientes casos de estudio:
Migracin individual de un usuario de escritorio Windows a un sistema
GNU/Linux.
Migracin de una pequea organizacin que dispone de sistemas Win-
dows y algunos UNIX.
Migracin de un servidor Windows aislado (standalone) a un servidor Sam-
ba en GNU/Linux.
5.1. Migracin individual de un usuario de escritorio Windows a
un sistema GNU/Linux
Un usuario se plantea la migracin a GNU/Linux [Ray02b]. Primero, se pasar
por un periodo de convivencia, de modo que el usuario dispondr de los dos
sistemas, y dedicar cada uno de ellos a una serie de tareas: continuar desa-
rrollando tareas en Windows mientras se familiarizar con el nuevo sistema y
encontrar software equivalente, o software nuevo que le permita hacer otras
tareas que antes no poda realizar.
La migracin es, para un usuario personal, quizs uno de los procesos
ms complejos; hay que ofrecerle alternativas a lo que ya utiliza comn-
mente, de forma que la adaptacin no entrae muchas complejidades
extra y pueda adaptarse progresivamente con facilidad al nuevo sistema.
Podemos hacer una instalacin dual [Ban01] [Sko03b] del sistema original (un
Windows, por ejemplo), junto con el sistema GNU/Linux.
Un primer paso en una determinada configuracin de mquina consistir en
verificar que nuestro hardware sea compatible con Linux [Pri02], ya sea por
medio de alguna lista de compatibilidad de hardware o verificndolo con el
fabricante, por si fuera necesario adquirir nuevos componentes o configurar
Nota
Linux Hardware Howto:
http://www.tldp.org/HOWTO/
HardwareHOWTO/index.html
GNUFDL PID_00167542 27 Migracin y coexistencia con sistemas no Linux
de alguna forma particular el existente. Si desconocemos nuestro hardware,
podemos verificarlo o bien en Windows con el "administrador de dispositivos"
(en el panel de control), o con algn software de reconocimiento de hardwa-
re. Por otra parte, un mtodo recomendable es la utilizacin de distribuciones
GNU/Linux de tipo LiveCD (Knoppix, Ubuntu, Fedora Live), que nos permi-
tirn sin instalacin fsica comprobar el funcionamiento de GNU/Linux en
nuestro hardware, ya que el nico requisito es la posibilidad de arranque del
sistema desde CD/DVD (en algunos casos, se necesitar modificar la configura-
cin BIOS para permitir este arranque). Existen LiveCDs como Knoppix [Knp]
con gran soporte hardware para las comprobaciones, as como los de la mayo-
ra de las distribuciones GNU/Linux que suelen ofrecer LiveCDs para la com-
probacin inicial de funcionamiento (en algunos casos, por ejemplo Ubuntu
[Ubu], la instalacin completa puede realizarse desde el mismo LiveCD). En
todo caso, cabe sealar que la prueba con un LiveCD concreto no nos impi-
de que puedan surgir dificultades en la instalacin final, debido o bien a que
el LiveCD no es de la misma distribucin GNU/Linux que la que finalmente
instalaremos, o porque las versiones del sistema y/o aplicaciones no son las
mismas.
En cuanto a la instalacin fsica en disco, necesitaremos disponer o bien de es-
pacio libre en disco no particionado, o bien, si estamos en particiones de tipo
FAT32/NTFS, podemos liberar espacio con programas que permitan el reajus-
te del tamao de las particiones, que permiten recortar la particin existente
(un previo backup de los datos es evidentemente recomendable). En la actua-
lidad, la mayor parte de las distribuciones soportan diferentes esquemas de
particionado del disco y el recorte de particiones, aunque dependiendo de la
distribucin pueden surgir problemas (se recomienda un backup previo siem-
pre al proceso de instalacin). En caso de no disponer del espacio suficiente,
o de tener particiones con sistemas de ficheros que presenten problemas (por
ejemplo, NTFS en algunas distribuciones), habr que plantearse comprar un
nuevo disco duro complementario, que dedicaremos totalmente o en parte a
GNU/Linux. Si la mquina dispone de arranque desde USB, una posibilidad es
disponer de un disco duro externo USB y realizar la instalacin all. Tambin
es muy usada la virtualizacin mediante mquinas virtuales tipo VirtualBox o
Vmware, que nos permite instalar una distribucin sobre un PC virtual, aun-
que en este caso no tendremos una experiencia de instalacin con nuestro
hardware real.
Una vez completada la revisin del hardware, tendremos que decidir la distri-
bucin del sistema GNU/Linux que usaremos (una posibilidad apuntada antes
es escoger un LiveCD que nos haya satisfecho, y pasar a la instalacin de la
distribucin). Si el usuario es poco experimentado en GNU/Linux, o tiene co-
nocimientos bsicos de informtica, es mejor decidirse por alguna de las dis-
tribuciones ms "amigables" de cara al usuario, como Fedora, Mandriva, Novell
SuSe o similares. Cabe destacar las facilidades de Ubuntu en este punto. Si te-
nemos ms conocimientos o estamos tentados a experimentar, podemos pro-
bar una distribucin Debian. En el caso de las comerciales, la distribucin, en
GNUFDL PID_00167542 28 Migracin y coexistencia con sistemas no Linux
la mayora de veces, con un hardware compatible (en algunos casos como Red
Hat, Ubuntu Server y Novell SuSe, versiones empresariales, las distribuidoras
certifican el hardware que soportan), se instala perfectamente sin problemas,
y se realizan configuraciones bsicas que permiten ya utilizar el operativo. En
el proceso tendremos que instalar el software, que vendr definido por unos
conjuntos de software orientados: a servidores, a aplicaciones concretas, o a
aplicaciones de escritorio como las ofimticas, aplicaciones de desarrollo (si
nos interesa la programacin), etc.
Una vez instalado el sistema, se plantea el tema de la comparticin de datos
[Gon00] [Kat01]. Cmo compartimos datos entre los dos sistemas? o hay
posibilidad de compartir algunas aplicaciones? Para esto hay varias soluciones:
a) Mtodo por "intermediario": consiste en compartir los datos, por ejemplo,
mediante disquetes (opcin un poco ya obsoleta desde la aparicin de dispo-
sitivos usb removibles). En el caso de los disquetes, lo mejor son las utilidades
denominadas mtools, que permiten acceder a disquetes con formato msdos de
forma transparente, y ofrecen mltiples comandos de lnea que funcionan de
forma muy parecida a msdos o Windows. Estos comandos se llaman exacta-
mente como los comandos msdos originales, slo que con una "m" delante,
por ejemplo: mcd, mcopy, mdir, mdel, mformat, mtype, etc.
b) Mtodo directo: consiste en usar directamente los sistemas de ficheros de
Windows (ya sean los discos duros internos de la mquina, o unidades remo-
vibles externas tipo flash o discos duros mediante usb). Como veremos en la
unidad de administracin local, GNU/Linux puede leer y escribir una gran
cantidad de sistemas de ficheros, entre ellos el FAT, FAT32, y NTFS (slo lectu-
ra en algunos casos de distribuciones antiguas, aunque la mayora de distribu-
ciones ya incorporan, o lo ofrecen como opcin el soporte NTFS por medio del
driver ntfs-3g [Nt3] que permite la escritura). Se tiene que pasar por un proceso
denominado "de montaje", que permite incorporar el sistema de ficheros de
Windows a un punto del rbol de archivos de Linux. Por ejemplo, podramos
montar nuestro disco Windows en /mnt/Windows y acceder desde este punto
a sus carpetas y archivos, permitiendo escrituras y lecturas. Con los ficheros de
texto ASCII, hay que tener en cuenta las conversiones, ya que UNIX y Win-
dows los tratan de modo diferente: en UNIX, el final de lnea tiene un slo
carcter, el avance de lnea, ASCII 10, mientras que en Windows hay dos, un
retorno y un avance de lnea, caracteres ASCII 13 y 10 (como detalle curioso
en MAC es el ASCII 13). Con lo cual, suele ser habitual que, al leer un fiche-
ro ASCII dos/windows, ste contenga caracteres "raros" al final de lnea. Hay
editores como emacs que los tratan de forma transparente y, en todo caso, hay
utilidades GNU/Linux que permiten convertirlos de uno a otro formato (con
utilidades como duconv, recode, dos2UNIX, UNIX2dos).
c) Uso de aplicaciones: existen algunas alternativas para poder ejecutar las
aplicaciones (no todas) de msdos y Windows. Para GNU/Linux hay emulado-
res de msdos como Dosemu o DosBox, y para Windows existe el software de
GNUFDL PID_00167542 29 Migracin y coexistencia con sistemas no Linux
ejecucin Wine. ste puede ejecutar un gran numero de aplicaciones de Win-
dows (por ejemplo, permite ejecutar algunas versiones de Office e Internet Ex-
plorer), pero se contina mejorando constantemente. Si la ejecucin de apli-
caciones Windows es imprescindible, nos puede ayudar algn software comer-
cial, que da soporte extra a Wine. Existen, por ejemplo, Win4Lin, CrossOver
y en algn caso con soporte especial para juegos como Cedega. Otra posible
solucin es el uso de las mquinas virtuales; un ejemplo de software de amplio
uso es Vmware o VirtualBox, que crea como mquina virtual un PC completo,
simulado por software, en el cual se puede instalar un gran nmero diferente
de sistemas operativos. Vmware y VirtualBox est disponible en versiones pa-
ra Windows y para GNU/Linux, lo que permite tener un GNU/Linux instala-
do con un Windows ejecutndose virtualmente sobre l, o un Windows con
GNU/Linux en virtual. Existen tambin otras soluciones de mquina virtual
libres como QEmu, KVM, Bochs. En otro segmento, las mquinas virtuales,
o genricamente la virtualizacin, es usada orientada a la creacin de servi-
dores virtuales, con soluciones como Vmware server, o los proyectos abiertos
Xen, OpenVZ, Vserver, en los que es posible hacer coexistir varias mquinas
virtuales corriendo sobre un operativo (mediante modificaciones en el kernel
que soporten esta virtualizacin), o incluso sobre el hardware directamente
(sin operativo completo, solo una pequea capa software de virtualizacin de
recursos).
Aparte de compartir la informacin (aplicaciones y/o datos), pueden buscarse
aplicaciones GNU/Linux que sustituyan a las originales Windows a medida
que el usuario vaya aprendiendo a utilizarlas, y observe que cumplen las fun-
cionalidades esperadas.
Un caso tpico seria la suite ofimtica en que el usuario puede trasladar el uso a OpenOf-
fice, que tiene un alto grado de compatibilidad con los ficheros de Office y un funciona-
miento bastante semejante, o bien KOffice (para el escritorio KDE), o GNumeric y Abi-
Word (para Gnome). En el caso de procesamiento de imgenes tomamos Gimp, con fun-
cionalidades semejantes a Adobe Photoshop. Y multitud de reproductores multimedia:
Xine, Mplayer (o tambin una versin del RealPlayer). En Internet, se pueden encontrar
listas de equivalencias de programas entre Windows y GNU/Linux.
5.2. Migracin de una pequea organizacin que dispone de
sistemas Windows y algunos UNIX
Consideremos ahora una organizacin que tenga mquinas Windows y algu-
nas mquinas UNIX dedicadas a servicios, o a workstations y unos usuarios un
poco "anrquicos". Por ejemplo, estudiemos la siguiente situacin: la organi-
zacin tiene una pequea red local de mquinas Windows repartidas por los
usuarios, como mquinas de igual a igual en un grupo de trabajo Windows
(no hay dominios Windows server).
Nota
Listas de equivalencias:
http://www.linuxrsp.ru/win-
lin-soft/table-eng.html
http://www.linuxeq.com/
GNUFDL PID_00167542 30 Migracin y coexistencia con sistemas no Linux
El grupo es variopinto: tenemos mquinas con Windows 98, XP, Vista, 7, pero
personalizadas por cada usuario con el software que necesita para su trabajo
diario: ya sea Office, navegador, lector de correo o entornos de desarrollo para
los programadores de diferentes lenguajes (por ejemplo C, C++, Java).
Se dispone de algunos recursos hardware extras, como varias impresoras co-
nectadas a la red local (aceptan trabajos TCP/IP), y permiten utilizarse desde
cualquier punto de la organizacin. Y existe una mquina compartida, con
algunos recursos especiales, como scanner, grabadora de CD y directorios com-
partidos por red, donde los usuarios pueden dejar sus directorios con sus fi-
cheros para procesos de backup o para recuperar, por ejemplo, imgenes esca-
neadas.
Tambin disponemos de varias workstations, en este caso Sun Microsystem
Sparc, que ejecutan Solaris (UNIX, comercial de Sun). Estas estaciones estn
dedicadas al desarrollo y a algunas aplicaciones cientficas y grficas. Estas
mquinas disponen de servicios de NFS para compartir archivos y NIS+ para
manejar la informacin de los usuarios que se conectan a ellas y que puedan
hacerlo desde cualquiera de ellas de forma transparente. Algunas de las m-
quinas incluyen servicios especficos; hay una destinada al servidor web de la
organizacin y otra destinada al servidor de correo.
Se plantea la posibilidad de realizar una migracin a GNU/Linux por intereses
de desarrollo de software y por el inters particular de algunos usuarios de
disponer de este sistema.
Adems, se aprovechar la migracin para intentar solucionar algunos proble-
mas: de seguridad (algunos sistemas antiguos Windows no son la mejor forma
de compartir archivos) y de uso de la impresora (se quiere restringir porque el
gasto en papel y el coste asociado es alto) a unas cuotas ms razonables. Por
otra parte, se ofrece cierta libertad a los usuarios; no se les obligar a cambiar
de sistema, aunque se les har la sugerencia. Y aprovecharemos la ocasin para
comprar hardware nuevo que complemente al existente, por ejemplo, si las
estaciones de trabajo estn faltas de espacio de disco, lo cual supone limita-
ciones de espacio para el correo y las cuentas de usuario.
La migracin en una organizacin (aunque sea pequea) plantea mu-
chas dificultades: tendremos diferentes ambientes de trabajo, hardware
y software heterogneo, y ms de una vez, reticencias de los usuarios
al cambio.
GNUFDL PID_00167542 31 Migracin y coexistencia con sistemas no Linux
Despus de toda esta pequea descripcin de nuestra organizacin (en otros
casos ms complejos, podra llenar varias pginas o ser un documento entero
de anlisis de la situacin presente y propuestas futuras), nos comenzamos a
plantear posibilidades para solucionar todo esto:
1) Qu hacemos con las workstations actuales? El coste en mantenimiento
y licencias de software es elevado. Tenemos que cubrir el mantenimiento de
fallos en las estaciones, hardware caro (en este caso, discos SCSI) y ampliacio-
nes de memoria tambin caras. El coste del sistema operativo y sus actualiza-
ciones tambin es caro. En este caso, se nos ofrecen dos posibilidades (depen-
diendo del presupuesto de que dispongamos para el cambio):
Podemos reducir costes convirtiendo las mquinas a sistemas GNU/Linux.
Estos sistemas son de arquitectura Sparc y existen distribuciones que so-
portan esta arquitectura. Podramos sustituir los servicios por sus equiva-
lentes GNU/Linux. La sustitucin sera prcticamente directa, puesto que
ya usamos un sistema UNIX.
Otra posibilidad sera la eliminacin del hardware propietario de Sun y
convertir las estaciones en PC potentes con GNU/Linux. Esto simplifica su
mantenimiento posterior, aunque tiene un alto coste inicial.
2) Y con el software de las workstation? Si las aplicaciones son de desarrollo
propio, puede ser suficiente volver a compilarlas o la adaptacin simple al
nuevo entorno. Si son comerciales, tendremos que ver si la empresa puede
proporcionarlas en entornos GNU/Linux, o si podemos encontrar reemplazos
con funcionalidad parecida. En el caso de los desarrolladores, sus entornos
de lenguajes C, C++ y Java pueden portarse fcilmente. En caso de C y C++,
se puede utilizar el compilador GNU gcc y existen multitud de IDE para el
desarrollo (Eclipse, KDevelop, Anjuta...). En el caso de Java, se puede utilizar el
openJDK como las implementaciones propias de Sun en GNU/Linux y entornos
varios de cdigo abierto (Eclipse de IBM o Netbeans).
3) Y los usuarios? A aquellos que estn interesados en GNU/Linux les pode-
mos instalar equipos duales con Windows y GNU/Linux para que comiencen
a probar el sistema y, si quieren, pasar finalmente a un nico sistema GNU/Li-
nux. Podemos encontrar dos tipos de usuarios: los puramente ofimticos ne-
cesitarn la suite, navegador y correo; esto se les puede ofrecer con un escrito-
rio GNU/Linux como Gnome o KDE y software como OpenOffice, navegador
Mozilla/Firefox, y correo Mozilla Thunderbird (o cualquier otro Kmail, Evolu-
tion...). La equivalencia es ms o menos directa, depende de las ganas que los
usuarios tengan de probar y usar el nuevo software. Para los desarrolladores,
el cambio puede ser ms directo, ya que se les ofrecen muchos ms entornos y
herramientas flexibles. Podran pasarse completamente a sistemas GNU/Linux
o trabajar directamente con las workstations.
GNUFDL PID_00167542 32 Migracin y coexistencia con sistemas no Linux
4) Y las impresoras? Puede establecerse alguna estacin de trabajo como ser-
vidor de impresin (ya sea por colas TCP/IP o por servidor Samba) y controlar
las impresiones mediante cuotas.
5) La mquina compartida? El hardware compartido puede dejarse en la
misma mquina o se puede controlar desde un sistema GNU/Linux. En cuan-
to al espacio de disco compartido, puede moverse a un servidor Samba que
sustituya al actual.
6) Ampliamos el espacio del disco? Depender del presupuesto. Podemos
mejorar el control mediante un sistema de cuotas que reparta el espacio de
una forma equitativa y ponga lmites a la saturacin.
5.3. Migracin de un servidor Windows a un servidor Samba en
GNU/Linux
En este caso, describimos el proceso bsico necesario para efectuar una posible
migracin de un servidor Windows que comparte carpetas e impresora a un
servidor Samba en un sistema GNU/Linux.
Supongamos una mquina que pertenece a un grupo de trabajo GRUPO, que
comparte una impresora llamada PRINTER y que tiene una carpeta comparti-
da DATOS que no es ms que el disco D de la mquina. Varios clientes Win-
dows acceden a la carpeta para lectura/escritura, dentro de una red local con
direcciones IP 192.168.1.x, donde x ser 1 para nuestro servidor Windows, y
los clientes tienen otros valores (las redes 192.168.x.x se utilizan a menudo
como direcciones para montar redes privadas internas).
En nuestro proceso vamos a construir un servidor Samba, que es el que nos
permitir la ejecucin en GNU/Linux del protocolo SMB/CIFS (server message
block / common Internet file system). Este protocolo permite la interaccin del
sistema de archivos y de las impresoras por medio de redes en mltiples sis-
temas operativos. Podemos montar carpetas pertenecientes a Windows en las
mquinas GNU/Linux, o bien parte de los archivos de GNU/Linux en Win-
dows, y lo mismo con las impresoras de uno u otro. El servidor est compuesto
de dos daemons (procesos de sistema) llamados smbd y nmbd (dependiendo de
la versin de Samba tambin existe un tercero denominado winbind que se
utiliza en entornos de dominios Windows para unirse o proporcionar servicios
de Active Directory).
Gracias al software como Samba, la migracin desde entornos Windows
es muy flexible y rpida e incluso con mejoras de prestaciones o en
rendimiento.
Nota
Esta migracin suele conllevar
un proceso bastante ms ex-
tenso que las bases expuestas.
Consultad la bibliografa pa-
ra ver los pasos completos del
mismo.
GNUFDL PID_00167542 33 Migracin y coexistencia con sistemas no Linux
El proceso smbd gestiona las peticiones de los clientes hacia los archivos o
impresoras compartidos. El nmbd gestiona el sistema de nombres de las m-
quinas y los recursos bajo el protocolo NetBIOS (creado por IBM). Este proto-
colo es independiente de la red que se usa (actualmente, Microsoft utiliza ge-
neralmente en NT/2000/XP/Vista/7 Netbios sobre TCP/IP). El nmbd tambin
proporciona servicios WINS, que es el servicio de asignacin de nombres, que
se ejecuta sobre Windows NT/Server si tenemos una coleccin de mquinas.
Es una especie de combinacin de DNS y DHCP para entornos Windows. El
proceso es un poco complejo; en resumen, cuando una mquina Windows
arranca, o bien tiene una direccin IP esttica, o bien dinmica por medio de
un servidor DHCP, y adems puede que tenga un nombre NetBIOS (el nombre
que el usuario asigna a la mquina: en identificacin de red). El cliente WINS
contacta con el servidor para informar de cul es su IP. Si una mquina de red
pregunta posteriormente por el nombre NetBios, se contacta con el servidor
WINS para obtener su direccin IP y se establecen las comunicaciones. El nmbd
ejecuta este proceso sobre GNU/Linux.
Como cualquier otro servicio de red, no se debera ejecutar sin considerar qu
riesgos puede suponer su activacin y cmo podemos minimizarlos. Respecto
a Samba, hay que tener presentes los temas de seguridad, puesto que estamos
abriendo parte de nuestros archivos y las impresoras locales o de la Red. Ten-
dremos que verificar bien las restricciones de comunicacin que ponemos para
no dar acceso a usuarios o mquinas no deseadas. En este ejemplo bsico, no
vamos a comentar estos temas. En un caso real, tendramos que examinar las
opciones de seguridad y restringir el acceso slo a quien realmente deseemos.
En el proceso de migracin, primero tendremos que configurar el sistema
GNU/Linux para el soporte de Samba. Se necesita el soporte en el kernel de
los filesystems Samba (smbfs), que ya viene activado. Hay que aadir que, ac-
tualmente, hay un soporte adicional en el kernel a travs del modulo (cifs), el
cual, a partir de la versin del kernel 2.6.20, se considera el mtodo por defec-
to, quedando smbfs en segundo termino. El mdulo cifs aporta soporte para
nuevas prestaciones relacionadas con el protocolo CIFS (como extensin de
SMB). Estos mdulos nos permiten, mediante los nombres de sistemas de fi-
cheros "smbfs" y "cifs", realizar operaciones de montaje de sistemas de fiche-
ros Windows en el rbol de directorios de Windows (mount -t smbfs o mount
-t cifs). Aparte de que el soporte kernel se decanta hacia el mdulo cifs, hay
algunas caractersticas que pueden necesitar soporte smbfs, con lo cual suele
ser habitual disponer de los dos mdulos activados en el kernel. Tambin hay
que destacar la cuestin de la configuracin: mientras smbfs basa su operacin
en la configuracin Samba (como veremos en el fichero smb.conf), al mdulo
cifs se le proporciona la configuracin en las operaciones (por ejemplo, en el
proceso de montaje mediante mount).
En el caso del uso del servidor Samba, adems del soporte kernel, necesitaremos
instalar los paquetes software asociados: habr que examinar qu paquetes re-
lacionados con Samba hay en la distribucin e instalar los que tengan que ver
GNUFDL PID_00167542 34 Migracin y coexistencia con sistemas no Linux
con el funcionamiento de servidor. Y tambin, si se quiere, los relacionados
con Samba como cliente, en el caso de que deseemos ser clientes de mqui-
nas Windows o testear, desde nuestro GNU/Linux, los recursos compartidos
de las mquinas Windows. En una distribucin Debian, estos paquetes son:
samba, samba-common, smbclient, smbfs. Tambin puede ser interesante insta-
lar swat, que es una herramienta grfica basada en web para la administracin
de los servicios Samba. Para nuestro servidor GNU/Linux de Samba [Woo00],
del ejemplo propuesto, tendremos que transferir los contenidos del anterior
disco D (donde tenamos nuestro sistema de ficheros compartido) de la m-
quina original a la nueva mquina y colocar su contenido en algn path, por
ejemplo, /home/DATOS, ya sea por copia de backup, transferencia ftp, o usando
Samba como cliente para transferir los archivos.
En cuanto a la utilizacin de GNU/Linux como cliente Samba, es bastante
sencilla. Mediante el uso de comandos cliente para un uso ocasional de un
sistema de ficheros:
1) Montamos un directorio compartido Windows (sea host el nombre del ser-
vidor Windows), en un punto de montaje predefinido (ya existente):
smbmount //host/carpeta /mnt/windows
2) Colocamos el acceso a la "carpeta" Windows de la mquina host en nuestro
directorio local, accediendo en el rbol de directorios a:
/mnt/windows
3) A continuacin, cuando ya no est en uso, podemos desmontar el recurso
con:
smbumount /mnt/windows
Si no conocemos los recursos compartidos, podemos obtener una lista con:
smbclient -L host
Y tambin podemos utilizar smbclient //host/carpeta, que es un programa pare-
cido a un cliente ftp.
En caso de querer hacer los sistemas de ficheros disponibles permanentemen-
te, o proporcionar determinadas configuraciones particulares, podemos estu-
diar el uso de mount directamente (las utilidades smbxxxx lo utilizan), ya sea
con los sistemas de ficheros (soportados en el kernel) smbfs o cifs, teniendo en
cuenta los parmetros (autentificacin de usuarios/grupos Windows u otros
Nota
Es importante consultar siem-
pre las pginas man, o 'ma-
nuales', que acompaen a las
rdenes y aplicaciones Samba,
o a los ficheros de configura-
cin.
GNUFDL PID_00167542 35 Migracin y coexistencia con sistemas no Linux
parmetros de servicio) que deberemos aportar dependiendo del caso, y de la
configuracin Samba preexistente [Ste07], e integrar los puntos de montaje en
el arranque del sistema (configuracin de /etc/fstab, entre otros).
En el caso del servidor Samba, una vez tengamos instalado todo el software
Samba, tendremos que configurar el servidor por medio de su fichero de con-
figuracin. Segn la versin (o la distribucin), este fichero puede estar en /
etc/smb.conf o bien en /etc/samba/smb.conf. Las opciones aqu mostradas perte-
necen a un Samba 3.x.x instalado sobre Debian. Otras versiones pueden tener
algunas modificaciones menores.
Durante la instalacin de los paquetes de software, es habitual que se nos pre-
gunten algunos datos sobre su configuracin. En el caso de Samba, se nos pre-
gunta por el grupo de trabajo al que se va a servir, y deberemos colocar el mis-
mo nombre del grupo que en Windows. Tambin se nos pregunta si deseamos
contraseas encriptadas, recomendables por seguridad (antes en los Windows
9x se enviaban en texto en bruto, en lo que constituye un claro ejemplo de
escasa seguridad y de alta vulnerabilidad del sistema).
A continuacin, pasamos a ver el proceso de configuracin del fichero
smb.conf. Este fichero tiene tres apartados principales:
1) Global (caractersticas bsicas de funcionamiento para todos los servicios).
2) Browser, Name Resolution, Domain Options (controla lo que otras mquinas
ven de nuestros recursos y cmo actuamos, si de cliente o server de los recursos
compartidos por samba/cifs).
3) Share (controla qu compartimos).
Tambin podemos examinar el fichero de configuracin de Samba desde es-
tas secciones, que son apartados del fichero separados por indicaciones como
[nombre_seccion]. As aparecen las secciones [global] con las configuraciones
correspondientes a los apartados 1 (Global) y 2 (Browser, Name Resolution, Do-
main Options) mencionados. En el apartado 3 (Share), podemos encontrar di-
ferentes secciones:
a) [homes]: una seccin especial que nos indica no un servicio, sino una serie
de ellos destinados a que cada usuario con directorio personal en Linux pueda
ser accesible en la Red mediante Samba, previa autentificacin de la mquina
cliente, que nos pedir el correspondiente usuario y contrasea. Un mtodo
sencillo de configurar estos servicios en entornos locales de tamao pequeo/
medio es utilizar los mismos usuarios y passwords tanto en entorno Windows
como Samba sobre Linux. Como veremos ms adelante en los materiales de
administracin avanzada, en entornos mayores, hay determinados mtodos
que nos permiten tener sincronizados los usuarios entre los dos entornos, o
sustituir completamente mediante un servidor Samba Linux los servicios de
GNUFDL PID_00167542 36 Migracin y coexistencia con sistemas no Linux
directorio tipo ADS (active directory service), que nos permitirn controlar to-
dos los usuarios y servicios de la red homognea de los dos entornos desde el
servidor Samba.
b) [printers]: otra seccin especial, que nos permite proporcionar servicios de
impresin desde Samba para todas las impresoras definidas en el sistema. Es
una solucin rpida, que puede alternativamente hacerse por cada impresora,
si solamente deseamos proporcionar algunas concretas o limitar su uso.
c) Por ltimo, aparecern diferentes secciones dedicadas a cada servicio que
demos de alta y configuremos [resource] donde definiremos qu recurso pro-
porcionamos y bajo qu caractersticas individuales.
Esta configuracin podra quedar as:
[global]
workgroup = GRUPO
server string = Samba Server Version %v
log file = /var/log/samba/log.%m
max log size = 50
cups options = raw
[homes]
comment = Home Directories
read only = No
browseable = No
browsable = No
[printers]
comment = All Printers
path = /var/spool/samba
printable = Yes
browseable = Yes
[media]
path = /mnt/media
valid users = user1,user2
read only = No
En este ejemplo rpido de configuracin se nos proporcionan unos parmetros
globales. Se desactivan los homes y en cambio se hacen disponibles todas las
impresoras en printers y un recurso de disco disponible denominado media,
que es accesible por dos usuarios para lectura y escritura.
Veamos una configuracin bsica, paso a paso, en el fichero de configuracin
Samba. En el manual (extenso) de este fichero de configuracin Samba pueden
verse las opciones disponibles (man smb.conf). Editaremos el fichero con algn
GNUFDL PID_00167542 37 Migracin y coexistencia con sistemas no Linux
editor e iremos viendo algunas de las lneas del fichero (los caracteres '#' o ';'
a principio de lnea son comentarios, si la lnea contiene ';' es un comentario;
para habilitar una lnea, si es alguna lnea opcional de configuracin, debere-
mos editarla y quitar el ';' ):
workgroup = GRUPO
Aqu est indicado el grupo de trabajo Windows del cual las mquinas Win-
dows clientes sern miembros.
server string = %h server (Samba %v)
Podemos colocar una descripcin textual de nuestro servidor. La h y la v que
aparecen son variables de Samba, que hacen referencia al nombre del host y
a la versin de Samba. Por seguridad, es mejor quitar la v, ya que con ello se
informa al exterior de qu versin de Samba tenemos. Si hay bugs de seguridad
conocidos, esto puede aprovecharse.
hosts allow = 192.168.1
Esta lnea puede estar presente o no, y la podemos incluir para habilitar qu
hosts sern servidos; en este caso, todos los del rango 192.168.1.x.
printcap name = /etc/printcap
El fichero printcap es donde GNU/Linux guarda la definicin de las impresoras,
y es aqu donde Samba buscar la informacin acerca de stas.
guest account = nobody
Esta es la cuenta de "invitado". Podemos crear una cuenta diferente, o sola-
mente habilitar el acceso a Samba a los usuarios dados de alta en el sistema
GNU/Linux (o usuarios que definamos nuevos para slo Samba).
log file = /var/log/samba/log.%m
Esta lnea nos dice dnde se van a guardar los ficheros del registro de sesin
(logs) de Samba. Se guarda uno por cada cliente (variable m es el nombre del
cliente conectado).
encrypt passwords = true
Es conveniente, por seguridad, usar encriptacin de contraseas (passwords)
si tenemos mquinas clientes con Windows 98, NT o superiores. Estas contra-
seas se guardan en un fichero /etc/samba/smbpasswd, que se genera para los
usuarios de la instalacin de Samba. Las contraseas se pueden cambiar con el
GNUFDL PID_00167542 38 Migracin y coexistencia con sistemas no Linux
comando smbpasswd. Tambin hay una opcin llamada UNIX passwdord sync,
que permite que el cambio sea simultneo a las dos contraseas (usuario Sam-
ba y usuario Linux).
A continuacin, describiremos la seccin "Share Definitions":
[homes]
Estas lneas permiten dar acceso a las cuentas de los usuarios desde las mqui-
nas Windows. Si no lo queremos, aadimos unos ';' al inicio de estas lneas, y
las mquinas, al conectarse, vern el nombre comment. En principio, la escri-
tura est deshabilitada, y para habilitarla slo hay que poner "yes" en la opcin
writable.
Cualquier comparticin de un directorio concreto (en Samba se suele deno-
minar particin a un grupo de datos compartidos), se har como los ejemplos
que aparecen (ved, por ejemplo, la definicin de compartir el CD-ROM en las
lneas que empiezan por [cdrom]). En path se coloca la ruta de acceso.
En nuestro caso, por ejemplo, pondramos un nombre DATOS a la particin
en la ruta /home/DATOS, donde habamos copiado el disco D de la mquina
original Windows y el path donde se puede encontrar, adems de un alto grupo
de opciones que puede modificar el usuario.
Tambin hay una definicin [profiles] que permite controlar los perfiles (profi-
les) de los usuarios Windows, o sea, el directorio donde se guarda su configu-
racin de escritorio Windows, el men de inicio, etc.
El mtodo es parecido para las impresoras: se hace una particin con el nom-
bre de la impresora (el mismo que se haya dado en GNU/Linux) y en el path
se coloca la direccin de la cola asociada a la impresora (en GNU/Linux la
encontramos en: /var/spool/samba/PRINTER). Utilizaremos la opcin printable
= yes si queremos que se enven trabajos con Samba. Tambin se puede deter-
minar qu usuarios pueden acceder (valid users).
Una vez hechos estos cambios, slo tenemos que guardarlos y reiniciar Samba
para que lea la nueva configuracin. En Debian:
/etc/init.d/samba restart
Ahora, nuestro directorio compartido y la impresora por Samba estarn dis-
ponibles, de manera que sirvan a los usuarios sin que stos noten diferencia
alguna respecto a las conexiones anteriores con el servidor Windows.
Antes de utilizar la configuracin Samba anterior, tambin podemos compro-
barla con el comando testparam, que verificar que la configuracin Samba sea
correcta, y adems nos sealar los errores de configuracin cometidos. Con
Nota
Ved man smb.conf
GNUFDL PID_00167542 39 Migracin y coexistencia con sistemas no Linux
respecto al reinicio de Samba, dependiendo de la distribucin deberemos rei-
niciar los diferentes servicios, que en las ltimas versiones son los daemons/
servicios smb, nmb, y winbind (por ejemplo, en Fedora ser necesario reiniciar
estos tres servicios).
GNUFDL PID_00167542 41 Migracin y coexistencia con sistemas no Linux
Actividades
1. En la descripcin de servicios GNU/Linux, se encuentra a faltar alguna funcionalidad?,
qu otro tipo de servicios aadirais?
2. En el segundo caso de estudio del taller (el de la organizacin), cmo cambiarais la in-
fraestructura informtica si dispusierais de un presupuesto de coste cero, un presupuesto me-
dio, o un presupuesto alto? Presentad algunas soluciones diferentes a las expuestas.
3. Tecnologas de virtualizacin como Vmware o VirtualBox son mquinas virtuales por soft-
ware que permiten instalar operativos sobre un PC virtual. Se puede conseguir una demo en
http://www.vmware.com o http://www.virtualbox.org. Probad (en el caso de que dispongis
de una licencia Windows) a instalarla sobre Windows, y despus un GNU/Linux sobre el PC
virtual (o al revs). Qu ventajas nos aporta este sistema de compartir los operativos? Qu
problemas ocasiona?
4. Si disponis de dos mquinas para instalar un servidor Samba, podis probar la instalacin
o configuracin del servidor en configuraciones de cliente Samba UNIX-servidor Windows,
o cliente Windows-servidor Samba en GNU/Linux. Lo podis probar tambin en una sola
mquina, utilizando la misma mquina como servidor y cliente Samba.
GNUFDL PID_00167542 42 Migracin y coexistencia con sistemas no Linux
Bibliografa
[Ban] Banerjee, T. "Linux Installation Strategies HOWTO". The Linux Documentation Project.
The Dot Gnu Project. http://www.gnu.org/software/dotgnu/
[Ste07] French, S. "Linux CIFS Client Guide".http://us1.samba.org/samba/ftp/cifs-cvs/li-
nux-cifs-client-guide.pdf
[Gon] Gonzato, G. "From DOS/Windows to Linux HOWTO". The Linux Documentation Pro-
ject.
[Knp] Distribucin Knoppix. http://knoppix.org
[Ubn] Distribucin Ubuntu. http://www.ubuntu.com
[LPD] LPD. The Linux Documentation Project. http://www.tldp.org. Proporciona los Howto's
de los diferentes aspectos de un sistema GNU/Linux y un conjunto de manuales ms elabo-
rados.
[Mon] Monit. http://www.tildeslash.com/monit/
[Mor 03] Morill, D. (2003). Configuracin de sistemas Linux. Anaya Multimedia.
Buena referencia de configuracin de sistemas Linux, con algunos casos de estudio en dife-
rentes entornos; comenta diferentes distribuciones Debian y Red Hat.
[Nt3] NTFS-3g Project: NTFS-3G Read/Write Driver. http://www.ntfs-3g.org/
[Pri] Pritchard, S. "Linux Hardware HOWTO". The Linux Documentation Project.
[Rayb] Raymond, E. S. "The Linux Installation HOWTO". The Linux Documentation Project.
[Sam] Samba Project. http://samba.org
[Sama] Samba HOWTO and Reference Guide (Chapter Domain Control).
<http://samba.org/samba/docs/man/Samba-HOWTO-Collection/samba-pdc.html>
[Samb] Samba Guide (Chapter Adding Domain member Servers and Clients).
<http://samba.org/samba/docs/man/Samba-Guide/unixclients.html>
[Skob] Skoric, M. "Linux+WindowsNT mini-HOWTO". The Linux Documentation Project.
[Smb] Entrada "Server Message Block" en la Wikipedia. http://en.wikipedia.org/wiki/
Server_Message_Block
[Sun 02] Sundaram, R. (2002). "The dosemu HOWTO". The Linux Documentation Project.
[War] Ward, I. "Debian and Windows Shared Printing mini-HOWTO". The Linux Documen-
tation Project.
Wine Project. http://www.winehq.com/
[Woo] Wood, D. "SMB HOWTO". The Linux Documentation Project.
Administracin
local
Josep Jorba Esteve
PID_00167543
GNUFDL PID_00167543 Administracin local
2010, FUOC. Se garantiza permiso para copiar, distribuir y modificar este documento segn los trminos de la GNU Free
Documentation License, Version 1.2 o cualquiera posterior publicada por la Free Software Foundation, sin secciones invariantes ni
textos de cubierta delantera o trasera. Se dispone de una copia de la licencia en el apartado "GNU Free Documentation License" de
este documento.
GNUFDL PID_00167543 Administracin local
ndice
Introduccin............................................................................................... 5
1. Herramientas bsicas para el administrador............................. 7
1.1. Herramientas grficas y lneas de comandos .............................. 8
1.2. Documentos de estndares ......................................................... 10
1.3. Documentacin del sistema en lnea ......................................... 12
1.4. Herramientas de gestin de paquetes ......................................... 14
1.4.1. Paquetes TGZ ................................................................. 15
1.4.2. Fedora/Red Hat: paquetes RPM ..................................... 18
1.4.3. Debian: paquetes DEB ................................................... 22
1.5. Herramientas genricas de administracin ................................. 26
1.6. Otras herramientas ...................................................................... 27
2. Distribuciones: particularidades................................................... 28
3. Niveles de arranque y servicios...................................................... 30
3.1. Upstart, un nuevo sistema .......................................................... 33
4. Observar el estado del sistema....................................................... 36
4.1. Arranque del sistema .................................................................. 36
4.2. Kernel: directorio /proc................................................................. 37
4.3. Kernel: /sys..................................................................................... 38
4.4. Procesos ....................................................................................... 39
4.5. Logs del sistema .......................................................................... 40
4.6. Memoria ...................................................................................... 41
4.7. Discos y filesystems....................................................................... 42
5. Sistema de ficheros............................................................................ 45
5.1. Puntos de montaje ...................................................................... 47
5.2. Permisos ....................................................................................... 50
6. Usuarios y grupos.............................................................................. 51
7. Servidores de impresin................................................................... 56
7.1. BSD LPD ...................................................................................... 60
7.2. CUPS ............................................................................................ 61
8. Discos y gestin filesystems............................................................. 64
8.1. RAID software .............................................................................. 66
8.2. Volmenes lgicos (LVM) ........................................................... 77
GNUFDL PID_00167543 Administracin local
9. Software: actualizacin.................................................................... 81
10. Trabajos no interactivos.................................................................. 83
11. Taller: prcticas combinadas de los apartados.......................... 85
Actividades.................................................................................................. 95
Bibliografa................................................................................................. 96
GNUFDL PID_00167543 5 Administracin local
Introduccin
Una de las primeras tareas con la que tendr que enfrentarse el administrador
ser la gestin de los recursos locales presentes en la mquina. En el presente
mdulo veremos algunas de estas tareas de administracin bsicas, y algunos
de los aspectos de personalizacin y rendimiento de los recursos.
Antes de comenzar con los aspectos ms prcticos de la administracin, revi-
saremos algunas de las herramientas bsicas de que dispondr el administra-
dor (algunas como los shell scripts ya las hemos revisado previamente).
Posteriormente, analizaremos el proceso de arranque de un sistema GNU/Li-
nux, que nos har comprender la estructura inicial del sistema y su relacin
con los servicios que ste proporciona.
A continuacin, aprenderemos cmo obtener una visin general del estado
actual del sistema por medio de los diferentes procedimientos y comandos de
que disponemos para evaluar las partes del sistema. De este modo, podremos
tomar decisiones de administracin si detectamos algn fallo o deficiencia de
rendimiento, o la falta de algn recurso.
Uno de los principales puntos de la administracin es la gestin de usuarios,
ya que cualquier configuracin de la mquina estar destinada a que pueda
ser utilizada por stos. Veremos cmo definir nuevos usuarios al sistema y
controlar su nivel de acceso a los recursos.
En cuanto a los perifricos del sistema, como discos e impresoras, disponemos
de diferentes posibilidades de gestin, ya sea va diferentes servidores (caso
impresin) o diferentes sistemas de archivos que podemos tratar, as como
algunas tcnicas de optimizacin del rendimiento de los discos.
Tambin examinaremos el problema de la actualizacin del sistema, as como
la nueva incorporacin de software de aplicacin y cmo hacerlo disponible
a los usuarios. Asimismo, analizaremos la problemtica de ejecutar trabajos
temporizados en el sistema.
En el taller final examinaremos la evaluacin de estado de una mquina, si-
guiendo los puntos vistos en este mdulo, y llevaremos a cabo algunas de las
tareas de administracin bsicas descritas. En el desarrollo de la unidad comen-
taremos algunos comandos y, posteriormente, en el taller, veremos algunos de
ellos con ms detalle en lo que respecta a su funcionamiento y opciones.
Nota
La administracin local englo-
ba muchas tareas variadas,
que quizs sean las ms utiliza-
das por el administrador en su
trabajo diario.
GNUFDL PID_00167543 7 Administracin local
1. Herramientas bsicas para el administrador
El administrador de sistemas GNU/Linux tiene que enfrentarse, diariamente,
a una gran cantidad de tareas. En general, en la filosofa UNIX no suele haber
una nica herramienta para cada tarea o una sola manera de hacer las cosas.
Lo comn es que los sistemas UNIX proporcionen una gran cantidad de he-
rramientas ms o menos simples para afrontar las diferentes tareas.
Ser la combinacin de las herramientas bsicas, cada una con una tarea
muy definida, la que nos dar la posibilidad de solucionar un problema
o tarea de administracin.
En este apartado veremos diferentes grupos de herramientas, identificaremos
algunas de sus funciones bsicas y veremos varios ejemplos de sus usos. Co-
menzaremos por examinar algunos estndares del mundo GNU/Linux, que
nos permitirn hallar algunas de las caractersticas bsicas que esperamos de
cualquier distribucin de GNU/Linux. Estos estndares, como el LSB (o Linux
Standard Base) [Linc] y el FHS (Filesystem Hierarchy Standard) [Key], nos ha-
blan de herramientas que esperamos encontrar disponibles, de una estructura
comn para el sistema de ficheros, as como de distintas normas que tienen
que cumplirse para que una distribucin sea considerada un sistema GNU/Li-
nux y mantenga reglas comunes para la compatibilidad entre estos estndares.
En la automatizacin de tareas de administracin suelen utilizarse comandos
agrupados en shell scripts (tambin llamados guiones de comandos), mediante
lenguaje interpretados por el shell (intrprete de comandos) del sistema. En
la programacin de estos shell scripts se nos permite unir los comandos del
sistema con estructuras de control de flujo, y as disponer de un entorno de
prototipo rpido de herramientas para la automatizacin de tareas.
Otro esquema habitual es la utilizacin de herramientas de compilacin y de-
puracin de lenguajes de alto nivel (como por ejemplo C). En general, sern
utilizadas por el administrador para generar nuevos desarrollos de aplicaciones
o herramientas, o para incorporar al sistema aplicaciones que vengan como
cdigo fuente y tengan que adaptarse y compilarse.
Tambin analizaremos el uso de algunas herramientas grficas con respecto a
las habituales de la lnea de comandos. Estas herramientas suelen facilitar las
tareas al administrador, pero su uso es limitado, ya que dependen fuertemen-
te de la distribucin de GNU/Linux, o incluso de cada versin. Aun as, hay
algunas herramientas tiles que son compartidas entre distribuciones.
GNUFDL PID_00167543 8 Administracin local
Por ltimo, analizaremos un grupo de herramientas imprescindibles para man-
tener el sistema actualizado, las herramientas de gestin de paquetes. El soft-
ware servido en la distribucin GNU/Linux, o incorporado posteriormente, se
suele ofrecer en unidades denominadas paquetes, que incluyen los archivos de
un determinado software, ms pasos necesarios para la preparacin de la ins-
talacin, la configuracin posterior o, si es el caso, la actualizacin o desinsta-
lacin de un determinado software. Y cada distribucin suele aportar software
de gestin para mantener las listas de paquetes instalados, o por instalar, as
como el control de las versiones existentes, o posibilidades diversas de actua-
lizacin por medio de diferentes fuentes origen.
1.1. Herramientas grficas y lneas de comandos
Existe un gran nmero de herramientas, de las que examinamos una peque-
a porcin en este y en los siguientes mdulos, que como herramientas de
administracin son proporcionadas por terceros de forma independiente a la
distribucin o por el mismo distribuidor del sistema GNU/Linux.
Estas herramientas pueden cubrir ms o menos aspectos de la administracin
de una tarea concreta, y presentarse con mltiples interfaces diferentes: ya
sean herramientas de lnea de comandos con mltiples opciones y/o ficheros
de configuracin asociados, o herramientas textuales con algn tipo de mens
elaborados, o bien herramientas grficas con interfaces ms adecuadas para el
manejo de informacin, o asistentes que automaticen las tareas, o bien inter-
faces web de administracin.
Todo esto nos ofrece un gran nmero de posibilidades de cara a la adminis-
tracin, pero siempre tenemos que valorar su facilidad de uso junto con las
prestaciones y los conocimientos que posea el administrador que se dedica a
estas tareas.
Las tareas habituales del administrador GNU/Linux pueden pasar por traba-
jar con diferentes distribuciones (por ejemplo, las que comentaremos, Fedora
[Fed] o Debian [Debb], o cualquier otra), o incluso por trabajar con variantes
comerciales de otros UNIX. Esto conlleva que tengamos que establecer una
cierta manera de trabajar que nos permita realizar las tareas de la misma forma
en los diferentes sistemas.
Por esta razn, en los diferentes apartados intentaremos destacar todos aque-
llos aspectos ms comunes, y las tcnicas de administracin sern realizadas
en su mayor parte a bajo nivel, mediante una lnea de comandos y/o con edi-
cin de ficheros de configuracin asociados.
Funcionalidad
Las herramientas grficas de
administracin no suelen ofre-
cer una funcionalidad comple-
ta, y es interesante conocer
cules son los efectos de sus
acciones.
GNUFDL PID_00167543 9 Administracin local
Cualquiera de las distribuciones de GNU/Linux suele aportar herramientas del
tipo lnea de comandos, textual o, en particular, grficas, que complementan
las anteriores y simplifican, en mayor o menor medida, la administracin de
las tareas [Sm]. Pero hay que tener en cuenta varias puntualizaciones:
a) Estas herramientas son una interfaz ms o menos elaborada de las herra-
mientas bsicas de lnea de comandos y los correspondientes ficheros de con-
figuracin.
b) Normalmente no ofrecen todas las prestaciones o configuraciones que pue-
den realizarse a bajo nivel.
c) Los errores pueden no gestionarse bien, o simplemente proporcionar men-
sajes tipo "la tarea no se ha podido realizar".
d) El uso de estas herramientas oculta, a veces completamente, el funciona-
miento interno del servicio o tarea. Comprender bien el funcionamiento in-
terno es un conocimiento bsico para el administrador, y ms si tiene que de-
sarrollar tareas de correccin de errores o optimizacin de servicios.
e) Estas herramientas son tiles en la mejora de la produccin. Una vez que el
administrador tiene los conocimientos adecuados, puede gestionar con ellas
de forma ms eficaz las tareas rutinarias y automatizarlas.
f) O tambin el caso contrario, la tarea puede ser tan compleja, o necesitar tan-
tos parmetros, o generar tantos datos, que se vuelve imposible controlarla de
forma manual. En estos casos, las herramientas de alto nivel pueden ser muy
tiles y volver practicables algunas tareas que de otra manera son difciles de
controlar. Por ejemplo, dentro de esta categora entraran las herramientas de
visualizacin, monitorizacin y resumen de actividades o servicios complejos.
g) En la automatizacin de tareas, estas herramientas (de ms alto nivel) pue-
den no ser las ms adecuadas: pueden no haber sido pensadas para los pasos
que hay que realizar, o bien hacerlo de una forma no eficaz. Un caso concre-
to puede ser la creacin de usuarios, una herramienta visual puede ser muy
atrayente, por la forma de introducir los datos, pero qu sucede cuando en
lugar de introducir uno o pocos usuarios queremos introducir una lista de de-
cenas o centenares de stos? La herramienta, si no est preparada, se vuelve
totalmente ineficiente.
h) Por ltimo, los administradores suelen querer personalizar sus tareas utili-
zando las herramientas que consideran ms cmodas y fciles de adaptar. En
este aspecto, suele ser habitual la utilizacin de las herramientas bsicas de
bajo nivel y la utilizacin de shell scripts para combinarlas de modo que for-
men una tarea.
GNUFDL PID_00167543 10 Administracin local
Tenemos que saber valorar estas herramientas extra segn la vala que
tengan para nuestras tareas.
Podemos dar a estas herramientas un uso casual (o cotidiano), si tenemos los
conocimientos suficientes para tratar los errores que puedan producirse, o bien
con el objetivo de facilitar algn proceso para el que haya sido pensada la
herramienta, pero siempre controlando las tareas que implementamos y el
conocimiento tcnico subyacente.
1.2. Documentos de estndares
Los estndares, ya sean genricos del mundo UNIX o particulares de GNU/Li-
nux, nos permiten seguir unos criterios bsicos, por los que nos guiamos en el
momento de aprender o realizar una tarea, y que nos proporcionan informa-
cin bsica para comenzar nuestro trabajo.
En GNU/Linux podemos encontrarnos con estndares como el FHS (Fi-
lesystem Hierarchy Standard) [Linb], que nos explica qu podemos en-
contrarnos (o dnde buscarlo) en la estructura del sistema de ficheros
de nuestro sistema. O el LSB (Linux Standard Base), que nos comenta
diferentes componentes que solemos encontrar en los sistemas [Linc].
En el estndar FHS (Filesystem Hierchachy Standard) se describe la estructura
en rbol del sistema de ficheros principal (/), donde se especifica la estructura
de los directorios y los principales ficheros que contendrn. Este estndar es
usado en mayor o menor medida tambin para los UNIX comerciales, en los
cuales al principio hubo muchas diferencias que hicieron que cada fabricante
cambiara la estructura a su gusto. El estndar pensado en origen para GNU/
Linux se hizo para normalizar esta situacin y evitar cambios drsticos. Aun
as, el estndar es seguido con diferentes grados; la mayora de distribuciones
siguen en un alto porcentaje el FHS, realizando cambios menores o aportando
ficheros o directorios que no existan en el estndar.
Un esquema bsico de directorios podra ser:
/bin: utilidades de base del sistema, normalmente programas empleados
por los usuarios, ya sean desde los comandos bsicos del sistema (como
/bin/ls, listar directorio), pasando por los shells (/bin/bash), etc.
/boot: archivos necesarios durante el arranque del sistema, por ejemplo la
imagen del kernel Linux, en /boot/vmlinuz.
/dev: aqu encontramos ficheros especiales que representan los dispositi-
vos posibles en el sistema. El acceso a los perifricos en sistemas UNIX se
El estndar FHS
El Filesystem Hierchachy Stan-
dard es una herramienta b-
sica para el conocimiento de
una distribucin, que nos per-
mite conocer la estructura y
funcionalidad del sistema de
archivos principal del sistema.
Ved FHS en http://
www.pathname.com/fhs
GNUFDL PID_00167543 11 Administracin local
hace como si fueran ficheros. Podemos encontrar ficheros como /dev/con-
sole, /dev/modem, /dev/mouse, /dev/cdrom, /dev/floppy... que suelen ser enla-
ces a dispositivos ms especficos del tipo de controlador o interfaz que
utilizan los dispositivos, como /dev/mouse, enlazado a /dev/psaux, represen-
tado un ratn de tipo PS2, o /dev/cdrom a /dev/hdc, un CD-ROM que es
un dispositivo del segundo conector IDE y mster. Aqu encontramos los
dispositivos IDE como /dev/hdx, los scsi /dev/sdx... con x variando segn
el nmero de dispositivo. Hay que mencionar que las ltimas distribucio-
nes, respecto a los dispositivos de disco, soportan en el kernel emulacin
de dispositivos IDE como si fueran scsi; por eso es corriente ver hoy en da
todos los discos como dispositivos de tipo /dev/sdx. Aqu cabe comentar
que, en su inicio, este directorio era esttico, con los ficheros predefini-
dos, y/o configurados en determinados momentos. Actualmente, se utili-
zan tcnicas tecnologas dinmicas (como hotplug, y principalmente udev),
que permiten detectar dispositivos y crear los archivos /dev dinmicamen-
te, bien al inicio del sistema o durante la ejecucin, con la insercin de
dispositivos removibles.
/etc: ficheros de configuracin. La mayora de tareas de administracin ne-
cesitarn examinar o modificar los ficheros contenidos en este directorio.
Por ejemplo, /etc/passwd contiene parte de la informacin de las cuentas
de los usuarios del sistema.
/home: contiene las cuentas de los usuarios, es decir, los directorios perso-
nales de cada usuario.
/lib: las bibliotecas del sistema, compartidas por los programas de usuario,
ya sean estticas (extensin .a) o dinmicas (extensin .so). Por ejemplo,
la biblioteca C estndar, en ficheros libc.so o libc.a. Tambin en particular
suelen encontrarse los mdulos dinmicos del kernel Linux, en /lib/modu-
les.
/mnt: punto para montar (comando mount) sistemas de ficheros de forma
temporal, como /mnt/cdrom, para montar un disco en el lector de CD-ROM
momentneamente.
/media: para punto de montaje habitual de dispositivos extraibles.
/opt: suele colocarse el software aadido al sistema posterior a la instala-
cin. Otra instalacin vlida es en /usr/local.
/sbin: utilidades de base del sistema. Suelen ser comandos reservados al
administrador (root). Por ejemplo, /sbin/fsck para verificar el estado de los
sistemas de ficheros.
GNUFDL PID_00167543 12 Administracin local
/tmp: ficheros temporales de las aplicaciones o del propio sistema. Aunque
son para la ejecucin temporal, entre dos ejecuciones la aplicacin/servi-
cio no puede asumir que va a encontrar los anteriores ficheros.
/usr: diferentes elementos instalados en el sistema. Algn software de sis-
tema ms completo se instala aqu, adems de complementos multimedia
(iconos, imgenes, sonidos, por ejemplo en /usr/share) y la documentacin
del sistema (/usr/share/doc). Tambin en /usr/local se suele utilizar para ins-
talar documentacin o elementos complementarios.
/var: ficheros de registro de sesin o de estado (ficheros de tipo log) y/o
errores del propio sistema y de diferentes servicios, tanto locales como de
red. Por ejemplo, ficheros de sesin en /var/log, contenido de los mails en
/var/spool/mail o trabajos de impresin en /var/spool/lpd.
Estos son algunos de los directorios definidos en el FHS para el sistema raz;
luego se especifican algunas subdivisiones, como el contenido de los /usr y /var
y los ficheros de datos y/o ejecutables tpicos que se esperan encontrar como
mnimo en los directorios (ved las referencias a los documentos FHS).
Con respecto a las distribuciones, Fedora/Red Hat sigue el estndar FHS muy
de cerca. Slo presenta algunos cambios en los archivos presentes en /usr y
/var. En /etc suele existir un directorio por componente configurable, y hay
algn directorio especial, como /etc/sysconfig, donde se encuentra gran parte
de la configuracin de varios servicios bsicos del sistema. En /opt, /usr/local no
suele existir software instalado, a no ser que el usuario lo instale. Debian, por
su parte, sigue el estndar, aunque aade algunos directorios de configuracin
especiales en /etc.
Otro estndar en proceso es el LSB (Linux Standard Base) [Linc]. La idea de ste
es definir unos niveles de compatibilidad entre las aplicaciones, bibliotecas y
utilidades, de manera que sea posible la portabilidad de las aplicaciones entre
distribuciones sin demasiados problemas. Adems del estndar, proporcionan
conjuntos de prueba (tests) para verificar el nivel de compatibilidad. LSB en s
mismo es un recopilatorio de varios estndares aplicados a GNU/Linux.
1.3. Documentacin del sistema en lnea
Uno de los aspectos ms importantes para nuestras tareas de administracin
ser disponer de la documentacin correcta para nuestro sistema y el software
instalado. Hay muchas fuentes de informacin, entre las que destacaremos las
siguientes:
Nota
Estndares de especificaciones:
http://
www.linuxfoundation.org/en/
Specifications
LSB: http://
www.linuxfoundation.org/co-
llaborate/workgroups/lsb
GNUFDL PID_00167543 13 Administracin local
a) man es la ayuda por excelencia. Nos permite consultar el manual de GNU/
Linux, que est agrupado en varias secciones, correspondientes a comandos
administracin, formatos de ficheros, comandos de usuario, llamadas de len-
guaje C, etc. Normalmente, para obtener la ayuda asociada, tendremos sufi-
ciente con:
man comando
Cada pgina describira el comando junto con sus opciones y aportara algu-
nos ejemplos de utilizacin. A veces, puede haber ms de una entrada en el
manual. Por ejemplo, es posible que haya una llamada C con igual nombre
que un comando. En este caso, hay que especificar qu seccin quiere mirarse:
man n comando
siendo n el nmero de seccin (por ejemplo, 2 para las llamadas a sistema, o
3 para las rutinas de la librera C).
Existen tambin unas cuantas herramientas de exploracin de los manuales,
por ejemplo xman y tkman, que mediante interfaz grfica facilitan el examen
de las diferentes secciones, as como ndices de los comandos (tambin los en-
tornos KDE/Gnome permiten en sus ayudas acceder a las pginas man). Otro
comando interesante es apropos, palabra que nos permitir localizar pginas
man que hablen de un tema determinado (asociado con la palabra buscada).
b) info es otro sistema de ayuda habitual. Es un programa desarrollado por
GNU para la documentacin de muchas de sus herramientas. Se trata de una
herramienta textual en la que los captulos y las pginas se pueden recorrer
por medio de un sistema de navegacin simple (basado en teclado).
c) Documentacin de las aplicaciones: adems de ciertas pginas man, es
habitual incluir en las aplicaciones documentacin extra, ya sea en forma de
manuales o tutoriales, o simples guas de usuario. Estos componentes de do-
cumentacin se instalan en el directorio /usr/share/doc (o /usr/doc, dependien-
do de la distribucin), donde se crea un directorio por paquete de aplicacin
(por lo general, la aplicacin puede disponer de paquete de documentacin
por separado).
d) Sistemas propios de las distribuciones. Red Hat suele venir con unos CD
de manuales de consulta que son instalables en el sistema y tienen formatos
HTML o PDF. Fedora dispone de un proyecto de documentacin en su web.
Debian trae los manuales como un paquete de software ms y suelen insta-
larse en /usr/doc. Por otra parte, dispone de herramientas que clasifican la do-
cumentacin presente en el sistema y la organizan por mens para su visua-
lizacin, como dwww o dhelp, que presentan interfaces web para examinar la
documentacin del sistema.
GNUFDL PID_00167543 14 Administracin local
e) Por ltimo, los escritorios X, como Gnome y KDE, tambin traen siste-
mas de documentacin propios con su documentacin y manuales, as como
informacin para desarrolladores, ya sea en forma de ayudas grficas en sus
aplicaciones, o en aplicaciones propias que recopilan las ayudas (por ejemplo,
devhelp en Gnome).
1.4. Herramientas de gestin de paquetes
En cualquier distribucin, los paquetes son el elemento bsico para tratar las
tareas de instalacin de nuevo software, actualizacin del existente o elimina-
cin del no utilizado.
Bsicamente, un paquete es un conjunto de ficheros que forman una
aplicacin o una unin de varias aplicaciones relacionadas, formando
un nico fichero (denominado paquete), con un formato propio y com-
primido, que es el que se distribuye, ya sea va CD, disquete o mediante
acceso a servicios de ftp o web.
El uso de paquetes facilita aadir o quitar software, al considerarlo una unidad
y no tener que trabajar con los ficheros individuales.
En el contenido de la distribucin (sus CD) los paquetes suelen estar agrupados
por categoras como: a) Base: paquetes indispensables para el funcionamiento
del sistema (tiles, programas de inicio, bibliotecas de sistema). b) Sistema:
tiles de administracin, comandos de utilidad. c) Desarrollo (developement):
tiles de programacin, como editores, compiladores, depuradores... d) Gr-
ficos: controladores e interfaces grficas, escritorios, gestores de ventanas. e)
Otras categoras.
Para la instalacin de un paquete, ser necesario efectuar una serie de pasos:
1) Previo (preinstalacin): comprobar que existe el software necesario (y con
las versiones correctas) para su funcionamiento (dependencias), ya sean bi-
bliotecas de sistema u otras aplicaciones que sean usadas por el software.
2) Descompresin del contenido del paquete, copiando los ficheros a sus lo-
calizaciones definitivas, ya sean absolutas (tendrn una posicin fija) o, si se
permite, reubicadas a otros directorios.
3) Postinstalacin: retocar los ficheros necesarios, configurar posibles parme-
tros del software, adecuarlo al sistema...
GNUFDL PID_00167543 15 Administracin local
Dependiendo de los tipos de paquetes, estos pasos pueden ser automticos
en su mayora (as es en el caso de RPM [Bai03] y DEB [Deb02]). Tambin
puede que se necesite hacerlos todos manuales (caso TGZ), dependiendo de
las herramientas que proporcione la distribucin.
Veremos, a continuacin, quizs los tres paquetes ms clsicos de la mayora
de distribuciones. Cada distribucin tiene uno por estndar y soporta alguno
de los dems.
1.4.1. Paquetes TGZ
Los paquetes TGZ son quizs los de utilizacin ms antigua. Las primeras dis-
tribuciones de GNU/Linux los utilizaban para instalar el software, y todava
los usan varias distribuciones (por ejemplo, Slackware) y algunos UNIX co-
merciales.
Son una combinacin de ficheros unidos por el comando tar en un nico
fichero .tar, que luego ha sido comprimido por la utilidad gzip, suele aparecer
con la extensin .tgz o bien .tar.gz. Asimismo, hoy en da es comn encontrar
los tar.bz2 que utilizan, en lugar de gzip, otra utilidad llamada bzip2 que, en
algunos casos, consigue mayor compresin del archivo.
Este tipo de paquete no contiene ningn tipo de informacin de depen-
dencias, y puede presentar tanto contenido de aplicaciones en formato
binario como en cdigo fuente. Podemos considerarlo como una espe-
cie de coleccin de ficheros comprimida.
En contra de lo que pudiera parecer, este es un formato muy utilizado y, so-
bre todo, por creadores o distribuidores de software externo a la distribucin.
Muchos creadores de software que trabajan para plataformas varias, como va-
rios UNIX comerciales y diferentes distribuciones de GNU/Linux, lo prefieren
como sistema ms sencillo y portable.
Ejemplo
Uno de estos casos es el proyecto GNU, que distribuye su software en este formato (en
forma de cdigo fuente), ya que puede utilizarse en cualquier UNIX, ya sea un sistema
propietario, una variante BSD o una distribucin GNU/Linux.
Si se trata de formato binario, tendremos que tener en cuenta que sea adecua-
do para nuestro sistema; por ejemplo, suele ser comn alguna denominacin
como la que sigue (en este caso, la versin 1.4 del navegador web Mozilla):
mozilla-i686-pc-linux-gnu-1.4-installer.tar.gz
Nota
Los paquetes TGZ son una he-
rramienta bsica a la hora de
instalar software no organiza-
do y son muy tiles para rea-
lizar procesos de backup y res-
tauracin de archivos.
GNUFDL PID_00167543 16 Administracin local
donde tenemos el nombre del paquete, como Mozilla, arquitectura a la que ha
destinado i686 (Pentium II o superiores o compatibles). Podra ser i386, i586,
i686, k6 (amd k6), k7 (amd athlon), amd64 u x86_64 (para AMD64 y algunos
intel de 64bits), o ia64 (intel Itaniums). Otras para arquitecturas de otras m-
quinas, como sparc, powerpc, mips, hppa, alpha... Despus nos indica que es
para Linux, en una mquina PC, la versin del software 1.4.
Si fuese en formato fuente, suele aparecer como:
mozilla-source-1.4.tar.gz
donde se nos indica la palabra source. En este caso, no menciona versin de
arquitectura de mquina, lo que nos indica que est preparado (en principio)
para compilarse en diferentes arquitecturas.
De otro modo, habra diferentes cdigos para cada sistema operativo o fuente:
GNU/Linux, Solaris, Irix, bsd...
El proceso bsico con estos paquetes consiste en:
1) Descomprimir el paquete (no suelen utilizar path absoluto, con lo que se
pueden descomprimir en cualquier directorio):
tar -xzvf fichero.tar.gz (o fichero.tgz)
Con el comando tar ponemos opciones de x: extraer ficheros, z: descomprimir,
v: ver pasos proceso, f: dar nombre del fichero a tratar.
Tambin se puede hacer por separado (sin la z del tar):
gunzip fichero.tar.gz
(nos deja un fichero tar)
tar -xvf fichero.tar
2) Una vez tenemos descomprimido el tgz, tendremos los ficheros que con-
tena; normalmente, el software debe incluir algn fichero de tipo Readme o
Install, donde nos especificarn las opciones de instalacin paso a paso, y tam-
bin posibles dependencias del software.
En primer lugar, habr que verificar las dependencias (suelen indicarlas en el
fichero con los pasos de instalacin), por si disponemos del software adecuado.
Si no, deberemos buscarlo e instalarlo.
GNUFDL PID_00167543 17 Administracin local
Si se trata de un paquete binario, la instalacin suele ser bastante fcil, ya
que o bien directamente ya ser ejecutable donde lo hayamos dejado, o trae-
r algn instalador propio. Otra posibilidad ser que tengamos que hacerlo
manualmente, con lo que bastar con copiar (cp -r, copia recursiva) o mover
(comando mv) el directorio a la posicin deseada.
Otro caso es el formato de cdigo fuente. En ste, antes de instalar el software,
tendremos que hacer un paso de compilacin. Para eso habr que leer con
cierto detalle las instrucciones que lleve el programa. Pero la mayora de desa-
rrolladores usan un sistema de GNU llamado autoconf (de autoconfiguracin),
en el que habitualmente se usan los siguientes pasos (si no aparecen errores):
a) ./configure: se trata de un script que configura el cdigo para poder ser com-
pilado en nuestra mquina, y verifica que existan las herramientas adecuadas.
La opcin --prefix = directorio permite especificar dnde se instalar el softwa-
re. Normalmente, se soportan muchas opciones adicionales de configuracin
segn el software (con help se mostraran las que acepta).
b) make: la compilacin propiamente dicha.
c) make install: la instalacin del software a un lugar adecuado, especificado
previamente como opcin al configure o asumida por defecto.
Este es un proceso general, pero depende del software que lo siga o no; hay
casos bastante peores, donde todo el proceso se tiene que realizar a mano,
retocando ficheros de configuracin o el mismo makefile, y/o compilando uno
a uno los ficheros, pero esto, por suerte, es cada vez menos habitual.
En caso de querer borrar el software instalado, habr que utilizar el desinsta-
lador si nos lo proporcionan, o si no, borrar directamente el directorio o los
ficheros que se instalaron, teniendo cuidado de posibles dependencias.
Los paquetes tgz son bastante habituales como mecanismo de backup en tareas
de administracin, por ejemplo, para guardar copias de datos importantes,
hacer backups de cuentas de usuario, o guardar copias antiguas de datos que
no sabemos si volveremos a necesitar. Suele utilizarse el siguiente proceso:
supongamos que queremos guardar copia del directorio "dir" tar -cvf dir.tar dir
(c: compactar dir en el fichero dir.tar) gzip dir.tar (comprimir) o bien en una
sola instruccin como:
tar -czvf dir.tgz dir
El resultado ser un fichero dir.tgz. Hay que ser cuidadoso si nos interesa con-
servar los atributos de los ficheros, y permisos de usuario, as como posible-
mente ficheros de enlace (links) que pudieran existir (deberemos examinar las
opciones de tar para que se ajuste a las opciones de backup deseadas).
GNUFDL PID_00167543 18 Administracin local
1.4.2. Fedora/Red Hat: paquetes RPM
El sistema de paquetes RPM [Bai] creado por Red Hat supone un paso
adelante, ya que incluye la gestin de dependencias y tareas de confi-
guracin del software. Adems, el sistema guarda una pequea base de
datos con los paquetes ya instalados, que puede consultarse y se actua-
liza con las nuevas instalaciones.
Los paquetes RPM, por convencin, suelen usar un nombre como:
paquete-version-rev.arq.rpm
donde paquete es el nombre del software, version es la numeracin de versin
del software, rev suele ser la revisin del paquete RPM, que indica las veces que
se ha construido, y arq, la arquitectura a la que va destinado el paquete, ya sea
Intel/AMD (i386, i586, i686, x86_64, ia64) u otras como alpha, sparc, ppc...
La "arquitectura" noarch suele usarse cuando es independiente, por ejemplo,
un conjunto de scripts, y src en el caso de que se trate de paquetes de cdigo
fuente. La ejecucin tpica incluye la ejecucin de rpm, con las opciones de la
operacin a realizar, junto con uno o ms nombres de paquetes por procesar
juntos.
Las operaciones tpicas con los paquetes RPM incluyen:
Gestin de dependencias: los paquetes RPM incorporan la idea de gestin
de dependencias y de base de datos de los paquetes existentes.
Informacin del paquete: se consulta sobre el paquete una informacin
determinada, se usa la opcin -q acompaada del nombre del paquete (con
-p si se hace sobre un archivo rpm). Si el paquete no ha sido instalado
todava, la opcin sera -q acompaada de la opcin de informacin que
se quiera pedir, y si se quiere preguntar a todos los paquetes instalados a
la vez, la opcin sera -qa. Preguntas a un paquete instalado pueden ser:
Consulta Opcio-
nes RPM
Resultados
Archivos rpm -ql Lista de los archivos que contiene el paquete (pasado como pa-
rmetro)
Informacin rpm -qi Descripcin del paquete
Requisitos rpm -qR Requisitos previos, bibliotecas o software
Instalacin: simplemente rpm -i paquete.rpm, o bien puede hacerse con
URL donde encontrar el paquete, para descargarlo desde servidores FTP
o web. Slo hay que utilizar la sintaxis ftp:// o http:// para dar la locali-
zacin del paquete. La instalacin podr realizarse siempre que se estn
Ejemplo
El paquete apache-1.3.19-
23.i686.rpm indicara que se
trata del software Apache (el
servidor web), en su versin
1.3.19, revisin del paquete
RPM 23, para arquitecturas
Pentium II o superiores.
GNUFDL PID_00167543 19 Administracin local
cumpliendo las dependencias del paquete, ya sea software previo o biblio-
tecas que deberan estar instaladas. En caso de no cumplirlo, se nos lista-
r qu software falta, y el nombre del paquete que lo proporciona. Pue-
de forzarse la instalacin (a riesgo de que no funcione) con las opciones
--force o --nodeps, o simplemente no hacer caso de la informacin de las
dependencias. La tarea de instalacin (realizada por rpm) de un paquete
conlleva diferentes subtareas:
Verificar las posibles dependencias.
Examinar por conflictos con otros paquetes previamente instalados.
Realizar tareas previas a la instalacin.
Decidir qu hacer con los ficheros de configuracin asociados al paquete
si previamente existan.
Desempaquetar los ficheros y colocarlos en el sitio correcto.
Realizar tareas de postinstalacin.
Finalmente, almacenar registro de las tareas realizadas en la base de datos
de RPM.
Actualizacin: equivalente a la instalacin, pero comprobando primero
que el software ya existe rpm -U paquete.rpm. Se encargar de borrar la ins-
talacin previa.
Verificacin: durante el funcionamiento normal del sistema, muchos de
los archivos instalados cambian. En este sentido, RPM permite verificar los
archivos para detectar las modificaciones, bien por proceso normal, bien
por algn error que podra indicar datos corrompidos. Mediante rpm -V
paquete verificamos un paquete concreto, y mediante rpm -Va los verifica-
mos todos.
Eliminacin: borrar el paquete del sistema RPM (-e o --erase). Si hay de-
pendencias, puede ser necesario eliminar otros primero.
Ejemplo
Para un caso remoto:
rpm -i ftp://sitio/directorio/paquete.rpm
nos permitira descargar el paquete desde el sitio ftp o web proporcionado, con su loca-
lizacin de directorios, y proceder en este caso a la instalacin del paquete.
GNUFDL PID_00167543 20 Administracin local
Hay que vigilar la procedencia de los paquetes, y slo utilizar fuentes de pa-
quetes conocidas y fiables, ya sea del propio fabricante de la distribucin, o
de sitios en los que confiemos. Se nos ofrece junto con los paquetes alguna
"firma" digital de stos para que podamos comprobar su autenticidad; suelen
utilizarse las sumas md5 para comprobar que el paquete no se ha alterado,
y otros sistemas como GPG (versin Gnu de PGP) para comprobar la autenti-
cidad del emisor del paquete. Hay tambin en Internet diferentes almacenes
de paquetes RPM, donde estn disponibles para diferentes distribuciones que
usen o permitan el formato RPM.
Para un uso seguro de paquetes, los repositorios (oficiales, y algunos de terce-
ros) firman electrnicamente los paquetes, por ejemplo con el mencionado
GPG. Esto nos permite asegurar (si disponemos de las firmas) que los paquetes
proceden de la fuente fiable. Cada proveedor (el repositorio) incluye unos fi-
cheros de firma PGP con la clave para su sitio. De los repositorios oficiales ya
se encuentran instaladas, de terceros deberemos obtener el fichero de clave, e
incluirla en RPM, tpicamente:
$ rpm --import GPG-KEY-FILE
Siendo GPP-KEY-FILE el fichero clave GPG o la URL de dicho fichero, este fi-
chero tambin tendr suma md5 para comprobar su integridad. Podemos co-
nocer las claves existentes en el sistema con:
$ rpm -qa | grep ^gpg-pubkey
Podemos observar ms detalles a partir de la llave obtenida:
$ rpm -qi gpg-key-xxxxx-yyyyy
Para un paquete rpm concreto podremos comprobar si dispone de firma y cul
se ha utilizado con:
$ rpm --checksig -v <paquete>.rpm
Y para verificar que un paquete es correcto en base a las firmas disponibles,
puede comprobarse con:
$ rpm -K <paquete.rpm>
Debemos ser cuidadosos en importar slo aquellas claves de los sitios en que
confiemos. Cuando RPM encuentre paquetes con firma que no poseamos en
nuestro sistema, o el paquete no est firmado, nos avisar, y la accin ya de-
pender de nuestra actuacin.
Nota
Ver el sitio www.rpmfind.net
GNUFDL PID_00167543 21 Administracin local
En cuanto al soporte RPM en las distribuciones, en Fedora (Red Hat, y tambin
en sus derivadas), RPM es el formato por defecto de paquetes y el que usa am-
pliamente la distribucin para las actualizaciones, y la instalacin de software.
En Debian se utiliza el formato denominado DEB (como veremos), hay sopor-
te para RPM (existe el comando rpm), pero slo para consulta o informacin
de paquetes. En el caso de que sea imprescindible instalar un paquete rpm en
Debian, se recomienda utilizar la utilidad alien, que permite convertir forma-
tos de paquetes, en este caso de RPM a DEB, y proceder a la instalacin con
el paquete convertido.
Adems del sistema base de empaquetado de la distribucin, hoy en da cada
una suele aportar un sistema de gestin de software intermedio de ms alto
nivel, que aade una capa superior al sistema base, facilitando las tareas de
gestin del software y aadiendo una serie de utilidades para controlar mejor
el proceso.
En el caso de Fedora (Red Hat y derivados) se utiliza el sistema YUM, que per-
mite, como herramienta de ms alto nivel, la instalacin y gestin de paque-
tes en sistemas rpm, as como la gestin automtica de dependencias entre
los paquetes. Facilita el acceso a mltiples repositorios diferentes, centraliza su
configuracin en un fichero (/etc/yum.conf habitualmente) y tiene una interfaz
de comandos simple.
La configuracin de yum se basa en:
/etc/yum.config | (fichero de opciones)
/etc/yum | (directorio para algunas utilidades asociadas)
/etc/yum.repos.d | (directorio de especificacin de repositorios, un fichero para cada uno,
se incluye informacin del acceso y localizacin de las firmas <i>gpg</i>)
Para las operaciones tpicas de yum, un resumen sera:
Orden Descripcin
yum install <nombre> Instalar el paquete con el nombre
yum update <nombre> Actualizar un paquete existente
yum remove <nombre> Eliminar paquete
yum list <nombre> Buscar paquete por nombre (slo nombre)
yum search <nombre> Buscar ms ampliamente
yum provices <file> Buscar paquetes que proporcionen el fichero
yum update Actualizar todo el sistema
yum upgrade dem al anterior incluyendo paquetes adicionales
Nota
Ved http://yum.baseurl.org/
GNUFDL PID_00167543 22 Administracin local
Para finalizar, Fedora tambien ofrece un par de utilidades grficas para yum,
pup para controlar las actualizaciones recientes disponibles y pirut como pa-
quete de gestin de software (en nuevas versiones de Fedora, se han sustituido
por gpk-update-viewer y gpk-application). Tambin existen algunas otras como
yumex, con mayor control de la configuracin interna de YUM.
1.4.3. Debian: paquetes DEB
Debian tiene herramientas interactivas como tasksel, que permiten escoger
unos subconjuntos de paquetes agrupados por tipo de tareas: paquetes para
X, para desarrollo, para documentacin, etc., o como dselect que facilita na-
vegar por toda la lista de paquetes disponible (hay miles) y escoger aquellos
que queramos instalar o desinstalar. De hecho, estas son slo un front-end del
gestor de software nivel intermedio APT (equivalente al yum en Fedora).
En el nivel de lnea de comandos dispone de dpkg, que es el comando de ms
bajo nivel (sera el equivalente a rpm), para gestionar directamente los paque-
tes DEB de software [Deb], tpicamente dpkg -i paquete.deb para realizar la ins-
talacin. Pueden realizarse todo tipo de tareas, de informacin, instalacin,
borrado o cambios internos a los paquetes de software.
El nivel intermedio (como el caso de yum en Fedora) lo presentan las herra-
mientas APT (la mayora son comandos apt-xxx). APT permite gestionar los
paquetes por medio de una lista de paquetes actuales y disponibles a partir de
varias fuentes de software, ya sea desde los propios CD de la instalacin, sitios
ftp o web (HTTP). Esta gestin se hace de forma transparente, de manera que
el sistema es independiente de las fuentes de software.
La configuracin del sistema APT se efecta desde los archivos disponibles en
/etc/apt, donde /etc/apt/sources.list es la lista de fuentes disponibles. Podra ser,
por ejemplo:
deb http://http.us.debian.org/debian stable main contrib non-free
debsrc http://http.us.debian.org/debian stable main contrib non-free
deb http://security.debian.org stable/updates main contrib non-free
en que hay recopiladas varias de las fuentes "oficiales" para una Debian (stable
en este caso), desde donde se pueden obtener los paquetes de software, as
como las actualizaciones que estn disponibles. Bsicamente, se especifica el
tipo de fuente (web/ftp en este caso), el sitio, la versin de la distribucin
(stable), y categoras del software que se buscar (libre, o contribuciones de
terceros o de licencia no libre o comercial).
GNUFDL PID_00167543 23 Administracin local
Los paquetes de software estn disponibles para las diferentes versiones de la
distribucin Debian. Existen paquetes para las versiones stable, testing y unsta-
ble. El uso de unos u otros determina el tipo de distribucin (previo cambio de
las fuentes de repositorios en sources.list). Pueden tenerse fuentes de paquetes
mezcladas, pero no es muy recomendable, ya que se podran dar conflictos
entre las versiones de las diferentes distribuciones.
Una vez tenemos las fuentes de software configuradas, la principal herramien-
ta para manejarlas en nuestro sistema es apt-get, que nos permite instalar, ac-
tualizar o borrar desde el paquete individual, hasta actualizar la distribucin
entera. Existe tambin un front-end a apt-get, llamado aptitude, cuya interfaz
de opciones es prcticamente igual (de hecho, podra calificarse de emulador
de apt-get, ya que la interfaz es equivalente). Como ventaja, aporta una me-
jor gestin de dependencias de los paquetes, y algoritmos para solucionar los
conflictos de paquetes que pueden aparecer. De hecho, en las ltimas versio-
nes de Debian, aptitude es la interfaz por defecto en lnea de comandos para
la gestin de paquetes.
Algunas funciones bsicas de apt-get son:
1) Instalacin de un paquete particular:
apt-get install paquete
2) Borrado de un paquete:
apt-get remove paquete
3) Actualizacin de la lista de paquetes disponibles:
apt-get update
4) Actualizacin de la distribucin, podramos efectuar los pasos combinados:
apt-get update
apt-get upgrade
apt-get dist-upgrade
Mediante este ltimo proceso, podemos mantener nuestra distribucin actua-
lizada permanentemente, actualizando los paquetes instalados y verificando
las dependencias con los nuevos. Una herramienta til para construir esta lista
es apt-spy, que intenta buscar los sitios oficiales ms rpidos, o netselect, que
nos permite probar una lista de sitios. Por otro lado, podemos buscar las fuen-
tes oficiales (configurarlas con apt-setup), o bien copiar algn fichero de fuen-
Un sistema muy potente
Los paquetes DEB de Debian
son quizs el sistema de ins-
talacin ms potente existen-
te en GNU/Linux. Una de sus
prestaciones ms destacables
es la independencia del siste-
ma de las fuentes de los pa-
quetes (mediante APT).
GNUFDL PID_00167543 24 Administracin local
tes disponible. Software adicional (de terceros) puede necesitar aadir otras
fuentes ms (a /etc/apt/sources.list), se pueden obtener listas de sitios de fuentes
disponibles (por ejemplo, en http://www.apt-get.org).
La actualizacin del sistema en particular genera una descarga de un gran n-
mero de paquetes (en especial en unstable), lo que hace recomendable vaciar
la cache, el repositorio local, con los paquetes descargados (se mantienen en
/var/cache/apt/archive) que ya no vayan a ser utilizados, bien con apt-get clean,
para eliminarlos todos, o bien con apt-get autoclean, para eliminar aquellos pa-
quetes no necesarios porque ya hay nuevas versiones y ya no sern necesarios
(en principio). Hay que tener en cuenta que no volvamos a necesitar estos
paquetes por razones de reinstalacin, porque en este caso tendramos que
volver a descargarlos.
El sistema APT tambin permite lo que se denomina SecureAPT, que es la ges-
tin segura de paquetes mediante verificacin de sumas (md5) y la firma de
fuentes de paquetes (de tipo GPG). Si durante la descarga no estn disponi-
bles las firmas, apt-get informa de ello y genera un listado con los paquetes
no firmados, pidiendo si se van a dejar instalar o no, dejando la decisin al
administrador. Se obtiene la lista de fuentes confiables actuales con:
# apt-key list
Las claves gpg de los sitios oficiales de Debian son distribuidas mediante un
paquete. Las instalamos:
apt-get install debian-archive-keyring
evidentemente considerando que tenemos sources.list con los sitios oficiales.
Se espera que por defecto (dependiendo de la versin Debian) estas claves ya
se instalen, en la instalacin inicial del sistema. Para otros sitios no oficiales
(que no proporcionen la clave en paquete), pero que consideremos confiables,
podemos importar su clave, obtenindola desde el repositorio (tendremos que
consultar dnde tienen la clave disponible, no hay un estndar definido, aun-
que suele estar en la pgina web inicial del repositorio). Se utiliza apt-key add
con el fichero, para aadir la clave, o tambin:
# gpg --import fichero.key
# gpg --export --armor XXXXXXXX | apt-key add -
siendo X un hexadecimal relacionado con la clave (ved instrucciones del re-
positorio para comprobar la forma recomendada de importar la clave y los
datos necesarios).
GNUFDL PID_00167543 25 Administracin local
Otra funcionalidad importante del sistema APT son las funciones de consulta
de informacin de los paquetes, con la herramienta apt-cache, que nos permite
interactuar con las listas de paquetes de software Debian.
Ejemplo:
La herramienta apt-cache dispone de comandos que nos permiten buscar informacin
sobre los paquetes, como por ejemplo:
1) Buscar paquetes sobre la base de un nombre incompleto:
apt-cache search nombre
2) Mostrar la descripcin del paquete:
apt-cache show paquete
3) De qu paquetes depende:
apt-cache depends paquete
Otra herramienta o funcionalidad de apt interesante es apt-show-versions, que
nos especifica qu paquetes pueden ser actualizados (y por qu versiones, ved
opcin -u).
Otras tareas ms especficas necesitarn realizarse con la herramienta de ms
bajo nivel, como dpkg. Se puede, por ejemplo, obtener la lista de archivos de
un paquete determinado ya instalado:
dpkg -L paquete
O la lista de paquetes entera con:
dpkg -l
O buscar de qu paquete proviene un elemento (fichero, por ejemplo):
dpkg -S fichero
Este en particular funciona para paquetes instalados; apt-file permite tambin
buscar para paquetes todava no instalados.
Por ltimo, cabe mencionar tambin algunas herramientas grficas para APT,
como synaptic, gnome-apt para Gnome (o gnome-app-install y update-manager
para versiones recientes), y Kpackage o Adept para KDE. O las textuales ya men-
cionadas, como aptitude o dselect.
En conclusin, cabe destacar que el sistema de gestin APT (en combinacin
con el base dpkg) es muy flexible y potente a la hora de gestionar las actuali-
zaciones, y es el sistema de gestin de paquetes usado en Debian y sus distri-
buciones derivadas, como Ubuntu, Kubuntu, Knoppix, Linex, etc.
GNUFDL PID_00167543 26 Administracin local
1.5. Herramientas genricas de administracin
En el campo de la administracin, tambin podramos considerar algunas he-
rramientas, como las pensadas de forma genrica para la administracin. Aun-
que cabe indicar que para estas herramientas es difcil mantenerse al dia, debi-
do a los actuales planes de versiones de las distribuciones, con evolucin muy
rpida. Algunas de estas herramientas (aunque en un momento determinado
pueden no ser funcionales al completo en una distribucin dada) son:
1) Webmin: es una herramienta de administracin pensada desde interfaz
web. Funciona con una serie de plugins que se pueden aadir para cada servicio
a administrar y cuenta con formularios donde se especifican los parmetros
de configuracin de los servicios. Adems, ofrece la posibilidad (si se activa)
de permitir administracin remota desde cualquier mquina con navegador.
2) Otras en desarrollo, como cPanel, ISPConfig...
Por otra parte, en los entornos de escritorio de Gnome y KDE, suelen dispo-
ner del concepto de "Panel de control", que permite gestionar tanto el aspecto
visual de las interfaces grficas como tratar algunos parmetros de los dispo-
sitivos del sistema.
En cuanto a las herramientas grficas individuales de administracin, la propia
distribucin de GNU/Linux ofrece algunas directamente (herramientas que
acompaan tanto a Gnome como KDE), herramientas dedicadas a gestionar
un dispositivo (impresoras, sonido, tarjeta de red, etc.) y otras para la ejecu-
cin de tareas concretas (conexin a Internet, configurar arranque de servicios
del sistema, configurar X Window, visualizar logs...). Muchas de ellas son sim-
ples frontends (o cartulas) a las herramientas bsicas de sistema, o bien estn
adaptadas a particularidades de la distribucin.
Cabe destacar, en especial en este apartado, la distribucin Fedora (Red Hat
y derivados), que intenta disponer de distintas utilidades (ms o menos mini-
malistas) para diferentes funciones de administracin. Las podemos encontrar
en el escritorio (en el men de administracin), o en comandos como system-
config-xxxxx para diferentes funcionalidades como gestin de pantalla, impre-
sora, red, seguridad, usuarios, paquetes, etc. Podemos ver en la figura algunas
de ellas:
Nota
Podis encontrar esta he-
rramienta en Webmin:
www.webmin.com
GNUFDL PID_00167543 27 Administracin local
Algunas utilidades grficas de administracin en Fedora.
1.6. Otras herramientas
En el espacio limitado de esta unidad no pueden llegar a comentarse todas
aquellas herramientas que nos pueden aportar beneficios para la administra-
cin. Citaremos algunas de las herramientas que podramos considerar bsicas:
Los mltiples comandos de utilidad UNIX bsicos: grep, awk, sed, find,
diff, gzip, bzip2, cut, sort, df, du, cat, more, file, which...
Los editores, imprescindibles para cualquier tarea de edicin, cuentan con
editores como Vi, muy utilizado en tareas de administracin por la rapidez
de efectuar pequeos cambios en los ficheros. Vim es el editor compatible
Vi, que suele traer GNU/Linux. Permite sintaxis coloreada en varios len-
guajes. Emacs, editor muy completo, adaptado a diferentes lenguajes de
programacin (sintaxis y modos de edicin), dispone de un entorno muy
completo y de una versin X denominada xemacs. Joe es un editor compa-
tible con Wordstar. Y muchos otros...
Lenguajes de tipo script, tiles para administracin, como Perl, muy ade-
cuado para tratamiento de expresiones regulares y anlisis de ficheros (fil-
trado, ordenacin, etc.); PHP, lenguaje muy utilizado en entornos web;
Python, otro lenguaje que permite hacer prototipos rpidos de aplicacio-
nes...
Herramientas de compilacin y depuracin de lenguajes de alto nivel:
GNU gcc (compilador de C y C++ entre otros), gdb (depurador), xxgdb (in-
terfaz X para gdb), ddd (depurador para varios lenguajes).
Nota
Consultad las pginas man
de los comandos, o una refe-
rencia de herramientas como
[Stu01].
GNUFDL PID_00167543 28 Administracin local
2. Distribuciones: particularidades
Intentamos destacar ahora algunas diferencias tcnicas menores (que cada vez
se reducen ms) en las distribuciones (Fedora/Red Hat y Debian) utilizadas
[Mor03], que iremos viendo con ms detalle a lo largo de las unidades, a me-
dida que vayan apareciendo.
Cambios o particularidades de Fedora/Red Hat:
Uso del gestor de arranque grub (una utilidad GNU). A diferencia de pa-
sadas versiones de la mayora de distribuciones, que suelen usar lilo, Fedo-
ra utiliza grub. GRUB (Grand Unified Bootloader) tiene una configuracin
en modo texto (normalmente en /boot/grub/grub.conf) bastante sencilla, y
que puede modificarse en el arranque. Es quizs ms flexible que lilo. l-
timamente las distribuciones tienden al uso de grub; Debian tambin lo
incluye ya por defecto.
Gestin de alternativas. En el caso de que haya ms de un software equi-
valente presente para una tarea concreta, mediante un directorio (/etc/al-
ternatives) se indica cul es la alternativa que se usa. Este sistema se tom
prestado de Debian, que hace un uso amplio de l en su distribucin.
Programa de escucha de puertos TCP/IP basado en xinetd. En /etc/
xinetd.d podemos encontrar, de forma modular, los ficheros de configura-
cin para algunos de los servicios TCP/IP, junto con el fichero de configu-
racin /etc/xinetd.conf. En los sistemas UNIX clsicos, el programa utilizado
es el inetd, que posea un nico fichero de configuracin en /etc/inetd.conf,
caso, por ejemplo, de la distribucin Debian, que utiliza inetd, dejando xi-
netd como opcin.
Algunos directorios de configuracin especiales: /etc/profile.d, archivos
que se ejecutan cuando un usuario abre un shell; /etc/xinetd.d, configura-
cin de algunos servicios de red; /etc/sysconfig, datos de configuracin de
varios aspectos y servicios del sistema; /etc/cron., varios directorios donde
se especifican trabajos para hacer peridicamente (mediante crontab); /etc/
pam.d, donde pam son los denominados mdulos de autentificacin: en
cada uno de cuyos archivos se configuran permisos para el programa o
servicio particular; /etc/logrotate.d, configuracin de rotacin (cuando hay
que limpiar, comprimir, etc.) de algunos de los ficheros de log para dife-
rentes servicios.
Dispone de un software llamado kudzu, en algunas de las versiones pre-
vias de Fedora, y en Read Hat empresarial, que examina el hardware en
arranque para detectar posibles cambios de configuracin y generar los
Nota
Es importante conocer los de-
talles de una distribucin, ya
que pueden ser bsicos para
resolver una tarea o acelerar su
solucin (por ejemplo, si dis-
pone de herramientas propias
adicionales especializadas para
alguna tarea).
GNUFDL PID_00167543 29 Administracin local
dispositivos o configuraciones adecuadas. Aunque se est migrando pro-
gresivamente a la API HAL que controla precisamente este tema.
En el caso de Debian:
Sistema de empaquetado propio basado en los paquetes DEB, con he-
rramientas de varios niveles para trabajar con los paquetes como: dpkg,
apt-get, dselect, tasksel.
Debian sigue el FHS, sobre la estructura de directorios, aadiendo algu-
nos particulares en /etc, como por ejemplo: /etc/default, archivos de confi-
guracin, y valores por defecto para algunos programas; /etc/network, datos
y guiones de configuracin de las interfaces de red; /etc/dpkg y /etc/apt, in-
formacin de la configuracin de las herramientas de gestin de paquetes;
/etc/alternatives, enlaces a los programas por defecto, en aquellos en los que
hay (o puede haber) varias alternativas disponibles.
Sistema de configuracin de muchos paquetes de software por medio de
la herramienta dpkg-reconfigure. Por ejemplo:
dpkg-reconfigure gdm
permite escoger el gestor de entrada para X, o:
dpkg-reconfigure X-Window-system
nos permite configurar los diferentes elementos de X.
Utiliza configuracin de servicios TCP/IP por inetd, configuracin en
fichero /etc/inetd.conf. Dispone de una herramienta update-inetd para inha-
bilitar o crear entradas de servicios.
Algunos directorios de configuracin especiales: /etc/cron., varios directo-
rios donde se especifican trabajos para hacer peridicamente (mediante
crontab); /etc/pam.d, donde pam son mdulos de autentificacin.
GNUFDL PID_00167543 30 Administracin local
3. Niveles de arranque y servicios
Un primer punto importante en el anlisis del comportamiento local del sis-
tema es su funcionamiento en los llamados niveles de ejecucin (o runlevels),
que determinan (en el nivel) el modo actual de trabajo del sistema y los servi-
cios que se proporcionan [Wm02].
Un servicio es una funcionalidad proporcionada por la mquina, normalmen-
te basada en daemonds (o procesos en segundo plano de ejecucin, que con-
trolan peticiones de red, actividad del hardware, u otros programas que pro-
vean alguna tarea).
La activacin o parada de servicios se realiza mediante la utilizacin de scripts.
La mayora de los servicios estndar, que suelen tener su configuracin en el
directorio /etc, suelen controlarse mediante los scripts presentes en /etc/init.d/
. En este directorio suelen aparecer scripts con nombres similares al servicio
donde van destinados, y se suelen aceptar parmetros de activacin o parada.
Se realiza:
/etc/init.d/servicio start
Arranque del servicio.
/etc/init.d/servicio stop
Parada del servicio.
/etc/init.d/servicio restart
Parada y posterior arranque del servicio.
Cuando un sistema GNU/Linux arranca, primero se carga el kernel del sistema,
despus se inicia el primer proceso, denominado init, que es el responsable de
ejecutar y activar el resto del sistema, mediante la gestin de los niveles de
ejecucin (o runlevels).
Un nivel de ejecucin es sencillamente una configuracin de progra-
mas y servicios que se ejecutarn orientados a un determinado funcio-
namiento.
GNUFDL PID_00167543 31 Administracin local
Los niveles tpicos suelen ser (puede haber diferencias en el orden, en especial
en los niveles 2-5, en la tabla la configuracin en Fedora, y la recomendada
por el standard LSB):
Runlevel Funcin Descripcin
0 Parada Finaliza servicios y programas activos, as como desmonta filesystems activos y para la
CPU.
1 Monousuario Finaliza la mayora de servicios, permitiendo slo la entrada del administrador (root).
Se usa para tareas de mantenimiento y correccin de errores crticos.
2 Multiusuario sin red No se inician servicios de red, permitiendo slo entradas locales en el sistema.
3 Multiusuario Inicia todos los servicios excepto los grficos asociados a X Window.
4 Multiusuario No suele usarse, tpicamente es igual que el 3.
5 Multiusuario X Igual que 3, pero con soporte X para la entrada de usuarios (login grfico).
6 Reinicio Para todos los programas y servicios. Reinicia el sistema.
Por el contrario, cabe sealar que Debian usa un modelo donde prcticamen-
te los niveles 2-5 son equivalentes, realizando exactamente la misma funcin
(aunque podra ocurrir que en alguna versin esto fuera a cambiar para coin-
cidir con el estndar LSB).
Estos niveles suelen estar configurados en los sistemas GNU/Linux (y UNIX)
por dos sistemas diferentes, el BSD, o el SystemV (a veces abreviado como
sysV). En el caso de Fedora y Debian, se utiliza el sistema SystemV, que es el
que mostraremos, pero otros UNIX y alguna distribucin GNU/Linux (como
Slackware) utilizan el modelo BSD.
En el caso del modelo runlevel de SystemV, cuando el proceso init arranca,
utiliza un fichero de configuracin llamado /etc/inittab para decidir el modo de
ejecucin en el que va a entrar. En este fichero se define el runlevel por defecto
(initdefault) en arranque (por instalacin en Fedora el 5, en Debian el 2) y una
serie de servicios de terminal por activar para atender la entrada del usuario.
Despus, el sistema, segn el runlevel escogido, consulta los ficheros conteni-
dos en /etc/rcn.d, donde n es el nmero asociado al runlevel (nivel escogido),
en el que se encuentra una lista de servicios por activar o parar en caso de que
arranquemos en el runlevel o lo abandonemos. Dentro del directorio encon-
traremos una serie de scripts o enlaces a los scripts que controlan el servicio.
Cada script posee un nombre relacionado con el servicio, una S o K inicial que
indica si es el script para iniciar (S) o matar (K) el servicio, y un nmero que
refleja el orden en que se ejecutarn los servicios.
GNUFDL PID_00167543 32 Administracin local
Una serie de comandos de sistema sirven de ayuda para manejar los niveles
de ejecucin. Cabe mencionar:
Los scripts, que ya hemos visto, en /etc/init.d/ nos permiten arrancar, parar
o reiniciar servicios individuales.
telinit nos deja cambiar de nivel de ejecucin; slo tenemos que indicar
el nmero. Por ejemplo, necesitamos hacer una tarea crtica en root; sin
usuarios trabajando, podemos hacer un telinit 1 (tambin puede usarse S)
para pasar a runlevel monousuario, y despus de la tarea un telinit 3 para
volver a multiusuario. Tambin puede utilizarse el comando init para la
misma tarea, aunque telinit aporta algn parmetro extra. Por ejemplo, el
reinicio tpico de un sistema UNIX se haca con sync; sync; sync; init 6. El
comando sync fuerza el vaciado de los buffers del sistema de archivos, y
luego reiniciamos en runlevel 6.
shutdown permite parar ('-h' de halt) o reiniciar el sistema ('-r' de reboot).
Puede darse un intervalo de tiempo para hacerse, o bien realizarse inme-
diatamente. Para estas tareas tambin existen los comandos halt y reboot.
wall permite enviar mensajes de advertencia a los usuarios del sistema.
Concretamente, el administrador puede anunciar que se va a parar la m-
quina en un determinado momento. Comandos como shutdown suelen
utilizarlo de forma automtica.
pidof permite averiguar el PID (process ID) asociado a un proceso. Con ps
obtenemos los listados de procesos, y si queremos eliminar un servicio o
proceso mediante kill, necesitaremos su PID.
Respecto a todo el modelo de arranque, las distribuciones presentan algn
pequeo cambio:
Fedora/Red Hat: el runlevel 4 no tiene un uso declarado. Los directorios
/etc/rcn.d existen como enlaces hacia subdirectorios de /etc/rc.d, donde es-
tn centralizados los scripts de arranque. Los directorios son, as: /etc/rc.d/
rcn.d; pero como existen los enlaces, es transparente al usuario. El runlevel
por defecto es el 5 con arranque con X.
Los comandos y ficheros relacionados con el arranque del sistema estn
en los paquetes de software sysvinit y initscripts.
Respecto a los cambios de ficheros y guiones en Fedora, cabe destacar:
en /etc/sysconfig podemos encontrar archivos que especifican valores por
defecto de la configuracin de dispositivos o servicios. El guin /etc/rc.d/
rc.sysinit es invocado una vez cuando el sistema arranca; el guin /etc/rc.d/
rc.local se invoca al final del proceso de carga y sirve para indicar iniciali-
zaciones especficas de la mquina que nos interesen sin pasar por todo
el sistema siguiente.
GNUFDL PID_00167543 33 Administracin local
El arranque real de los servicios se hace por medio de los guiones almace-
nados en /etc/rc.d/init.d. Hay tambin un enlace desde /etc/init.d. Adems,
Fedora proporciona unos scripts de utilidad para manejar servicios: /sbin/
service para parar o iniciar un servicio por el nombre y /sbin/chkconfig para
aadir enlaces a los ficheros S y K necesarios para un servicio, o la obten-
cin de informacin sobre los servicios.
Debian dispone de comandos de gestin de los runlevels como update-rc.d,
que permite instalar o borrar servicios arrancndolos o parndolos en uno
o ms runlevels. Otro comando es invoke-rc.d, que permite las clsicas ac-
ciones de arrancar, parar o reiniciar el servicio.
El runlevel por defecto en Debian es el 2, el X Window System no se ges-
tiona desde /etc/inittab, sino que existe el gestor (por ejemplo, gdm o kdm),
como si fuera un servicio ms del runlevel 2.
3.1. Upstart, un nuevo sistema
Upstart es un nuevo sistema de arranque basado en eventos, diseado para
sustituir al proceso comentado generado por el init del sistema de arranque
sysvinit. Uno de los principales problemas del daemon init de SystemV es que
no fue pensado para hardware moderno, que permite dispositivos removibles,
o dispositivos que puedan ser conectados/sustituidos en caliente (hotplug).
Este sistema fue diseado por la empresa Canonical, para incorporarse en
Ubuntu 6.10 (2006) y ha sido incorporado posteriormente a las diferentes ver-
siones de Ubuntu, y a Fedora (a partir de la versin 9) y openSUSE (11.3). De-
bian mantiene el anterior sistema con ciertas modificaciones (initng, una al-
ternativa a Upstart) hasta las ltimas versiones, pero migrar progresivamente
al nuevo sistema (debido a los intentos, por ambas partes, por mantener el
mximo nivel de semejanza con Ubuntu y Debian).
Aunque cabe destacar que Upstart (al menos de momento) mantiene una com-
patibilidad total con los scripts iniciales del proceso de init (vistos en este apar-
tado, "Niveles de arranque y servicios"), lo que se modifica es el proceso inter-
no que gestiona los servicios de arranque, que pasa a estar controlado por el
daemon de Upstart.
El demonio init de Upstart est basado en eventos que permiten ejecutar pro-
gramas (o acciones) especficas a partir de cambios en el sistema, que suelen ser
tpicamente (respecto al init SystemV) scripts de parada o arranque de servicios.
En System V esto solamente se produca por cambio de nivel de ejecucin;
en Upstart puede provocarlo cualquier evento que suceda dinmicamente en
el sistema. Por ejemplo, Upstart suele comunicarse (por eventos) con demo-
GNUFDL PID_00167543 34 Administracin local
nios (como udev) que controlan los cambios del hardware de la mquina, por
ejemplo si aparece/desaparece un determinado hardware, pueden activarse o
desactivarse los servicios de sistema asociados a l.
La gestin de estos eventos est centralizada en /etc/event.d y, a medida que
se vaya migrando (en las distribuciones) hacia upstart, este directorio ir rem-
plazando los contenidos de /etc/init.d y los directorios asociados a los niveles
de ejecucin /etc/rc<n>.d.
En la terminologia de Upstart, un evento es un cambio de estado del sistema
que puede ser informado al proceso init. Un job es un conjunto de instruccio-
nes que init lee, tpicamente o bien un binario o un shell script, junto con el
nombre del evento. As, cuando el evento aparece en el sistema, Upstart lan-
za el job asociado (los jobs del sistema podemos encontrarlos definidos en el
directorio mencionado /etc/event.d). Los jobs pueden ser de dos tipos, task o
service. Una task es un job que realiza su tarea y retorna a un estado de espera
cuando acaba; un service no termina por s mismo, sino por una decisin ba-
sada en un evento o bien una intervencin manual de parada.
As, el proceso general init de Upstart es un funcionamiento de mquina de
estados; mantiene control del estado de los trabajos (jobs) y los eventos que
dinmicamente aparecen, y gestiona los cambios de estado de los trabajos en
reaccin a los eventos aparecidos.
Hay una serie de trabajos (jobs) predefinidos con nombres rcn que sirven para
emular los cambios de runlevel de SystemV, para as emular el concepto de
nivel de ejecucin.
Para examinar el sistema Upstart, podemos usar como herramienta bsica el
comando initctl, que nos permite (entre otras tareas):
initctl list (listar jobs y su estado).
initctl emit EVENT (emitir manualmente eventos concretos).
initctl start/stop/status JOB (la accin sobre un job).
Para finalizar, podemos observar que Upstart es un sistema bastante nuevo y
podr tener cierta evolucin futura, ya sustituyendo completamente al System
V inicial o evolucionando a nuevas funcionalidades, pues el sistema basado en
mquina de estados es muy completo para integrar diferentes funcionalidades
que ahora estn repartidas por varios elementos del sistema. Se prevee que
podra llegar a reemplazar programacin de tareas peridicas de sistema (la
usada actualmente, como veremos, por elementos como cron, anacron, atd) y
posiblemente gestiones varias de demonios de red (como las realizadas por
inetd o xinetd).
GNUFDL PID_00167543 35 Administracin local
Upstart es un aspecto al que deberemos prestar atencin en futuras evolucio-
nes, sin descuidar SystemV, ya que se mantiene cierta compatibilidad al no
estar todas las distribuciones migradas a Upstart. Por otra parte, SystemV sigue
utilizndose en la mayora de UNIX propietarios, y versiones empresariales de
GNU/Linux.
GNUFDL PID_00167543 36 Administracin local
4. Observar el estado del sistema
Una de las principales tareas del administrador (root) en su da a da ser ve-
rificar el correcto funcionamiento del sistema y vigilar la existencia de posi-
bles errores o de saturacin de los recursos de la mquina (memoria, discos,
etc.). Pasaremos a detallar, en los siguientes apartados, los mtodos bsicos
para examinar el estado del sistema en un determinado momento y llevar a
cabo las acciones necesarias para evitar problemas posteriores.
En el taller final de esta unidad, realizaremos un examen de un sistema ejem-
plo, para que podis ver algunas de estas tcnicas.
4.1. Arranque del sistema
En el arranque de un sistema GNU/Linux se produce todo un volcado de in-
formacin interesante. Cuando el sistema arranca, suelen aparecer los datos
de deteccin de las caractersticas de la mquina, deteccin de dispositivos,
arranque de servicios de sistema, etc., y se mencionan los problemas apareci-
dos.
En la mayora de las distribuciones, esto puede verse en la consola del sistema
directamente durante el proceso de arranque. Sin embargo, o la velocidad de
los mensajes o algunas modernas distribuciones que los ocultan tras cartulas
grficas pueden impedir seguir los mensajes correctamente, con lo que nece-
sitaremos una serie de herramientas para este proceso.
Bsicamente, podemos utilizar:
Comando dmesg: da los mensajes del ltimo arranque del kernel.
Fichero /var/log/messages: log general del sistema, que contiene los men-
sajes generados por el kernel y otros daemons (puede haber multitud de
archivos diferentes de log, normalmente en /var/log, y dependiendo de la
configuracin del servicio syslog).
Comando uptime: indica cunto tiempo hace que el sistema est activo.
Sistema /proc: pseudosistema de ficheros (procfs) que utiliza el kernel para
almacenar la informacin de procesos y de sistema.
Sistema /sys: pseudosistema de ficheros (sysfs) que apareci con la rama
2.6.x del kernel, con objetivo de proporcionar una forma ms coherente de
acceder a la informacin de los dispositivos y sus controladores (drivers).
GNUFDL PID_00167543 37 Administracin local
4.2. Kernel: directorio /proc
El kernel, durante su arranque, pone en funcionamiento un pseudosistema de
dicheros llamado /proc, donde vuelca la informacin que recopila de la mqui-
na, as como muchos de sus datos internos, durante la ejecucin. El directorio
/proc est implementado sobre memoria y no se guarda en disco. Los datos
contenidos son tanto de naturaleza esttica como dinmica (varan durante
la ejecucin).
Hay que tener en cuenta que al ser /proc fuertemente dependiente del kernel,
propicia que su estructura dependa del kernel de que dispone el sistema y la
estructura y los ficheros incluidos pueden cambiar.
Una de las caractersticas interesantes es que en el directorio /proc podremos
encontrar las imgenes de los procesos en ejecucin, junto con la informacin
que el kernel maneja acerca de ellos. Cada proceso del sistema se puede encon-
trar en el directorio /proc/<pidproceso>, donde hay un directorio con ficheros
que representan su estado. Esta informacin es bsica para programas de de-
puracin, o bien para los propios comandos del sistema, como ps o top, que
pueden utilizarla para ver el estado de los procesos. En general, muchas de las
utilidades del sistema consultan la informacin dinmica del sistema desde
/proc (en especial, algunas utilidades proporcionadas en el paquete procps).
Por otra parte, en /proc podemos encontrar otros ficheros de estado global del
sistema. Comentamos de forma breve, algunos ficheros que podremos exami-
nar para obtener informacin importante:
Fichero Descripcin
/proc/bus Directorio con informacin de los buses PCI y USB
/proc/cmdline Lnea de arranque del kernel
/proc/cpuinfo Informacin de la CPU
/proc/devices Listado de dispositivos del sistema de caracteres o bloques
/proc/driver Informacin de algunos mdulos kernel de hardware
/proc/filesystems Sistemas de ficheros habilitados en el kernel
/proc/ide Directorio de informacin del bus IDE, caractersticas de discos
/proc/interrups Mapa de interrupciones hardware (IRQ) utilizadas
/proc/ioports Puertos de E/S utilizados
/proc/meminfo Datos del uso de la memoria
/proc/modules Mdulos del kernel
/proc/mounts Sistemas de archivos montados actualmente
Nota
El directorio /proc es un recur-
so extraordinario para obtener
informacin de bajo nivel so-
bre el funcionamiento del sis-
tema. Muchos comandos de
sistema se apoyan en l para
sus tareas.
GNUFDL PID_00167543 38 Administracin local
Fichero Descripcin
/proc/net Directorio con toda la informacin de red
/proc/scsi Directorio de dispositivos SCSI, o IDE emulados por SCSI
/proc/sys Acceso a parmetros del kernel configurables dinmicamente
/proc/version Versin y fecha del kernel
A partir de la rama 2.6 del kernel, se ha iniciado una transicin progresiva de
procfs (/proc) a sysfs (/sys) con el objetivo de mover toda aquella informacin
que no est relacionada con procesos, en especial dispositivos y sus controla-
dores (mdulos del kernel) hacia el sistema /sys.
4.3. Kernel: /sys
El sistema Sys se encarga de hacer disponible la informacin de dispositivos y
controladores, informacin de la cual dispone el kernel, al espacio de usuario,
de manera que otras API o aplicaciones puedan acceder de una forma flexible
a la informacin de los dispositivos (o sus controladores). Suele ser utilizada
por capas como HAL y el servicio udev para la monitorizacin y configuracin
dinmica de los dispositivos.
Dentro del concepto de sys existe una estructura de datos en rbol de los dis-
positivos y controladores (digamos el modelo conceptual fijo), y despus se
accede a l por medio del sistema de ficheros sysfs (cuya estructura puede cam-
biar entre versiones).
En cuanto se detecta o aparece en el sistema un objeto aadido, en el rbol del
modelo de controladores (controladores, dispositivos incluyendo sus diferen-
tes clases), se crea un directorio en sysfs. La relacin padre/hijo se refleja con
subdirectorios bajo /sys/devices/ (reflejando la capa fsica y sus identificadores).
En el subdirectorio /sys/bus se colocan enlaces simblicos, reflejando el modo
en el que los dispositivos pertenecen a los diferentes buses fsicos del sistema.
Y en /sys/class muestra los dispositivos agrupados de acuerdo a su clase, como
por ejemplo red, mientras que /sys/block/ contiene los dispositivos de bloques.
Alguna de la informacin proporcionada por /sys puede encontrarse tambin
en /proc, pero se consider que ste estaba mezclando diferentes cosas (dispo-
sitivos, procesos, datos hardware, parmetros kernel) de forma no coherente,
y ello fue uno de los motivos para crear /sys. Se espera que, progresivamente,
se migre informacin de /proc a /sys para centralizar la informacin de los dis-
positivos.
GNUFDL PID_00167543 39 Administracin local
4.4. Procesos
Los procesos que se encuentren en ejecucin en un determinado momento
sern, en general, de diferente naturaleza. Podemos encontrar:
Procesos de sistema, ya sean procesos asociados al funcionamiento local
de la mquina, kernel, o bien procesos (denominados daemons) asociados
al control de diferentes servicios. Por otro lado pueden ser locales, o de
red, debido a que estemos ofreciendo el servicio (actuamos de servidor) o
estemos recibiendo los resultados del servicio (actuamos de clientes). La
mayora de estos procesos de sistema aparecern asociados al usuario root
(aunque se suelen migrar a pseudousuarios especializados por servicio),
aunque no estemos presentes en ese momento como usuarios. Puede haber
algunos servicios asociados a otros usuarios de sistema (lp, bin, www, mail,
etc.). Estos son pseudousuarios "virtuales", no interactivos, que utiliza el
sistema para ejecutar ciertos procesos.
Procesos del usuario administrador: en caso de actuar como root, nues-
tros procesos interactivos o aplicaciones lanzadas tambin aparecern co-
mo procesos asociados al usuario root.
Procesos de usuarios del sistema: asociados a la ejecucin de sus aplica-
ciones, ya sea tareas interactivas en modo texto o en modo grfico.
Como comandos rpidos y ms tiles, podemos utilizar:
ps: el comando estndar, lista los procesos con sus datos de usuario, tiem-
po, identificador de proceso y lnea de comandos usada. Una de las opcio-
nes ms utilizada es ps -ef (o -ax), pero hay muchas opciones disponibles
(ved man).
top: una versin que nos da una lista actualizada a intervalos, monitori-
zando dinmicamente los cambios. Y nos permite ordenar el listado de
procesos por diferentes tems, como gasto de memoria, de uso CPU, con
propsito de obtener un ranking de los procesos que acaparan los recursos.
Muy til para dar indicios en situaciones extremas de saturacin de uso de
recursos, de la posible fuente de problemas.
kill: nos permite eliminar procesos del sistema mediante el envo de sea-
les al proceso como, por ejemplo, la de terminacin kill -9 pid_del_proceso
(9 corresponde a SIGKILL), donde indicamos el identificador del proceso.
Resulta til para procesos con comportamiento inestable o programas in-
teractivos que han dejado de responder. Podemos ver una lista de las se-
ales vlidas en el sistema con man 7 signal.
GNUFDL PID_00167543 40 Administracin local
4.5. Logs del sistema
Tanto el kernel como muchos de los daemons de servicios, as como diferentes
aplicaciones o subsistemas de GNU/Linux, pueden generar mensajes que va-
yan a parar a ficheros log, ya sea para tener una traza de su funcionamiento, o
bien para detectar errores o advertencias de mal funcionamiento o situaciones
crticas. Este tipo de logs son imprescindibles, en muchos casos, para las tareas
de administracin y se suelen emplear bastante tiempo de administracin en
el procesamiento y anlisis de sus contenidos.
La mayor parte de los logs se generan en el directorio /var/log, aunque
algunas aplicaciones pueden modificar este comportamiento. La mayo-
ra de logs del propio sistema s que se encuentran en este directorio.
Un daemon particular del sistema (importante) es el daemon Syslogd, que se en-
carga de recibir los mensajes que se envan por parte del kernel y otros daemons
de servicios y los enva a un fichero log que se encuentra en /var/log/messages.
Este es el fichero por defecto, pero Syslogd es tambin configurable (en el fi-
chero /etc/syslog.conf), de manera que se pueden generar otros ficheros depen-
diendo de la fuente, segn el daemon que enva el mensaje, y as dirigirlo a un
log u a otro (clasificando as por fuente), y/o tambin clasificar los mensajes
por importancia (nivel de prioridad): alarm, warning, error, critical, etc.
Dependiendo de la distribucin, puede estar configurado de diferentes modos
por defecto, en /var/log suele generar (por ejemplo) en Debian ficheros como:
kern.log, mail.err, mail.info... que son los logs de diferentes servicios. Podemos
examinar la configuracin para determinar de dnde provienen los mensajes
y en qu ficheros los guarda. Una opcin que suele ser til es la posibilidad de
enviar los mensajes a una consola virtual de texto (en /etc/syslog.conf se espe-
cifica para el tipo, o tipos, de mensaje una consola de destino, como /dev/tty8
o /dev/xconsole), de manera que podremos ir viendo los mensajes a medida que
se produzcan. Esto suele ser til para monitorizar la ejecucin del sistema sin
tener que estar mirando los ficheros de log a cada momento. Una modificacin
simple de este mtodo podra ser introducir, desde un terminal, la instruccin
siguiente (para el log general):
tail -f /var/log/messages
Esta sentencia nos permite dejar el terminal o ventana de terminal, de manera
que irn apareciendo los cambios que se produzcan en el fichero.
Otros comandos relacionados son:
Nota
El daemon Syslogd es el servicio
ms importante de obtencin
de informacin dinmica de la
mquina. El proceso de anlisis
de los logs nos ayuda a enten-
der el funcionamiento, los po-
sibles errores y el rendimiento
del sistema.
GNUFDL PID_00167543 41 Administracin local
uptime: tiempo que hace que el sistema est activo. til para comprobar
que no hay existido algn rearranque del sistema inesperado.
last: analiza log de entradas/salidas del sistema (/var/log/wtmp) de los usua-
rios, y los arranques del sistema. O lastlog, control de la ltima vez que los
usuarios han sido vistos en el sistema (informacin en /var/log/lastlog).
Varias utilidades para procesamiento combinado de logs, que emiten
resmenes (o alarmas) de lo sucedido en el sistema, como por ejemplo:
logwatch, logcheck(Debian), log_analysis (Debian)...
4.6. Memoria
Respecto a la memoria del sistema, deberemos tener en cuenta que dispone-
mos de la memoria fsica de la propia mquina y de la memoria virtual, que
puede ser direccionada por los procesos. Normalmente (a no ser que estemos
tratando con servidores empresariales), no dispondremos de cantidades dema-
siado grandes, de modo que la memoria fsica ser menor que el tamao de
memoria virtual necesario (4GB en sistemas de 32 bits). Esto obligar a utilizar
una zona de intercambio (swap) sobre disco, para implementar los procesos
asociados a memoria virtual.
Esta zona de intercambio (swap) puede implementarse como un fichero en el
sistema de archivos, pero es ms habitual encontrarla como una particin de
intercambio (llamada de swap), creada durante la instalacin del sistema. En
el momento de particionar el disco, se declara como de tipo Linux Swap.
Para examinar la informacin sobre memoria, tenemos varios mtodos y co-
mandos tiles:
Fichero /etc/fstab: aparece la particin swap (si existiese). Con un coman-
do fdisk podemos averiguar su tamao (o consultar a /proc/swaps).
Comando ps: permite conocer qu procesos tenemos, y con las opciones
de porcentaje y memoria usada.
Comando top: es una versin ps dinmica actualizable por periodos de
tiempo. Puede clasificar los procesos segn la memoria que se usa o el
tiempo de CPU.
Comando free: informa sobre el estado global de la memoria. Da tambin
el tamao de la memoria virtual.
Comando vmstat: informa sobre el estado de la memoria virtual, y el uso
que se le da.
Algunos paquetes como dstat permiten recoger datos de los diferentes pa-
rmetros (memoria, swap y otros) a intervalos de tiempo (de forma pare-
cida a top).
GNUFDL PID_00167543 42 Administracin local
4.7. Discos y filesystems
Examinaremos qu discos tenemos disponibles, cmo estn organizados y de
qu particiones y sistemas de archivos (filesystems) disponemos.Cuando dis-
pongamos de una particin y de un determinado filesystem accesible, tendre-
mos que realizar un proceso de montaje para integrarla en el sistema, ya sea
explcitamente o bien programada en arranque. En el proceso de montaje, se
conecta el sistema de archivos asociado a la particin a un punto del rbol de
directorios.
Para conocer los discos (o dispositivos de almacenamiento) que tenemos en
el sistema, podemos basarnos en la informacin de arranque del sistema (co-
mando dmesg o /var/log/messages), donde se detectan los presentes, como los
/dev/hdx para los dispositivos IDE o los SCSI con dispositivos /dev/sdx. ltima-
mente los discos SATA y antiguos IDE son presentados como scsi, debido a
una capa de emulacin del kernel que trata a los discos como scsi. Otros dis-
positivos, como discos duros conectados por USB, discos flash (los de tipo pen
drive), unidades removibles, CD-ROM externos, suelen ser dispositivos con al-
gn tipo de emulacin scsi, por lo que tambin se vern como dispositivo de
este tipo.
Cualquier dispositivo de almacenamiento presentar una serie de parti-
ciones de su espacio. Tpicamente, un disco IDE soporta un mximo de
cuatro particiones fsicas, o ms si stas son lgicas (permiten colocar
varias particiones de este tipo sobre una fsica). Cada particin puede
contener tipos de filesystems diferentes, ya sean de un mismo operativo
o de operativos diferentes.
Para examinar la estructura de un dispositivo conocido o cambiar su estructura
particionando el disco, podemos utilizar el comando fdisk, o cualquiera de sus
variantes ms o menos interactivas (cfdisk, sfdisk). Por ejemplo, al examinar
un disco ejemplo ide /dev/hda, nos da la siguiente informacin:
# fdisk -l /dev/hda
Disk /dev/hda: 20.5 GB, 20520493056 bytes 255 heads, 63 sectors/track, 2494 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/hda1 * 1 1305 10482381 7 HPFS/NTFS
/dev/hda2 * 1306 2429 9028530 83 Linux
/dev/hda3 2430 2494 522112+ 82 Linux swap
Disco de 20 GB con tres particiones (se identifican con el nmero aadido
al nombre del dispositivo), donde observamos dos particiones con arranque
(columna Boot con *) de tipo NTFS y Linux, lo que supone la existencia de
un Windows NT/2000/XP/Vista/7 junto con una distribucin GNU/Linux, y
GNUFDL PID_00167543 43 Administracin local
la ltima particin que es usada de swap para Linux. Adems, tenemos infor-
macin de la estructura del disco y de los tamaos de cada particin. Tambin
se puede obtener informacin de todas las particiones presentes en el sistema
consultado el fichero /proc/partitions.
De los discos y particiones de que dispongamos, algunos se encontrarn mon-
tados en nuestro sistema de ficheros, o estarn preparados para montarse bajo
demanda o bien montarse en el momento en que se disponga de medio (en
el caso de dispositivos extrables).
Esta informacin la podemos obtener de diferentes maneras (lo veremos con
ms detalle en el taller final):
Fichero /etc/fstab: indica dispositivos que estn preparados para montarse
en el arranque o los extrables que podrn ser montados. No tienen por
qu estar todos los del sistema, sino slo aquellos que queramos tener en
arranque. Los dems podemos montarlos bajo demanda con el comando
mount, o desmontarlos con umount.
Comando mount: nos informa de los filesystems montados en ese mo-
mento (ya sean dispositivos reales o filesystems virtuales, como /proc). Po-
demos obtener esta informacin tambin desde el fichero /etc/mtab.
Comando df -k: nos informa de los filesystems de almacenamiento, y nos
permite verificar el espacio usado y disponible. Se trata de un comando b-
sico para controlar el espacio de disco disponible. Respecto a este coman-
do df -k, una de nuestras tareas bsicas de administracin de la mquina
es controlar los recursos de sta, y en este caso el espacio disponible en
los filesystems utilizados. Estos tamaos hay que monitorizarlos con cierta
frecuencia para evitar la cada del sistema; nunca tendra que dejarse un
filesystem (sobre todo si es el /) por debajo de un 10-15%, ya que hay mu-
chos procesos (daemons de servicios) que estn escribiendo informacin
temporal o logs, que pueden consumir gran espacio. Un caso particular lo
forman los ficheros core, generados por fallos de software y que continen
informacin de depuracin de los errores que los han provocado junto
con la imagen del proceso, los cuales pueden suponer (dependiendo del
proceso) tamaos muy grandes de archivo. Normalmente, habr que tener
algunas precauciones de "limpieza del sistema" si se detectan situaciones
de saturacin del filesystem:
Eliminar temporales antiguos. Los directorios /tmp y /var/tmp suelen acu-
mular muchos archivos generados por diferentes usuarios o aplicaciones.
Algunos sistemas o distribuciones ya toman medidas de limpieza, como
limpiar /tmp en cada arranque del sistema.
Logs: evitar su crecimiento excesivo, ya que segn la configuracin del sis-
tema (por ejemplo, de Syslogd) la informacin generada de mensajes pue-
GNUFDL PID_00167543 44 Administracin local
de ser muy grande. Habr que limpiar peridicamente al llegar a determi-
nados tamaos, y en todo caso, si necesitamos la informacin para poste-
riores anlisis, podemos realizar backups en medios extrables. Este proce-
so puede automatizarse mediante uso de scripts cron, o bien por medio de
herramientas especializadas como logrotate.
Hay otros puntos del sistema que suelen crecer mucho, como pueden ser:
Ficheros core de los usuarios: podemos eliminarlos peridicamente o
eliminar su generacin.
El sistema de correo electrnico: almacena todos los correos enviados y
recibidos; podemos pedir a los usuarios que hagan limpieza peridica,
o bien poner sistemas de cuotas.
Las cachs de los navegadores u otras aplicaciones: tambin suelen
tener tamaos grandes, otra limpieza que habr que hacer peridica-
mente.
Las cuentas de los propios usuarios: pueden tener cuotas para no ex-
ceder los tamaos prefijados...
GNUFDL PID_00167543 45 Administracin local
5. Sistema de ficheros
En cada mquina con un sistema GNU/Linux podemos ver sistemas de fiche-
ros de diferentes tipos [Hin]. Para empezar, es habitual encontrarse con los
propios sistemas de ficheros Linux creados en distintas particiones de los dis-
cos [Koe].
La configuracin habitual suele ser de dos particiones:
1) la correspondiente a "/" (root filesystem) y
2) la correspondiente al fichero de intercambio o de swap.
Con todo, en configuraciones ms profesionales suele ser habitual separar par-
ticiones con partes "diferenciadas" del sistema. Una tcnica habitual es, por
ejemplo (veremos ms opciones despus), crear particiones diferentes para:
/ /boot /home /opt /tmp /usr /var swap
que seguramente se encontrarn montadas desde diferentes orgenes (diferen-
tes discos, o incluso red en algunos casos).
Las particiones se realizan para separar claramente partes estticas y di-
nmicas del sistema, para permitir de una forma ms fcil, ante proble-
mas de saturacin, extender las particiones o aislar ms fcilmente par-
tes para la realizacin de backups (por ejemplo, las cuentas de los usua-
rios en la particin /home).
El tipo de particiones swap es de tipo Linux swap, y la correspondiente a / sue-
le ser de alguno de los sistemas de ficheros estndar, ya sea ext2 (el tipo por
defecto hasta los kernels 2.4), ext3 o el nuevo ext4, que son mejoras del ext2
compatibles pero con journaling, lo que permite tener un log de lo que va pa-
sando al sistema de ficheros, para recuperaciones ms rpidas en caso de error.
Tambin pueden ser habituales otros sistemas de archivos, como Reiser o XFS.
Otra configuracin habitual puede ser de tres particiones: /, swap, /home, don-
de la /home se dedicar a las cuentas de los usuarios. Esto permite separar las
cuentas de los usuarios del sistema, aislando en dos particiones separadas, y
podemos dar el espacio necesario para las cuentas en otra particin.
GNUFDL PID_00167543 46 Administracin local
Otro esquema muy utilizado es el de separar en particiones las partes estticas
del sistema de las dinmicas, por ejemplo, una particin donde se coloca / con
la parte esttica (/bin /sbin y /usr en algunos casos) que se espera que no va a
crecer o lo va a hacer muy poco, y otra o varias con la parte dinmica (/var /tmp
/opt), suponiendo que /opt, por ejemplo, es el punto de instalacin del software
nuevo. Esto permite ajustar mejor el espacio de disco y dejar ms espacio para
las partes del sistema que lo necesiten.
Respecto a los sistemas de ficheros soportados debemos destacar la gran varie-
dad de ellos; actualmente, podemos encontrar (entre otros):
Sistemas asociados a GNU/Linux, como el estndar ext2, ext3, evolucin
del anterior con concepto de journaling (soporte de log de operaciones rea-
lizadas en el sistema de fichero que puede permitir su recuperacin en caso
de algn desastre que lo haga inconsistente). O el nuevo ext4.
Compatibilidad con entornos no GNU/Linux: msdos, vfat, ntfs, acceso
a los diferentes sistemas de fat16, fat32 y ntfs. En particular, cabe resaltar
que el soporte kernel, en el caso del kernel, est limitado a lectura. Pero
como ya hemos dicho, existen soluciones en espacio de usuario (mediante
FUSE, un componente que permite escribir sistemas de ficheros en espacio
de usuario), que la permiten, como el ya mencionado ntfs-3g. Tambin se
disponen de compatibilidad a otros entornos como Mac con hfs y hfsplus.
Sistemas asociados a soportes fsicos, caso de CD/DVD, como los iso9660
y udf.
Sistemas usados en diferentes Unix, que ofrecen generalmente mejor
rendimiento (a veces, a costa de mayor consumo de recursos, en CPU por
ejemplo), como JFS2 (IBM), XFS (SGI), o ReiserFS.
Sistemas de ficheros en red (ms tradicionales): NFS, Samba (smbfs, cifs),
permiten acceder a sistemas de ficheros disponibles en otras mquinas de
forma transparente por red.
Sistemas distribuidos en red: como GFS o Coda.
Pseudosistemas de ficheros, como procfs (/proc) o sysfs (/sys).
En la mayora (excepto algn caso especial) de estos sistemas de ficheros, GNU/
Linux nos permitir crear particiones de estos tipos, construir el sistema de
ficheros del tipo requerido y montarlas como parte integrante del rbol de di-
rectorios, ya sea de forma temporal o permanente.
GNUFDL PID_00167543 47 Administracin local
5.1. Puntos de montaje
Aparte del filesystem principal / y de sus posibles divisiones en particiones ex-
tras (/usr /var /tmp /home), cabe tener en cuenta la posibilidad de dejar puntos
de montaje preparados para el montaje de otros sistemas de ficheros, ya sea
particiones de disco u otros dispositivos de almacenamiento.
En las mquinas en que GNU/Linux comparte la particin con otros sistemas
operativos, mediante algn sistema de arranque (lilo o grub), pueden existir
varias particiones asignadas a los diferentes operativos. Muchas veces es inte-
resante compartir datos con estos sistemas, ya sea para leer sus ficheros o mo-
dificarlos. A diferencia de otros sistemas (que slo tienen en cuenta sus pro-
pios datos y sistemas de ficheros, y en los cuales en algunas versiones no se
soportan algunos de sus propios sistemas de ficheros), GNU/Linux es capaz de
tratar, como hemos visto, con una cantidad enorme de sistemas de ficheros
de diferentes operativos y poder compartir la informacin.
Ejemplo
Si en los PC personales hemos instalado GNU/Linux, seguramente encontraremos ms
de un operativo, por ejemplo, otra versin de GNU/Linux con ext2 o 3 de sistema de fi-
cheros; podramos encontrar un antiguo msdos con su sistema de ficheros FAT, un Win-
dows98/ME/XP Home con FAT32 (o vfat para Linux) o un Windows NT/2000/XP/Vista/7
con sistemas NTFS (ntfs para Linux) y FAT32 (vfat) a la vez.
Nuestro sistema GNU/Linux puede leer datos (o sea, ficheros y directorios) de
todos estos sistemas de ficheros y escribir en la mayora de ellos.
En el caso de NTFS, hasta ciertos momentos existieron problemas en la escri-
tura, que estaba en forma experimental en la mayora de drivers de kernel apa-
recidos debido, principalmente, a las diferentes versiones que van apareciendo
del sistema de ficheros, ya que existen dos versiones principales llamadas NTFS
y NTFS2, y algunas extensiones como los llamados volmenes dinmicos, o
los sistemas de ficheros cifrados. Acceder con segn que opcin de drivers pre-
sentaba ciertas incompatibilidades, que podran causar corrupciones de datos
o errores en el sistema de ficheros.
Debido a FUSE, un mdulo integrado en el kernel (a partir de 2.6.11), se ha
permitido un desarrollo ms flexible de sistemas de ficheros, directamente en
espacio de usuario (de hecho, FUSE acta como un "puente" entre las peticio-
nes del kernel y el acceso que se hace desde el driver).
Gracias a las posibilidades de FUSE, se tiene un soporte ms o menos completo
de NTFS (mientras Microsoft no haga ms cambios en la especificacin), en
especial desde la aparicin del driver (basado en FUSE) ntfs-3g y la combinacin
con las utilidades ntfsprogs.
GNUFDL PID_00167543 48 Administracin local
Para que se puedan leer o escribir los datos, la particin tiene que estar
disponible dentro de nuestro sistema de ficheros raz (/). Por lo tanto,
hay que llevar a cabo un proceso de "montaje" del sistema de ficheros en
algn punto de nuestro rbol de directorios. Se seguir el mismo proceso
si se trata de un dispositivo de almacenamiento, ya sea disquete o floppy.
Dependiendo de la distribucin, se usan unos sistemas u otros, o tambin los
podemos crear nosotros. Normalmente, suelen existir o bien como subdirec-
torios de la raz, por ejemplo /cdrom /win /floppy, o bien son subdirectorios
dentro de /mnt, el punto estndar de montaje (aparecen como /mnt/cdrom /
mnt/floppy...), o el directorio /media, que es el preferido ltimamente por las
distribuciones. Segn el estndar FHS, /mnt se debera usar para montajes tem-
porales de sistemas de archivo, mientras /media se utilizara para montar dis-
positivos removibles.
El proceso de montaje se realiza mediante la orden mount con el siguiente
formato:
mount -t filesystem-type device mount-point
El tipo de filesystem puede ser: msdos (fat), vfat (fat32), ntfs (ntfs lectura),
iso9660 (para cdrom), ext2, ext3, xfs... (de los disponibles).
El dispositivo es la entrada correspondiente en el directorio /dev a la localiza-
cin del dispositivo; los IDE tenan /dev/hdxy, donde x es a,b,c, o d (1 master, 1
slave, 2 master, 2 slave) e y, el nmero de particin, los SCSI (/dev/sdx), donde
x es a,b,c,d... (segn el ID SCSI asociado 0,1,2,3,4...).
Vamos a ver algunos casos:
mount -t iso9660 /dev/hdc /mnt/cdrom
montara el CD-ROM (si es el IDE que est en el segundo IDE de forma master)
en el punto /mnt/cdrom.
mount -t iso9660 /dev/cdrom /mnt/cdrom
montara el CD-ROM; /dev/cdrom se usa como sinnimo (es un link) del dis-
positivo donde est conectado.
mount -t vfat /dev/fd0H1440 /mnt/floppy
montara el disquete, /dev/fd0H1440. Sera la disquetera A en alta densidad
(1.44 MB). Tambin puede usarse /dev/fd0.
GNUFDL PID_00167543 49 Administracin local
mount -t ntfs /dev/hda2 /mnt/winXP
montara la segunda particin del primer dispositivo IDE (la C:), de tipo NTFS
(por ejemplo, un Windows XP).
Si estas particiones son ms o menos estables en el sistema (o sea, no cambian
frecuentemente) y las queremos utilizar, lo mejor ser incluir los montajes
para que se hagan en tiempo de ejecucin, al iniciar el sistema, mediante la
configuracin del fichero /etc/fstab:
# /etc/fstab: Informacin esttica del sistema de ficheros
#
#<Sis. ficheros> <Punto montaje> <Tipo> <Opciones> <volcado> <pasada>
/dev/hda2 / ext3 errors = remountro 0 1
/dev/hdb3 none swap sw 0 0
proc /proc proc defaults 0 0
/dev/fd0 /floppy auto user,noauto 0 0
/dev/cdrom /cdrom iso9660 ro,user,noauto 0 0
/dev/sdb1 /mnt/usb vfat user,noauto 0 0
Por ejemplo, esta configuracin incluye algunos de los sistemas estndar, co-
mo la raz en /dev/hda2, la particin de swap que est en hdb3, el sistema proc
(que utiliza el kernel para guardar su informacin). Y el disquete, el CD-ROM,
y en este caso un disco USB de tipo flash (que se detecta como un dispositivo
scsi). En algunos casos, se especifica auto como tipo de filesystem. Esto permi-
te que se autodetecte el sistema de ficheros. Si se conoce, es mejor indicarlo
en la configuracin, y por otra parte, el noauto en las opciones permite que
no sea montado de forma automtica siempre, sino bajo peticin (o acceso
al directorio).
Si tenemos esta informacin en el fichero, el proceso de montaje se simplifica
mucho, ya que se har o bien en ejecucin, en arranque, o bien bajo demanda
(para los noauto). Y puede hacerse ahora simplemente pidiendo que se monte
el punto de montaje o el dispositivo:
mount /mnt/cdrom
mount /dev/fd0
dado que el sistema ya tiene el resto de la informacin.
El proceso contrario, el desmontaje, es bastante sencillo, el comando umount
con punto o dispositivo:
umount /mnt/cdrom
umount /dev/fd0
GNUFDL PID_00167543 50 Administracin local
En el caso de medios extrables, tipo CD-ROM (u otros), puede usarse eject para
la extraccin del soporte fsico:
eject /dev/cdrom
o, en este caso, slo:
eject
Los comandos mount y umount montan o desmontan todos los sistemas dispo-
nibles. En el fichero /etc/mtab se mantiene una lista de los sistemas montados.
En un momento concreto se puede consultar o ejecutar mount sin parmetros
para obtener esta informacin.
5.2. Permisos
Otro asunto que habr que controlar, en el caso de los ficheros y directorios,
es el de los permisos que queremos establecer en cada uno de ellos; hay que
recordar que cada fichero puede disponer de la serie de permisos: rwxrwxrwx,
donde se corresponden con rwx del propietario, rwx del grupo al que el usua-
rio pertenece y rwx para otros usuarios. En cada uno se puede establecer el
permiso de lectura (r), escritura (w) o ejecucin (x). En el caso de un directorio,
x denota el permiso para poder entrar en ese directorio (con el comando cd,
por ejemplo).
Para modificar los derechos sobre un directorio o fichero, existen los coman-
dos:
chown: cambiar propietario de los ficheros.
chgrp: cambiar grupo propietario de los ficheros.
chmod: cambiar permisos especficos (rwx) de los archivos.
Estos comandos tambin permiten la opcin -R, que es recursiva si se trata de
un directorio.
GNUFDL PID_00167543 51 Administracin local
6. Usuarios y grupos
Los usuarios de un sistema GNU/Linux disponen de una cuenta asociada (de-
finida con algunos de sus datos y preferencias), junto con el espacio en disco
para que puedan desarrollar sus archivos y directorios. Este espacio est asig-
nado al usuario, y slo puede ser usado por ste (a no ser que los permisos
especifiquen cosas diferentes).
Dentro de las cuentas asociadas a usuarios, podemos encontrar diferentes ti-
pos:
La del administrador, con identificador root, que slo es (o debera ser)
utilizada para las operaciones de administracin. El usuario root es el que
dispone de ms permisos y acceso completo a la mquina y a los archivos
de configuracin. Por lo tanto, tambin es el que ms dao puede causar
por errores u omisiones. Es mejor evitar usar la cuenta de root como si fuese
un usuario ms, por lo que se recomienda dejarla slo para operaciones
de administracin.
Cuentas de usuarios: las cuentas normales para cualquier usuario de la
mquina tienen los permisos restringidos al uso de ficheros de su cuenta,
y a algunas otras zonas particulares (por ejemplo, los temporales en /tmp),
as como a utilizar algunos dispositivos para los que se les haya habilitado
permisos.
Cuentas especiales de los servicios: lp, news, wheel, www-data... cuentas
que no son usadas por personas, sino por servicios internos del sistema,
que los usa bajo estos nombres de usuario. Algunos de los servicios tam-
bin son usados bajo el usuario de root (aunque por razones de seguridad
debera evitarse).
Un usuario normalmente se crea mediante la especificacin de un nombre
(o identificador de usuario), una palabra de paso (password) y un directorio
personal asociado (la cuenta).
La informacin de los usuarios del sistema est incluida en los siguientes ar-
chivos:
/etc/passwd
/etc/shadow
/etc/group
/etc/gshadow
GNUFDL PID_00167543 52 Administracin local
Unas lneas del /etc/passwd podran ser:
juan:x:1000:1000:Juan Garcia,,,:/home/juan:/bin/bash
root:x:0:0:root:/root:/bin/bash
donde se indica (si aparecen :: seguidos, que el campo est vaco):
juan: identificador de usuario en el sistema.
x: palabra de paso del usuario codificada, si hay una "x" es que se encuentra
en el fichero /etc/shadow.
1000: cdigo del usuario; lo usa el sistema como cdigo de identidad del
usuario.
1000: cdigo del grupo principal al que pertenece; la informacin del
grupo se encuentra en /etc/group.
Juan Garca: comentario; suele colocarse el nombre completo del usuario,
o algn comentario para identificar el objetivo de la cuenta.
/home/juan: directorio personal asociado a su cuenta.
/bin/bash: shell interactivo que utilizar el usuario al interactuar con el
sistema, en modo texto, o por shell grfico. En este caso, el shell Bash de
GNU, que es el utilizado por defecto. El fichero /etc/passwd sola contener
las palabras de paso de los usuarios de forma encriptada, pero el problema
estaba en que cualquier usuario poda ver el fichero, y en su momento
se disearon cracks que intentaban encontrar en forma bruta la palabra
de paso, mediante la palabra de paso encriptada como punto de partida
(palabra codificada con el sistema crypt).
Para evitar esto, hoy en da ya no se colocan las palabras de paso en este ar-
chivo, slo una "x" que indica que se encuentran en otro fichero, que es slo
de lectura para el usuario root, /etc/shadow, cuyo contenido podra ser algo pa-
recido a lo siguiente:
juan:a1gNcs82ICst8CjVJS7ZFCVnu0N2pBcn/:12208:0:99999:7:::
donde se encuentra el identificador del usuario junto con la palabra de paso
encriptada. Adems, aparecen (como campos separados por ":" con informa-
cin respecto a la contrasea:
Das desde el 1 de enero de 1970 en que la palabra de paso se cambi por
ltima vez.
GNUFDL PID_00167543 53 Administracin local
Das que faltan para que se cambie (0 no hay que cambiarla).
Das despus en que hay que cambiarla (o sea, plazo de cambio).
Das en que el usuario ser avisado antes de que le expire.
Das una vez expirado, en que se producir la deshabilitacin de la cuenta.
Das desde el 1 de enero de 1970 en que la cuenta est deshabilitada.
Y un campo reservado.
Adems, las claves de encriptacin pueden ser ms difciles, ya que ahora pue-
de utilizarse un sistema denominado md5 (suele aparecer como opcin a la
hora de instalar el sistema) para proteger las palabras de paso de los usuarios.
Veremos ms detalles al respecto en la unidad dedicada a la seguridad.
En /etc/group est la informacin de los grupos de usuarios:
jose:x:1000:
donde tenemos:
nombre-grupo:contrasea-grupo:identificador-del-grupo:lista-usuarios
La lista de usuarios del grupo puede estar presente o no, pues la informacin
ya est en /etc/passwd; no suele ponerse en /etc/group. Si se pone, suele aparecer
como una lista de usuarios separada por comas. Los grupos tambin pueden
poseer una contrasea asociada (aunque no suele ser tan comn), como en
el caso de los de usuario, en que tambin existe un fichero de tipo shadow:
/etc/gshadow.
Otros ficheros interesantes son los del directorio /etc/skel, donde se hallan los
ficheros que se incluyen en cada cuenta de usuario al crearla. Recordad que,
como vimos con los shell interactivos, podamos tener unos scripts de confi-
guracin que se ejecutaban al entrar o salir de la cuenta. En el directorio skel se
guardan los "esqueletos" que se copian en cada usuario al crearlo. Suele ser res-
ponsabilidad del administrador crear unos ficheros adecuados para los usua-
rios, poniendo los path necesarios de ejecucin, inicializacin de variables de
sistema, variables que se necesiten para el software, etc.
A continuacin, vamos a ver una serie de comandos tiles para esta adminis-
tracin de usuarios (mencionamos su funcionalidad y en el taller haremos al-
gunas pruebas):
useradd: aadir un usuario al sistema.
GNUFDL PID_00167543 54 Administracin local
userdel: borrar un usuario del sistema.
usermod: modificar un usuario del sistema.
groupadd, groupdel, groupmod: lo mismo para grupos.
newusers, chpasswd: pueden ser de utilidad en grandes instalaciones con
muchos usuarios, ya que permiten crear varias cuentas desde la informa-
cin introducida en un fichero (newusers) o bien cambiar las contraseas
a un gran nmero de usuarios (chpasswd).
chsh: cambiar el shell de login del usuario.
chfn: cambiar la informacin del usuario, la presente en el comentario del
fichero /etc/passwd.
passwd: cambiar la contrasea de un usuario. Puede ejecutarse como usua-
rio, y entonces pide la contrasea antigua y la nueva. En el caso de hacerlo,
el root tiene que especificar el usuario al que va a cambiar la contrasea
(si no, estara cambiando la suya) y no necesita la contrasea antigua. Es
quizs el comando ms usado por el root, de cara a los usuarios cuando se
les olvida la contrasea antigua.
su: una especie de cambio de identidad. Lo utilizan tanto usuarios como el
root para cambiar el usuario actual. En el caso del administrador, es bastan-
te utilizado para testear que la cuenta del usuario funcione correctamen-
te. Hay diferentes variantes: su (sin parmetros, sirve para pasar a usuario
root, previa identificacin, permitiendo, cuando estamos en una cuenta de
usuario, pasar a root para hacer alguna tarea). La sentencia su iduser cambia
el usuario a iduser, pero dejando el entorno como est, o sea, en el mismo
directorio. El mandato su - iduser hace una sustitucin total, como si el
segundo usuario hubiese entrado en el sistema haciendo un login.
Respecto a la administracin de usuarios y grupos, lo que hemos comentado
aqu hace referencia a la administracin local de una sola mquina. En siste-
mas con mltiples mquinas que comparten los usuarios suele utilizarse otro
sistema de gestin de la informacin de los usuarios. Estos sistemas, denomi-
nados genricamente sistemas de informacin de red, como NIS, NIS+ o LDAP,
utilizan bases de datos para almacenar la informacin de los usuarios y grupos,
de manera que se utilizan mquinas servidoras, donde se almacena la base
de datos, y otras mquinas clientes, donde se consulta esta informacin. Esto
permite tener una sola copia de los datos de los usuarios (o varias sincroniza-
das), y que stos puedan entrar en cualquier mquina disponible del conjunto
administrado con estos sistemas. Adems, estos sistemas incorporan concep-
tos adicionales de jerarquas, y/o dominios/zonas de mquinas y recursos, que
GNUFDL PID_00167543 55 Administracin local
permiten representar adecuadamente los recursos y su uso en organizaciones
con diferentes estructuras de organizacin interna de su personal y sus seccio-
nes internas.
Podemos comprobar si estamos en un entorno de tipo NIS si en las lneas
passwd y group del archivo de configuracin /etc/nsswitch.conf aparece files en
primer trmino, si estamos trabajando con los ficheros locales, o bien nis o
nisplus segn el sistema con que estemos trabajando. En general, para el usua-
rio simple no supone ninguna modificacin, ya que la gestin de las mqui-
nas le es transparente, y ms si se combina con ficheros compartidos por NFS
que permite disponer de su cuenta sin importar con qu mquina trabaje. La
mayor parte de los comandos anteriores pueden seguir usndose sin proble-
ma bajo NIS o NIS+; son equivalentes a excepcin del cambio de contrasea,
que en lugar de passwd se suele hacer con yppasswd (NIS) o nispasswd (NIS+),
aunque suele ser habitual que el administrador los renombre (por un enlace)
a passwd, con lo cual los usuarios no notarn la diferencia.
Veremos este y otros modos de configuracin en las unidades de administra-
cin de red.
GNUFDL PID_00167543 56 Administracin local
7. Servidores de impresin
El sistema de impresin de GNU/Linux [Gt] [Smi02] est heredado de la va-
riante BSD de UNIX. Este sistema se denominaba LPD (Line Printer Daemon).
Es un sistema de impresin muy potente, ya que integra capacidades para ges-
tionar tanto impresoras locales como de red y ofrece dentro del mismo tanto
el cliente como el servidor de impresin. De forma semejante tambin UNIX
ha dispuesto generalmente del System V Line Printer (o LPR), que era el siste-
ma comn en las otras variantes de UNIX. GNU/Linux ha integrado original-
mente ambos sistemas, bien usando principalmente LPD y emulando LPR o
dependiendo de la distribucin integrando por defecto uno u otro.
LPD es un sistema bastante antiguo, puesto que se remonta a los orgenes de
la rama BSD de UNIX (mediados de los ochenta). Por lo tanto, a LPD le suele
faltar soporte para los dispositivos modernos, ya que en origen el sistema no
estuvo pensado para el tipo de impresoras actuales. Tampoco fue concebido
como un sistema basado en controladores de dispositivo, pues se producan
slo impresoras serie o paralelas de escritura de caracteres texto.
Para la situacin actual, el sistema LPD se combina con otro software comn,
como el sistema Ghostscript, que ofrece salida de tipo postscript para un rango
muy amplio de impresoras para las que posee controladores. Adems, se suele
combinar con algn software de filtraje, que segn el tipo de documento a
imprimir, selecciona filtros adecuados para adaptar la impresin de documen-
tos o formatos binarios, al sistema de impresin de destino. As, normalmente
el proceso que se sigue es (bsicamente):
1) El trabajo es iniciado por un comando del sistema LPD.
2) El sistema de filtro identifica qu tipo de trabajo (o fichero) es utilizado y
convierte el trabajo a un fichero postscript de salida, que es el que se enva a la
impresora. En GNU/Linux y UNIX, la mayora de aplicaciones suponen que
la salida ser hacia una impresora postscript, y muchas de ellas generan salida
postscript directamente, y por esta razn se necesita el siguiente paso.
3) Ghostscript se encarga de interpretar el fichero postscript recibido, y segn
el controlador de la impresora a la que ha sido enviado el trabajo, realiza la
conversin al formato propio de la impresora. Si es de tipo postscript, la impre-
sin es directa; si no, habr que realizar la traduccin. El trabajo se manda a
la cola de impresin.
Como hemos dicho, adems del sistema de impresin LPD (con origen en
los BSD UNIX), tambin existe el denominado sistema SystemV (de origen
en la otra rama UNIX de SystemV) o LPR. Por compatibilidad, actualmente
Potencia y flexibilidad
Los sistemas UNIX disponen,
quizs, de los sistemas de im-
presin ms potentes y com-
plejos, que aportan una gran
flexibilidad a los entornos de
impresin.
GNUFDL PID_00167543 57 Administracin local
la mayor parte de UNIX integra ambos, de manera que o bien uno u otro es
el principal, y el otro se simula sobre el principal. En el caso de GNU/Linux,
pasa algo parecido; segn la instalacin que hagamos podemos tener slo los
comandos LPD de sistema de impresin, pero tambin ser habitual disponer
de los comandos SystemV. Una forma sencilla de identificar los dos sistemas
(BSD o SystemV) es con el comando principal de impresin (el que enva los
trabajos al sistema), en BSD es lpr, y en SystemV es lp.
Este era el panorama inicial de los sistemas de impresin de GNU/Linux, pero
en los ltimos aos han surgido ms sistemas, que permiten una mayor flexi-
bilidad y una mayor disposicin de controladores para las impresoras. Los dos
principales sistemas son CUPS y, en menor grado, LPRng (de hecho, ya obsole-
to, se utiliz en algunas versiones de Fedora, y ya no lo comentaremos en esta
revisin del material; puede encontrase en ediciones anteriores). ltimamente
es CUPS el estndar de facto para GNU/Linux, aunque los otros sistemas han
de ser soportados por compatibilidad con sistemas UNIX existentes.
Los dos (tanto CUPS como LPRng) son una especie de sistema de ms alto
nivel, pero que no se diferencian en mucho de cara al usuario respecto a los
BSD y SystemV estndar. Por ejemplo, se utilizan los mismos comandos clien-
tes (o compatibles en opciones) para imprimir. Para el administrador s que
supondr diferencias, ya que los sistemas de configuracin son diferentes. En
cierto modo, podemos considerar a LPRng y CUPS como nuevas arquitecturas
de sistemas de impresin, que son compatibles de cara al usuario con los co-
mandos antiguos.
En las distribuciones GNU/Linux actuales podemos encontrarnos con los di-
ferentes sistemas de impresin. Si la distribucin es antigua, puede que lleve
incorporado tan slo el sistema BSD LPD. En las actuales, tanto Debian como
Fedora/Red Hat utilizan CUPS. En algunas versiones de Red Hat exista una
herramienta, Print switch, que permitia cambiar el sistema, conmutar de siste-
ma de impresin, aunque ltimamente slo est disponible CUPS. En Debian
pueden instalarse ambos sistemas, pero son exclusivos, slo uno de ellos pue-
de gestionar la impresin.
En el caso de Fedora, el sistema de impresin por defecto es CUPS (desapare-
ciendo LPRng en Fedora Core 4), y la herramienta Print switch ya no existe por
no ser necesaria. Se utiliza system-config-printer para la configuracin de dis-
positivos. Debian, por defecto, utilizaba BSD LPD, pero ya es comn instalar
CUPS (y es la opcin por defecto en nuevas versiones), y tambin puede utili-
zar LPRng. Adems, cabe recordar que tambin tenamos la posibilidad (vista
en la unidad de migracin) de interaccionar con sistemas Windows mediante
protocolos Samba, que permitan compartir las impresoras y el acceso a stas.
Respecto a cada uno de los sistemas [Gt]:
GNUFDL PID_00167543 58 Administracin local
BSD LPD: es uno de los estndares de UNIX, y algunas aplicaciones asu-
men que tendrn los comandos y el sistema de impresin disponibles, por
lo cual, tanto LPRng como CUPS emulan el funcionamiento y los coman-
dos de BDS LPD. El sistema LPD es utilizable, pero no muy configurable,
sobre todo en el control de acceso; por eso las distribuciones se han mo-
vido a los otros sistemas ms modernos.
LPRng: se dise para ser un reemplazo del BSD; por lo tanto, la mayor
parte de la configuracin es parecida y slo difiere en algunos ficheros de
configuracin.
CUPS: se trata de una desviacin mayor del BSD original, y la configura-
cin es propia. Se proporciona informacin a las aplicaciones sobre las im-
presoras disponibles (tambin en LPRng). En CUPS, tanto el cliente como
el servidor tienen que disponer de software CUPS.
Los dos sistemas tienen emulacin de los comandos de impresin de SystemV.
Para la impresin en GNU/Linux, hay que tener en cuenta varios aspectos:
Sistema de impresin que se utiliza: BSD, CUPS, o LPRng (hoy prctica-
mente obsoleto).
Dispositivo de impresin (impresora): puede disponer de conexin local
a una mquina o estar colocada en red. Las impresoras actuales pueden
estar colocadas por conexiones locales a una mquina mediante interfa-
ces serie, paralelo, USB, etc., o disponibles simplemente en red, como una
mquina ms, o con protocolos especiales propietarios. Las conectadas a
red pueden actuar ellas mismas de servidor de impresin (por ejemplo,
muchas lser son servidores BSD LPD), o bien pueden colgarse de una m-
quina que acte de servidor de impresin para ellas.
Protocolos de comunicacin utilizados con la impresora o el sistema de
impresin: ya sea TCP/IP directo (por ejemplo, una HP con LPD), o bien
otros de ms alto nivel sobre TCP/IP, como IPP (CUPS), JetDirect (algunas
impresoras HP), etc. Este parmetro es importante, ya que lo debemos co-
nocer para instalar la impresora en un sistema.
Sistema de filtros usado: cada sistema de impresin soporta uno o varios.
Y los controladores de las impresoras: en GNU/Linux hay bastantes ti-
pos diferentes; podemos mencionar, por ejemplo, controladores de CUPS,
propios o de los fabricantes (por ejemplo, HP y Epson los proporcionan);
Gimp, el programa de retoque de imgenes, tambin posee controlado-
res optimizados para la impresin de imgenes; Foomatic, un sistema de
gestin de controladores que funciona con la mayora de sistemas (CUPS,
Nota
Podis encontrar informacin
de las impresoras ms adecua-
das y de los controladores en:
http://www.openprinting.org/
printer_list.cgi
GNUFDL PID_00167543 59 Administracin local
LPD, LPRng y otros); los controladores de Ghostscript, etc. En casi todas
las impresoras tienen uno o ms controladores de estos conjuntos.
Respecto a la parte cliente del sistema, los comandos bsicos son iguales para
los diferentes sistemas. Estos son los comandos del sistema BSD (cada sistema
soporta emulacin de estos comandos):
lpr: enva un trabajo a la cola de la impresora por defecto (o a la que se
selecciona); el daemon de impresin (lpd) se encarga de enviarlo a la cola
correspondiente y asigna un nmero de trabajo, que ser usado con los
otros comandos. La impresora, por defecto, estara indicada por una va-
riable de sistema PRINTER, o se utilizar la primera que exista definida. En
algunos sistemas se utiliza la cola lp (como nombre por defecto).
lpr -Pepson datos.txt
Esta instruccin mandara el fichero datos.txt a la cola de impresin asociada a una im-
presora que hemos definido como "epson".
lpq: nos permite examinar los trabajos existentes en la cola.
# lpq -P epson
Rank Owner Job Files Total Size
1st juan 15 datos.txt 74578 bytes
2nd marta 16 fpppp.F 12394 bytes
Este comando nos muestra los trabajos en cola, con el orden y tamaos de
stos. Los ficheros pueden aparecer con nombres diferentes, ya que depende
de si los hemos enviado con lpr o con otra aplicacin que puede cambiar los
trabajos de nombre al enviarlos, o si han tenido que pasar por algn filtro al
convertirlos.
lprm: elimina trabajos de la cola. Podemos especificar un nmero de tra-
bajo, o un usuario para cancelar los trabajos.
lprm -Pepson 15
Eliminar el trabajo con id 15 de la cola.
Respecto a la parte administrativa (en BSD), el comando principal sera lpc.
Este comando permite activar y desactivar colas, mover trabajos en el orden
de las colas y activar o desactivar las impresoras (se pueden recibir trabajos en
las colas, pero no se envan a las impresoras).
Cabe mencionar asimismo que, para el caso de SystemV, los comandos de im-
presin suelen tambin estar disponibles, simulados sobre los de BSD. En el
caso cliente, los comandos son lp, lpstat, cancel y, para temas de administra-
cin, lpadmin, accept, reject, lpmove, enable, disable, lpshut.
GNUFDL PID_00167543 60 Administracin local
En las siguientes secciones veremos cmo hay que configurar un servidor de
impresin para dos de los sistemas principales. Estos servidores sirven tanto
para la impresin local como para atender las impresiones de clientes de red
(si estn habilitados).
7.1. BSD LPD
En el caso del servidor BSD LPD, hay dos ficheros principales para examinar:
por una parte, la definicin de las impresoras en /etc/printcap y, por otra, los
permisos de acceso por red en /etc/hosts.lpd.
Respecto a los permisos, por defecto BSD LPD slo deja acceso local a la im-
presora, y por lo tanto, hay que habilitarlo expresamente en /etc/hosts.lpd.
El fichero podra ser:
#fichero hosts.lpd
second
first.the.com
192.168.1.7
+@groupnis
-three.the.com
Indicara que est permitida la impresin a una serie de mquinas, listadas
bien por su nombre DNS o por la direccin IP. Se pueden aadir grupos de
mquinas que pertenezcan a un servidor NIS (como en el ejemplo groupnis) o
bien no permitir acceso a determinadas mquinas indicndolo con un guin
"-".
En cuanto a la configuracin del servidor en /etc/printcap, se definen entradas,
donde cada una representa una cola del sistema de impresin a la que pueden
ir a parar los trabajos. La cola puede estar tanto asociada a un dispositivo local
como a un servidor remoto, ya sea ste una impresora u otro servidor.
En cada entrada, pueden existir las opciones:
lp=: nos indica a qu dispositivo est conectada la impresora, por ejem-
plo lp = /dev/lp0 indicara el primer puerto paralelo. Si la impresora es de
tipo LPD, por ejemplo, una impresora de red que acepta el protocolo LPD
(como una HP), entonces podemos dejar el campo vaco y rellenar los si-
guientes.
rm=: direccin con nombre o IP de la mquina remota que dispone de la
cola de impresin. Si se trata de una impresora de red, ser la direccin
de sta.
rp=: nombre de la cola remota, en la mquina indica antes con rm.
GNUFDL PID_00167543 61 Administracin local
# Entrada de una impresora local
lp|epson|Epson C62:\
:lp=/dev/lp1:sd=/var/spool/lpd/epson:\
:sh:pw#80:pl#72:px#1440:mx#0:\
:if = /etc/magicfilter/StylusColor@720dpi-filter:\filtro
:af = /var/log/lp-acct:lf = /var/log/lp-errs:
# Entrada de impresora remota
hpremota|hpr|hp remota del departamento|:\
:lp = :\
:rm = servidor:rp = colahp:\
:lf = /var/adm/lpd_rem_errs:\fichero de log.
:sd = /var/spool/lpd/hpremota:spool local asociado
7.2. CUPS
CUPS es una nueva arquitectura para el sistema de impresin bastante dife-
rente; tiene una capa de compatibilidad hacia BSD LPD, que le permite inte-
raccionar con servidores de este tipo. Soporta tambin un nuevo protocolo de
impresin llamado IPP (basado en http), pero slo disponible cuando cliente
y servidor son de tipo CUPS. Adems, utiliza un tipo de drivers denominados
PPD que identifican las capacidades de la impresora. CUPS ya trae algunos
de estos controladores, y algunos fabricantes tambin los ofrecen (como HP
y Epson).
CUPS tiene un sistema de administracin completamente diferente, basado
en diferentes ficheros: /etc/cups/cupsd.conf centraliza la configuracin del siste-
ma de impresin, /etc/cups/printers.conf controla la definicin de impresoras y
/etc/cups/classes.conf los grupos de stas.
En /etc/cups/cupsd.conf configuramos el sistema segn una serie de secciones
del archivo y las directivas de las diferentes acciones. El archivo es bastante
grande; destacaremos algunas directivas importantes:
Allow: nos permite especificar qu mquinas podrn acceder al servidor,
ya sean grupos o mquinas individuales, o segmentos IP de red.
AuthClass: permite indicar si se pedir que se autentifiquen los usuarios
clientes o no.
BrowseXXX: hay una serie de directivas relacionadas con la posibilidad de
examinar la red para encontrar impresoras servidas. Esta posibilidad est
activada por defecto (browsing en on); por lo tanto, encontraremos dispo-
nibles todas las impresoras disponibles en la red. Podemos desactivarla,
para solamente observar las impresoras que hayamos definido. Otra op-
cin importante es BrowseAllow, que dice a quin le damos la posibilidad
de preguntar por nuestras impresoras. Por defecto est habilitada, por lo
que cualquiera puede ver nuestra impresora desde nuestra red.
Cabe sealar que CUPS, en principio, est pensado para que tanto clientes
como el servidor funcionen bajo el mismo sistema; si los clientes utilizan LPD,
hay que instalar un daemon de compatibilidad llamado cups-lpd (en paquetes
GNUFDL PID_00167543 62 Administracin local
como cupsys-bsd). En este caso, CUPS acepta trabajos que provengan de un
sistema LPD, pero no controla los accesos (cupsd.conf slo sirve para el propio
sistema CUPS), por lo que habr que implementar alguna estrategia de control
de acceso, tipo firewall.
Para la administracin desde lnea de comandos, CUPS es un tanto peculiar, ya
que acepta tanto comandos LPD como SystemV en los clientes, y la adminis-
tracin suele hacerse con el comando lpadmin de SystemV. En cuanto a herra-
mientas grficas, disponemos de gnome-cups-manager, gtklp, utilidades como
system-config-printers o la interfaz por web que trae el mismo sistema CUPS,
accesible en http://localhost:631.
Interfaz para la administracin del sistema CUPS.
Respecto a los paquetes software relacionados con CUPS, en una Debian en-
contramos (entre otros):
cupsys - Common UNIX Printing System(tm) - server
cupsys-bsd - Common UNIX Printing System(tm) - BSD commands
cupsys-client - Common UNIX Printing System(tm) - client programs (SysV)
cupsys-driver-gimpprint - Gimp-Print printer drivers for CUPS
cupsys-pt - Tool for viewing/managing print jobs under CUPS
foomatic-db - linuxprinting.org printer support - database
foomatic-db-engine - linuxprinting.org printer support - programs
foomatic-db-gimp-print - linuxprinting - db Gimp-Print printer drivers
foomatic-db-hpijs - linuxprinting - db HPIJS printers
foomatic-filters - linuxprinting.org printer support - filters
foomatic-filters-ppds - linuxprinting - prebuilt PPD files
foomatic-gui - GNOME interface for Foomatic printer filter system
gimpprint-doc - Users' Guide for GIMP-Print and CUPS
gimpprint-locales - Locale data files for gimp-print
GNUFDL PID_00167543 63 Administracin local
gnome-cups-manager - CUPS printer admin tool for GNOME
gtklp - Frontend for cups written in gtk
GNUFDL PID_00167543 64 Administracin local
8. Discos y gestin filesystems
Respecto a las unidades de almacenamiento, como hemos visto, poseen una
serie de dispositivos asociados, dependiendo del tipo de interfaz:
IDE: dispositivos como:
/dev/hda disco master, primer conector IDE;
/dev/hdb disco slave, del primer conector;
/dev/hdc master, segundo conector;
/dev/hdd slave, segundo conector.
SCSI: dispositivos /dev/sda, /dev/sdb... siguiendo la numeracin que tengan
los perifricos en el Bus SCSI. Los discos SATA e IDE del mismo sistema
tambin suelen seguir esta nomenclatura, debido a la capa de emulacin
scsi presente en el kernel para estos dispositivos.
Disquetes: dispositivos /dev/fdx, con x nmero de disquetera (comenzan-
do en 0). Hay diferentes dispositivos, dependiendo de la capacidad del dis-
quete, por ejemplo, el disquete de 1.44 MB en la disquetera A sera /dev/
fd0H1440.
Respecto a las particiones presentes, el nmero que sigue al dispositivo repre-
senta el ndice de la particin dentro del disco, y es tratado como un disposi-
tivo independiente: /dev/hda1 primera particin del primer disco IDE, o /dev/
sdc2, segunda particin del tercer dispositivo SCSI. En el caso de los discos IDE,
stos permiten cuatro particiones denominadas primarias y un mayor nmero
en extendidas (o lgicas). As, si /dev/hdan, n ser inferior o igual a 4, se trata-
r de una particin primaria; si no, se tratar de una particin lgica con n
superior o igual a 5.
Con los discos y los sistemas de ficheros (filesystems) asociados, los procesos
bsicos que podemos realizar se engloban en:
Creacin de particiones, o modificacin de stas. Mediante comandos
como fdisk o parecidos (cfdisk, sfdisk).
Formateo de disquetes: en caso de disquetes, pueden utilizarse diferentes
herramientas: fdformat (formateo de bajo nivel), superformat (formateo a
diferentes capacidades en formato msdos), mformat (formateo especfico
creando filesystem msdos estndar).
Creacin de filesystems Linux, en particiones, mediante el comando
mkfs. Hay versiones especficas para crear filesystems diferentes: mkfs.ext2,
mkfs.ext3, y tambin filesystems no Linux: mkfs.ntfs, mkfs.vfat, mkfs.msdos,
GNUFDL PID_00167543 65 Administracin local
mkfs.minix u otros. Para CD-ROM como mkisofs, a la hora de crear los
iso9660 (con extensiones joliet o rock ridge), que puedan ser una imagen
de lo que despus se acabar grabando sobre un CD/DVD, y junto con
comandos como cdrecord (o wodim) permitir finalmente crear/grabar los
CD/DVD. Otro caso particular es la orden mkswap, que permite crear reas
de swap en particiones que, ms tarde, se pueden activar o desactivar con
swapon y swapoff.
Montaje de los filesystems: comandos mount, umount.
Verificacin de estado: la principal herramienta de verificacin de filesys-
tems Linux es el comando fsck. Este comando comprueba las diferentes
reas del sistema de ficheros para verificar la consistencia y comprobar po-
sibles errores y, en los casos en que sea posible, corregirlos. El propio sis-
tema activa automticamente el comando fsck en el arranque cuando de-
tecta situaciones donde se ha producido una parada incorrecta (un apagn
elctrico o accidental de la mquina), o bien pasado un cierto nmero de
veces en que el sistema se ha arrancado. Esta comprobacin suele compor-
tar cierto tiempo, normalmente algunos minutos (dependiendo del tama-
o de datos). Tambin existen versiones particulares para otros sistemas de
ficheros: fsck.ext2, fsck.ext3, fsck.vfat, fsck.msdos, etc. El proceso del fsck se
realiza con el dispositivo en modo de "slo lectura" con particiones mon-
tadas. Se recomienda desmontar las particiones para realizar el proceso si
se detectan errores y hay que aplicar correcciones. En determinados casos,
por ejemplo, si el sistema por comprobar es la raz / y se detecta algn error
crtico, se nos pedir que cambiemos de modo de ejecucin del sistema
(runlevel) hacia modo slo root y hagamos all la verificacin. En general,
si hay que hacer la verificacin, se recomienda hacer stas en modo supe-
rusuario (podemos conmutar de modo de runlevel con los comandos init
o telinit).
Procesos de backup: ya sean del disco, bloques de disco, particiones, fi-
lesystems, ficheros... Hay varias herramientas tiles para ello: tar nos per-
mite copiar ficheros hacia un fichero o a unidades de cinta; cpio, de forma
parecida, puede realizar backups de ficheros hacia un fichero; tanto cpio
como tar mantienen informacin de permisos y propietarios de los fiche-
ros; dd permite copias, ya sea de ficheros, dispositivos, particiones o dis-
cos a fichero; es un poco complejo y hay que conocer informacin de ba-
jo nivel, tipo, tamaos, nmero de bloques y/o sectores... Puede enviarse
tambin a cintas.
Utilidades diversas: ciertos comandos individuales, algunos de ellos uti-
lizados por los procesos anteriores para hacer tratamientos distintos: bad-
blocks para encontrar bloques defectuosos en el dispositivo; dumpe2fs para
obtener informacin sobre filesystems Linux; tune2fs permite hacer proce-
GNUFDL PID_00167543 66 Administracin local
sos de tunning de filesystems Linux de tipo ext2, ext3 o ext4 y ajustar dife-
rentes parmetros de comportamiento.
A continuacin, destacamos dos temas relacionados con la concepcin del
espacio de almacenamiento, que son utilizados en varios ambientes para la
creacin base del espacio de almacenamiento: el uso de RAID software y la
creacin de volmenes dinmicos.
8.1. RAID software
La configuracin de discos mediante esquemas RAID es uno de los esquemas
de almacenamiento de alta disponibilidad ms usados actualmente, cuando
disponemos de varios discos para implementar nuestros sistemas de ficheros.
El enfoque principal de las diferentes tcnicas existentes est en la tolerancia a
fallos que se proporciona desde un nivel de dispositivo, el conjunto de discos, a
diferentes tipos posibles de fallos tanto fsicos como de sistema, para evitar las
prdidas de datos o los fallos de coherencia en el sistema. As tambin algunos
esquemas que estn diseados para aumentar las prestaciones del sistema de
discos, ampliando el ancho de banda de estos disponible hacia el sistema y
las aplicaciones.
Tpicamente, hoy en da RAID en hardware (mediante tarjetas controladoras
hardware), se puede encontrar en servidores empresariales (cuando comien-
zan a tener cierta presencia en equipos de escritorio, con placas base con ca-
pacidades para algunos RAID), donde se hallan disponibles diferentes solucio-
nes hardware que cumplen estos requerimientos de fiabilidad y de maximizar
prestaciones. En particular, para ambientes con aplicaciones intensivas en dis-
co, como streaming de audio y/o vdeo, o grandes bases de datos.
Conviene destacar un error comn en el tema RAID, que proporciona ciertas
capacidades de tolerancia a fallos, pero no evita la realizacin de backups de los
datos disponibles de forma peridica. Si se supera la capacidad de tolerancia a
fallos, tambin se pierden datos (en algunos casos, completamente).
En general, este hardware se encuentra en forma de tarjetas (o integrado en la
mquina) de tipo controladora RAID de discos, que implementan la gestin
de uno o ms niveles (de la especificacin RAID), sobre un conjunto de discos
(desde mnimo dos discos) administrado por esta controladora.
En RAID se distingue una serie de niveles (o configuraciones posibles) que
pueden proporcionarse (cada fabricante de hardware, o el software concreto,
puede soportar uno o varios de estos niveles). Cada nivel de RAID se aplica so-
bre un conjunto de discos, a veces denominado array RAID (o matriz de discos
RAID), los cuales suelen ser (idealmente) discos iguales en tamao (o iguales a
tamaos por grupos). Por ejemplo, para realizar un un caso de array podran
utilizarse cuatro discos de 500GB, o en otro caso, dos grupos (a 500GB) de
GNUFDL PID_00167543 67 Administracin local
dos discos, uno de 150GB y otro de 350GB. En algunos casos de controladores
hardware, no se permite que los discos (o en grupos) sean de diferentes tama-
os; en otros pueden utilizarse, pero el array queda definido por el tamao del
disco (o grupo) ms pequeo.
Describimos conceptos bsicos de algunos niveles en la siguiente lista (tened
en cuenta que, en algunos casos, la terminologa no es plenamente aceptada,
y puede depender de cada fabricante):
RAID 0: se distribuyen los datos equitativamente entre uno o ms discos
sin informacin de paridad o redundancia; no se est ofreciendo toleran-
cia al fallo. Slo se estn repartiendo datos; si el disco falla fsicamente la
informacin se pierde y debemos recuperarla desde copias de seguridad.
Lo que s aumenta es el rendimiento, dependiendo de la implementacin
de RAID0, ya que las operaciones de lectura y escritura se dividirn entre
los diferentes discos.
RAID 1: se crea una copia exacta (mirror) en un conjunto de dos o ms
discos (denominado array RAID). En este caso, resulta til para el rendi-
miento de lectura (que puede llegar a incrementarse de forma lineal con
el nmero de discos), y en especial por disponer de tolerancia al fallo de
uno de los discos, ya que (por ejemplo, con dos discos) se dispone de la
misma informacin. RAID 1 suele ser adecuado para alta disponibilidad,
como entornos de 24x7, donde debemos disponer crticamente de los re-
cursos. Esta configuracin nos permite tambin (si el hardware lo soporta)
el intercambio en caliente (hot-swap) de los discos. Si detectamos el fallo
GNUFDL PID_00167543 68 Administracin local
en uno de ellos, podemos sustituirlo, sin apagar el sistema, por un disco
nuevo.
RAID 2: en los anteriores se dividen los datos en bloques a repartir. Aqu
se divide en bits y se utilizan cdigos de redundancia para la correccin de
datos. No es prcticamente utilizado, a pesar de las altas prestaciones que
alcanzara, ya que necesita idealmente un nmero muy alto de discos, uno
por bit de datos y varios para el clculo de la redundancia (por ejemplo,
en un sistema de 32 bits, llegara a usar 39 discos).
RAID 3: utiliza divisin en bytes con un disco dedicado a la paridad de los
bloques. Tampoco es muy utilizada, ya que segn el tamao de los datos y
posiciones no permite accesos simultneos. RAID 4 es semejante, aunque
divide a nivel de bloques en lugar de bytes, lo que permite que s se puedan
servir peticiones simultneas cuando se solicita un nico bloque.
RAID 5: Se usa divisin a nivel de bloques, distribuyendo la paridad entre
los discos. Tiene amplio uso, debido al esquema sencillo de paridad, y a que
este clculo se implementa de forma sencilla por hardware, con buenas
prestaciones.
GNUFDL PID_00167543 69 Administracin local
RAID 0+1 (o 01): un mirror de divisiones es un nivel de RAID anidado. Se
implementan, por ejemplo, dos grupos de RAID 0, los cuales son usados en
RAID 1 para crear mirror entre ellos. Una ventaja es que, en caso de fallo,
puede reconstruirse el nivel de RAID 0 usado gracias a la otra copia, pero
si quieren aadirse discos hay que aadirlos a todos los grupos de RAID
0 de igual forma.
RAID 10 (1+0): divisin de mirrors, grupos de RAID 1 bajo RAID 0. As, en
cada grupo de RAID 1 puede llegar a fallar un disco sin que se pierdan da-
tos. Claro que esto obliga a reemplazarlos, ya que si no el disco que quede
en el grupo se convierte en posible punto de fallo de todo el sistema. Es
una configuracin que suele usarse para base de datos de altas prestaciones
(por la tolerancia a fallos y la velocidad, al no estar basada en clculos de
paridad).
GNUFDL PID_00167543 70 Administracin local
Algunas consideraciones a tener en cuenta sobre RAID en general:
RAID mejora el uptime del sistema, ya que algunos de los niveles permiten
que discos fallen y el sistema siga siendo consistente, y dependiendo del
hardware, incluso puede cambiarse el hardware problemtico en caliente
sin necesidad de parar el sistema, cuestin especialmente importante en
sistema crticos.
RAID puede mejorar el rendimiento de las aplicaciones; en especial, en los
sistemas con implementaciones de mirror es posible que la divisin de da-
tos permita que las operaciones lineales de lectura se incrementen signifi-
cativamente, debido a la posibilidad de que los discos ofrezcan, de modo
simultneo, partes de esta lectura, aumentando la tasa de transferencia de
datos.
RAID no protege los datos; evidentemente, la destruccin por otros medios
(virus, mal funcionamiento general o desastres naturales) no est protegi-
da. Hemos de basarnos en esquemas de copias de seguridad. Tengamos en
cuenta que algunos esquemas protegen contra uno o dos fallos de discos
del array, pero si hay ms o dependiendo del esquema, directamente (caso
RAID 0) se perdern datos.
GNUFDL PID_00167543 71 Administracin local
No se simplifica la recuperacin de datos; si un disco pertenece a un array
RAID, tiene que intentar recuperarse en ese ambiente. Se necesita software
especfico o los controladores hardware para acceder a los datos.
Por el contrario, no suele mejorar aplicaciones tpicas de usuario sean de
escritorio debido a que estas aplicaciones tienen componentes altos de
acceso aleatorio a datos, o a conjuntos de datos pequeos; puede que no se
beneficien de lecturas lineales o de transferencias de datos sostenidas. En
estos ambientes, es posible que no se note apenas mejora de prestaciones.
Algunos esquemas aumentan de velocidad las operaciones de lectura, pero
por otra parte penalizan las de escritura (caso RAID 5 por el clculo de
paridad que hay que escribir). Si el uso es bsicamente de escritura, habr
que buscar qu esquemas no penalizan o consiguen el ratio de escritura
que necesitamos (algunos casos, como RAID 0,1, o algunas modalidades de
RAID 10 son equivalentes a escribir en un disco nico, o incluso aumentan
las prestaciones en este sentido).
No se facilita el traslado de informacin; sin RAID es bastante fcil trasladar
datos, simplemente moviendo el disco de un sistema a otro. En el caso de
RAID es casi imposible (a no ser que dispongamos del mismo hardware
controlador) mover un array de discos a otro sistema.
En el caso de GNU/Linux, se da soporte al hardware RAID mediante varios
mdulos de kernel, asociados a diferentes conjuntos de fabricantes o circuitos
base, chipsets, de estas controladoras RAID. Se permite as al sistema abstraerse
de los mecanismos hardware y hacerlos transparentes al sistema y al usuario
final. As, estos mdulos de kernel nos permiten el acceso a los detalles de estas
controladoras, y a su configuracin de parmetros de muy bajo nivel, que en
algunos casos (especialmente en servidores que soportan carga elevada de E/S),
pueden ser interesantes para procesos de tunning del sistema de discos que use
el servidor. Se busca maximizar las prestaciones del sistema.
La otra posibilidad que analizaremos aqu es la realizacin de estos procesos
mediante componentes software, en concreto el componente software RAID
de GNU/Linux.
GNU/Linux dispone en kernel del driver llamado Multiple Device (md), que
podemos considerar como el soporte a nivel kernel para RAID. Mediante este
driver podemos implementar niveles de RAID generalmente 0,1,4,5,6 y anida-
dos (por ejemplo, RAID 10) sobre diferentes dispositivos de bloque como dis-
cos IDE, SATA o SCSI. Tambin dispone del nivel linear, como nivel donde se
produce una combinacin lineal de los discos disponibles (donde no importa
que sean de diferentes tamaos), de manera que se escribe consecutivamente
en los discos.
GNUFDL PID_00167543 72 Administracin local
Para la utilizacin del RAID software en Linux, debemos disponer del soporte
RAID en el kernel, y en su caso los mdulos md activos (adems de algunos
drivers especficos segn el nivel, ved drivers disponibles asociados a RAID, por
ejemplo en Debian con modconf). El mtodo preferido para la implementacin
de arrays de discos RAID, mediante el software RAID ofrecido por Linux, es
mediante el proceso de instalacin del sistema inicial, o bien mediante la uti-
lidad mdadm. Esta utilidad nos permite crear los arrays y gestionarlos.
Webs recomendadas
Para consultar conceptos de software RAID, ved Linux RAID wiki:
https://raid.wiki.kernel.org/index.php/Linux_Raid
http://www.linuxfoundation.org/collaborate/workgroups/linux-raid
Ved tambin niveles RAID soportados:
https://raid.wiki.kernel.org/index.php/Introduction#The_RAID_levels
Observemos algunos casos prcticos. Supongamos unos discos SCSI /dev/sda,
/dev/sdb... en los cuales disponemos de varias particiones disponibles para im-
plementar RAID:
Creacin de un array linear:
# mdadm -create -verbose /dev/md0 -level=linear -raid-devices=2 /dev/sda1 /dev/sdb1
donde se genera un array linear a partir de las particiones primeras de /dev/sda y
/dev/sdb, creando el nuevo dispositivo /dev/md0, que ya puede ser usado como
nuevo disco (suponiendo que exista el punto de montaje /media/discoRAID):
# mkfs.ext2fs /dev/md0
# mount /dev/md0 /media/discoRAID
Para un RAID0 o RAID1 podemos cambiar simplemente el nivel (-level) a raid0
o raid1. Con mdadm detail /dev/md0 podremos comprobar los parmetros del
nuevo array creado.
Tambin podemos consultar la entrada mdstat en /proc para determinar los
arrays activos, as como sus parmetros. En especial, con los casos con mirror
(por ejemplo, en los niveles 1, 5...) podremos observar en su creacin la cons-
truccin inicial del array de las copias, en /proc/mdstat indicar el nivel de re-
construccin (y el tiempo aproximado de finalizacin).
mdadm dispone de muchas opciones que nos permiten examinar y gestionar
los diferentes arrays RAID software creados (podemos ver una descripcin y
ejemplos en man mdadm).
GNUFDL PID_00167543 73 Administracin local
Otra cuestin importante es que los arrays RAID por software no son autom-
ticamente reconocidos en arranque (como s pasa con el RAID hardware so-
portado), ya que de hecho dependen de la construccin con mdadm. Para que
la definicin de un array software sea persistente, hace falta registrarla en el
fichero de configuracin /etc/mdadm.conf (la ubicacin puede depender de la
distribucin). Un paso sencillo es crearlo automticamente a partir del resul-
tado de la orden.
mdadm -detail -scan (puede aadirse tambien --verbose)
Otra consideracin importante son las optimizaciones a que se pueden some-
ter los arrays RAID para mejorar su rendimiento, tanto por monitorizar su
comportamiento como por optimizar parmetros del sistema de ficheros, para
realizar un uso ms efectivo de los niveles RAID y sus caractersticas.
Pasaremos a detallar otro caso de configuracin RAID ms elaborado basado
en la elaboracin de un RAID 5.
Este nivel RAID (de como mnimo tres discos) presenta una configuracin dis-
tribuida de datos y pariedad en los discos que forman el array. Se presenta muy
buen rendimiento en lectura, pero disminuye la escritura (respecto a un nico
disco) ya que hay que calcular la pariedad y distribuirla entre los discos (en
casos RAID hardware, este caso de clculo de pariedad se accelera mediante
hardware). Otro dato a tener en cuenta es que la capacidad final obtenida es la
suma de N-1 discos, y esta configuracin es resistente a un fallo de disco pre-
sente en el array, el cual puede reemplazarse y volver a reconstruir el array. El
nivel no soporta dos fallos de disco (probabilidad que de hecho puede aumen-
tar si en el array RAID se integra un nmero elevado de discos), con lo cual,
como ya comentamos, disponer de RAID no nos inhibe del proceso de backup
de datos. Si quisiramos disponer de ms fiabilidad, podramos movernos a
RAID 6, que posee clculo con pariedad dual, a costa de bajar rendimiento, o
a configuraciones con RAID 10, que tienen un buen compromiso entre rendi-
miento y fiabilidad.
Realizaremos, en este caso, el proceso de construccin con cuatro discos SA-
TA de alta capacidad 1,5TB, obteniendo un almacenamiento final de 4,5TB
(aproximadamente). El array RAID es complementario al sistema existente; en
casos que tenga que incluir particiones de boot, el proceso es ms delicado (ved
las recomendaciones de la RAID software wiki, comentada anteriormente).
Utilizaremos cuatro discos SATA presentes en el sistema como /dev/sdb, sdc,
sdd, sde. El disco /dev/sda se supone que incluye el sistema y las particiones
de arranque, y no forma parte del RAID. Primero hemos de pasar por la inicia-
lizacion de los discos (este proceso borra cualquier contenido previo); defini-
remos una particin nica (en este caso, vamos a integrar todo el almacena-
miento disponible; en otros esquemas podran realizarse varias particiones),
creada con fdisk. Fundamentalmente, seleccionamos nueva particion prima-
Nota
La optimizacin de los arrays
RAID puede ser una fuente
importante de sintonizacin
del sistema. Examinad algu-
nas cuestiones en https://
raid.wiki.kernel.org/index.php/
Performance o en la propia p-
gina man de mdadm.
GNUFDL PID_00167543 74 Administracin local
ria, requisitos por defecto y cambiamos el tipo de particin a "Linux Raid au-
todetect" (cdigo fd), haciendo el proceso con fdisk, sea x cada disco diferente
del array, y el parntesis incluye las opciones mediante teclado de fdisk:
# fdisk /dev/sdx (d n p 1 ENTER ENTER t fd w)
(para nuestro caso 4 veces con x=b,c,d,e)
Respecto a esta inicializacin, hay que tener cuidado con los tamaos de disco,
ya que fdisk con particiones tipo msdos slo soporta particiones hasta 2TB.
Si los discos fueran mayores deberamos movernos a otras herramientas de
particionado, como gparted/parted, que soportan nuevos tipos de particiones
como GPT, que ya no disponen de estas restricciones de tamao.
Una vez realizada esta inicializacin, ya podemos pasar a construir el array:
# mdadm --create /dev/md0 --level=5 --verbose --force --chunk=512
--raid-devices=4 /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1
Un parmetro importante en RAID ms avanzados es el tamao del parme-
tro chunk (por defecto, 64 unidad en kb), que tiene especial relevancia en las
prestaciones del RAID. Existen estudios que determinan tamaos adecuados
de chunk en funcin de la funcionalidad final del RAID (escritura o lectura,
tamao promedio de los accesos, acceso principalmente aleatorio o secuen-
cial, etc.). En general, en RAID5 se recomiendan tamaos de 128 en adelante,
e incluso ms elevados 512-1024, dependiendo del tamao promedio de los
archivos.
Una vez lanzado el comando anterior, comenzar la construccin del RAID en
segundo plano. Podemos ir consultando /proc/mdstat, que nos mencionar la
velocidad de construccin y el porcentaje, as como una estimacin de tiempo
para finalizar. Los tiempos de construccin son bastante grandes para altas ca-
pacidades de espacio, y pueden ir desde algunas horas hasta das, dependiendo
de las capacidades de los discos y mquina.
Podramos estar viendo en /proc/mdstat:
# cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4]
md0 : active raid5 sdb1[0] sde1[3] sdd1[2] sdc1[1]
4395406848 blocks level 5, 512k chunk, algorithm 2 [4/3] [UUU_]
[==>..................] recovery = 12.6% (37043392/292945152) finish=127.5min
speed=33440K/sec
unused devices: <none>
GNUFDL PID_00167543 75 Administracin local
Y una vez finalizado:
# cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4]
md0 : active raid5 sdb1[0] sde1[3] sdd1[2] sdc1[1]
4395406848 blocks level 5, 512k chunk, algorithm 2 [4/4] [UUUU]
unused devices: <none>
El siguiente paso es crear un filesystem en nuestro recientemente creado array,
visto por el sistema como el dispositivo /dev/md0 (este paso podra iniciarse
simultneamente durante la reconstruccin, pero por velocidad y seguridad en
algunos pasos crticos iniciales se recomienda realizarlo al final del proceso).
En nuestro caso, vamos a optimizar ligeramente esta creacin examinando al-
gunos parmetros; crearemos un filesystem ext3 en el array completo (es reco-
mendable usar un gestor de volmenes primero, como LVM, que veremos a
continuacin, porque nos permitir crear varias particiones lgicas, que pue-
dan en el futuro expandirse o contraerse segn las necesidades).
Para la creacin del filesystem hay algunas recomendaciones generales que pro-
vienen a partir del tamao de chunk (nmero de datos consecutivos que reside
en un disco en KB), que de hecho nos define cmo se accede al array, y de los
discos presentes, un posible esquema de creacin de un filesystem ext3:
mkfs.ext3 -v -b 4096 -E stride=128,stripe-width=384 /dev/md0
Donde -b 4096 es el tamao de bloque de disco, recomendado para filesystems
muy grandes, y -E define opciones del filesystem para optimizar su rendimien-
to. Estas opciones pueden variarse despus con el comando tune2fs.
En estas opciones suele sugerirse un clculo relacionado con el chunk, que
puede ser en nuestro ejemplo:
chunk size = 512kB (colocado en el comando mdadm en la creacin
del array)
block size = 4kB (recomendado para grandes filesystems)
stride = chunk / block = 512kB / 4k = 128kB
stripe-width = stride * ( (n discos en el raid5) - 1 ) = 128kB * ( (4) - 1
) = 128kB * 3 = 384kB
Esto nos permite ajustar los parmetros del sistema de ficheros al uso del chunk
escogido.
GNUFDL PID_00167543 76 Administracin local
Una vez creado el sistema de ficheros, ya tenemos el array disponible para que
pueda ser montado en una ubicacin del sistema (suponiendo un directorio
previo /mnt/raid5):
# mount -t ext3 /mnt/raid5 /dev/md0
Y ya lo tenemos disponible en el sistema. Si queremos hacerlo fijo, recordad
introducir los parmetros en /etc/fstab para que se monte en arranque. Y en
este caso de array software es recomendable (aunque algunos kernels recientes
ya soportan autodeteccin de RAID software), colocar la informacin RAID en
el fichero /etc/mdadm.conf, mediante consulta del identificador del array por
medio de los comandos # mdadm detail scan (con o sin verbose si se necesita
la identificacin de dispositivos):
#mdadm --detail --scan --verbose
ARRAY /dev/md0 level=raid5 num-devices=4 metadata=0.90
UUID=dcc77e17:94093185:66731ad6:6353ec0b
devices=/dev/sdb1,/dev/sdc1,/dev/sdd1,/dev/sde1
En el siguiente reinicio del sistema ya dispondremos del array montado en
arranque. Tambin, como punto final, podemos obtener la informacin del
array con mdadm detail:
# mdadm --detail /dev/md0
/dev/md0:
Version : 0.90
Creation Time : Sat May 8 09:33:06 2010
Raid Level : raid5
Array Size : 4395406848 (4191.79 GiB 4500.90 GB)
Used Dev Size : 1465135616 (1397.26 GiB 1500.30 GB)
Raid Devices : 4
Total Devices : 4
Preferred Minor : 0
Persistence : Superblock is persistent
Update Time : Fri May 21 12:14:31 2010
State : clean
Active Devices : 4
Working Devices : 4
Failed Devices : 0
Spare Devices : 0
Layout : left-symmetric
Chunk Size : 512K
UUID : dcc77e17:94093185:66731ad6:6353ec0b (local to host kaoscore)
Events : 0.125
GNUFDL PID_00167543 77 Administracin local
Number Major Minor RaidDevice State
0 8 17 0 active sync /dev/sdb1
1 8 33 1 active sync /dev/sdc1
2 8 49 2 active sync /dev/sdd1
3 8 65 3 active sync /dev/sde1
Respecto al funcionamiento del sistema, hay que examinar tanto este infor-
me como el proporcionado por /proc/mdstat para controlar de forma peridi-
ca (manualmente, mediante cron, o por notificaciones mediante mail) el esta-
do del RAID (en este caso activo), para determinar si se produce algun fallo
de disco. En este estado el array pasara a degraded, y el sistema perdera su
capacidad de tolerancia a un siguiente fallo. Es entonces necesario detectar
qu disco est fallando y sustituirlo, para que comience la reconstruccin del
array (mediante mdadm puede eliminarse un disco del array, y aadir una vez
realizado el cambio de hardware el nuevo disco). Tambin es posible median-
te mdadm simular degradaciones o fallos, lo que nos permite testear nuestro
array delante de condiciones extremas.
Finalmente, destacamos que la creacin de arrays RAID es muy interesante
para la realizacin de grandes soportes de discos para entornos empresariales
donde se intenta maximizar la tolerancia a fallos, la recuperacin rpida de-
lante de problemas y un soporte continuo de servicios sin interrupciones. Es
un campo tambin donde se necesita un entorno cuidadoso de anlisis de
rendimiento de las soluciones, de los requisitos iniciales del servicio y experi-
mentacin con las diferentes soluciones posibles.
8.2. Volmenes lgicos (LVM)
En un momento determinado, surge la necesidad de abstraerse del sistema f-
sico de discos, y de su configuracin y nmero de dispositivos, para que el sis-
tema (operativo) se encargue de este trabajo y no nos tengamos que preocupar
de estos parmetros directamente. En este sentido, puede verse el sistema de
volmenes lgicos como una capa de virtualizacin del almacenamiento que
permite una visin ms simple que facilite la utilizacin fluida y sencilla.
En el kernel Linux se dispone de LVM (logical volume manager), que se bas
en ideas desarrolladas de gestores de volmenes de almacenamiento usados
en HP-UX (una versin UNIX propietaria de HP). Actualmente existen dos
versiones, de las que la LVM2 es la ms utilizada, por una serie de prestaciones
aadidas que incorpora.
La arquitectura de una LVM consiste tpicamente en los componentes (prin-
cipales):
GNUFDL PID_00167543 78 Administracin local
1) Volmenes fsicos (PV): son los discos duros, o particiones de stos, o cual-
quier otro elemento que aparezca como un disco duro de cara al sistema (por
ejemplo, un RAID software o hardware).
2) Volmenes lgicos (LV): es el equivalente a la particin del disco fsico.
Esta LV es visible en el sistema como un dispositivo de bloques (absolutamente
equivalente a una particin fsica), y puede contener un sistema de ficheros
(por ejemplo, el /home de los usuarios). Los volmenes tienen ms sentido
para los administradores, ya que pueden usarse nombres para identificarlos
(as podemos utilizar un dispositivo lgico, llamado "stock" o "marketing" en
lugar de hda6 o sdc3).
3) Grupos de volmenes (VG): es el elemento de la capa superior. La unidad
administrativa que engloba nuestros recursos, ya sean volmenes lgicos (LV)
o fsicos (PV). En esta unidad se guardan los datos de los PV disponibles, y
cmo se forman las LV a partir de los PV. Evidentemente, para poder utilizar
un grupo VG, hemos de disponer de soportes fsicos PV, que se organizen en
diferentes unidades lgicas LV.
En la siguiente figura observamos un grupo de volmenes, donde disponemos
de siete PV, en forma de particiones de discos, que se han agrupado para formar
dos volmenes lgicos (que se han acabado utilizando para formar los sistemas
de ficheros de /usr y /home):
Esquema de un ejemplo de LVM.
Con el uso de los volmenes lgicos, permitimos un tratamiento ms flexible
del espacio en el sistema de almacenamiento (que podra tener un gran nme-
ro de discos y particiones diferentes), segn las necesidades que nos aparezcan.
GNUFDL PID_00167543 79 Administracin local
Podemos gestionar el espacio, tanto por identificadores ms adecuados como
por operaciones que nos permitan adecuar las necesidades al espacio disponi-
ble en cada momento.
Los sistemas de gestin de volmenes nos permiten:
1) Redimensionar dinmicamente grupos y volmenes lgicos, aprovechando
nuevos PV, o extrayendo algunos de los disponibles inicialmente.
2) Instantneas del sistema de archivos (lectura en LVM1 y lectura y/o escritu-
ra en LVM2). Esto facilita la creacin de un nuevo dispositivo que sea una ins-
tantnea en el tiempo de la situacin de una LV. Se puede, por ejemplo, crear
la instantnea, montarla, probar varias operaciones o configuracin nueva de
software, u otros elementos, y si no funciona como esperbamos, devolver el
volumen original a su estado antes de las pruebas.
3) RAID 0 de volmenes lgicos.
En LVM no se implementan configuraciones de RAID de tipos 1 o 5, si son ne-
cesarias (o sea redundancia y tolerancia a fallo). El proceso es utilizar software
de RAID o controladora hardware RAID que lo implemente en un determina-
do nivel de RAID, y luego colocar LVM como capa superior al RAID creado
previamente.
Hagamos un breve ejemplo de creacin tpica (en muchos casos, el instalador
de la distribucin realiza un proceso parecido, si permitimos un LVM como
sistema inicial de almacenamiento). Bsicamente, se realiza: 1) la creacin de
los volumenes fsicos (PV), 2) creacin del grupo lgico (VG), 3) creacin del
volumen lgico (LV), y 4) utilizacin para creacin de un sistema de ficheros,
y posterior montaje:
1) Disponemos, por ejemplo, de tres particiones de diferentes discos. Creamos
tres PV (los pasos iniciales borran cualquier contenido de los discos) e inicia-
lizamos el contenido:
# dd if=/dev/zero of=/dev/hda1 bs=1k count=1
# dd if=/dev/zero of=/dev/hda2 bs=1k count=1
# dd if=/dev/zero of=/dev/hdb1 bs=1k count=1
# pvcreate /dev/hda1
Physical volume "/dev/hda1" successfully created
# pvcreate /dev/hda2
Physical volume "/dev/hda2" successfully created
# pvcreate /dev/hdb1
Physical volume "/dev/hdb1" successfully created
GNUFDL PID_00167543 80 Administracin local
2) Colocamos en un VG creado de los diferentes PV:
# vgcreate grupo_discos /dev/hda1 /dev/hda2 /dev/hdb1
Volume group "grupo_discos" successfully created
3) Creamos la LV (en este caso, de tamao de 1GB) a partir de los elementos
que tenemos en el grupo VG (-n indica el nombre del volumen):
# lvcreate -L1G -n volumen_logico grupo_discos
lvcreate -- doing automatic backup of "grupo_discos"
lvcreate -- logical volume "/dev/grupo_discos/volumen_logico" successfully created
4) Y finalmente, creamos un sistema de ficheros (un reiser en este caso):
# mkfs.reiserfs /dev/grupo_discos/volumen_logico
El cual, por ejemplo, podramos colocar de espacio de backup:
mkdir /mnt/backup
mount -t reiserfs /dev/grupo_discos/volumen_logico /mnt/backup
Y disponemos finalmente del dispositivo como un volumen lgico que imple-
menta un sistema de ficheros.
GNUFDL PID_00167543 81 Administracin local
9. Software: actualizacin
Para la administracin de instalacin o actualizacin de software en nuestro
sistema, vamos a depender en primera instancia del tipo de paquetes software
que utilice nuestro sistema:
RPM: paquetes que utiliza la distribucin Fedora/Red Hat (y derivadas).
Se suelen manejar mediante el comando rpm. Contienen informacin de
dependencias del software con otros. A alto nivel mediante yum (o up2date
en algunas distribuciones derivadas de Red Hat).
DEB: paquetes de Debian, se suelen manejar con un conjunto de herra-
mientas que trabajan a diferentes niveles con paquetes individuales o gru-
pos. Entre estas, cabe mencionar dselect, tasksel, dpkg, apt-get y aptitude.
Tar, o bien los tgz (tambin tar.gz): son puramente paquetes de ficheros
unidos y comprimidos mediante comandos estndar como tar y gzip (se
usan los mismos para la descompresin). Estos paquetes no contienen in-
formacin de dependencias y pueden instalarse en diferentes lugares, si
no es que llevan informacin de ruta (path) absoluta.
Para manejar estos paquetes existen varias herramientas grficas, como RPM:
Kpackage; DEB: Synaptic, Gnome-apt; Tgz: Kpackage o desde el propio gestor
de ficheros grficos (en Gnome o KDE). Tambin suelen existir utilidades de
conversiones de paquetes. Por ejemplo, en Debian tenemos el comando alien,
que permite convertir paquetes RPM a DEB. Aunque hay que tomar las debidas
precauciones para que el paquete, por tener una distribucin destino diferente,
no modifique algn comportamiento o fichero de sistema no esperado.
Dependiendo del uso de los tipos de paquetes o herramientas, la actualizacin
o instalacin de software de nuestro sistema se podr producir de diferentes
maneras:
1) Desde los propios CD de instalacin del sistema. Todas las distribuciones
buscan el software en sus CD. Pero hay que tener en cuenta que este software
no sea antiguo y no incluya, por esta razn, algunos parches como actualiza-
ciones, o nuevas versiones con ms prestaciones, con lo cual, si se instala a
partir de CD, es bastante comn verificar despus que no exista alguna versin
ms reciente.
Ved tambin
En el apartado 1, "Herramien-
tas bsicas para el administra-
dor", desarrollamos en profun-
didad estos conceptos.
GNUFDL PID_00167543 82 Administracin local
2) Mediante servicios de actualizacin o bsqueda de software, ya sea de forma
gratuita, como el caso de la herramienta apt-get de Debian, o yum en Fedora,
o servicios de suscripcin (de pago o con facilidades bsicas), como el Red Hat
Network de las versiones Red Hat comerciales.
3) Por repositorios de software que ofrecen paquetes de software preconstrui-
dos para una distribucin determinada.
4) Por el propio creador o distribuidor del software, que ofrece una serie de
paquetes de instalacin de su software. Podemos no encontrar el tipo de pa-
quetes necesario para nuestra distribucin.
5) Software sin empaquetamiento o con un empaquetamiento de slo com-
presin sin ningn tipo de dependencias.
6) Slo cdigo fuente, en forma de paquete o bien fichero comprimido.
GNUFDL PID_00167543 83 Administracin local
10. Trabajos no interactivos
En las tareas de administracin, suele ser necesaria la ejecucin a intervalos
temporales de ciertas tareas, ya sea por programar las tareas para realizarlas en
horarios de menor uso de la mquina, o bien por la propia naturaleza peridica
de las tareas que se quieran desarrollar.
Para realizar este tipo de trabajos "fuera de horas", como servicios peridicos
o programados, hay varios sistemas que nos permiten construir un tipo de
agenda de tareas (planificacin de ejecucin de tareas):
nohup: es quizs el caso ms simple utilizado por los usuarios. Les permite
la ejecucin de una tarea no interactiva una vez hayan salido de su cuen-
ta. Al salir de la cuenta, el usuario pierde sus procesos, y nohup permite
dejarlos en ejecucin, a pesar de que el usuario se desconecte.
at: nos deja lanzar una accin para ms tarde, programando un determi-
nado instante en el que va a iniciarse, especificndose la hora (hh:mm) y
fecha, o bien si se har hoy (today) o maana (tomorrow).
# at 10pm tarea
realizar la tarea a las diez de la noche.
# at 2am tomorrow tarea
realizar la tarea a las dos de la madrugada.
cron: permite establecer una lista de trabajos por realizar con su programa-
cin; esta configuracin se guarda en /etc/crontab. Concretamente, en cada
entrada de este fichero tenemos: minutos y hora en que se va a efectuar la
tarea, qu da del mes, qu mes, qu da de la semana, junto con qu (ya
sea una tarea, o bien un directorio donde estarn las tareas a ejecutar).
De forma estndar, el contenido es parecido a:
25 6 * * * root test -e /usr/sbin/anacron ||
run-parts --report /etc/cron.daily
47 6 * * 7 root test -e /usr/sbin/anacron ||
run-parts --report /etc/cron.weekly
52 6 1 * * root test -e /usr/sbin/anacron ||
run-parts --report /etc/cron.monthl
donde se est programando que una serie de tareas van a hacerse: cada da ("*" indica
"cualquiera"), semanalmente (el sptimo da de la semana), o mensualmente (el primero
de cada mes). Los trabajos seran ejecutados por el comando crontab, pero el sistema cron
supone que la mquina est siempre encendida. Si no es as, es mejor utilizar anacron,
que verifica si la accin no se realiz cuando habra debido hacerlo, y la ejecuta. En cada
lnea del anterior fichero se verifica que exista el comando anacron y se ejecutan los scripts
asociados a cada accin, que en este caso estn guardados en unos directorios asignados
para ello, los cron.
GNUFDL PID_00167543 84 Administracin local
Tambin pueden existir unos ficheros cron.allow, cron.deny, para limitar quin
puede colocar (o no) trabajos en cron. Mediante el comando crontab, un usua-
rio puede definir trabajos en el mismo formato que hemos visto antes, que
se guardarn en /var/spool/cron/crontabs. En algunos casos, existe tambin un
directorio /etc/cron.d donde se pueden colocar trabajos y que es tratado como
si fuera una extensin del fichero /etc/crontab. En algunas versiones, el sistema
ya especifica sus trabajos peridicos de sistema directamente sobre subdirec-
torios del /etc como cron.hourly/, cron.daily/, cron.weekly y cron.montly/, donde
se colocan los trabajos de sistema que necesitan esta periodicidad.
GNUFDL PID_00167543 85 Administracin local
11. Taller: prcticas combinadas de los apartados
Comenzaremos por examinar el estado general de nuestro sistema. Vamos a
realizar los diferentes pasos en un sistema Debian. Aunque se trata de un sis-
tema Debian, los procedimientos son en su mayor parte trasladables a otras
distribuciones, como Fedora/Red Hat (mencionaremos algunos de los cambios
ms importantes). El hardware consiste en un Pentium 4 a 2.66Mhz con 768
MB y varios discos, DVD y grabador de CD, adems de otros perifricos, pero
ya iremos obteniendo esta informacin paso a paso.
Veamos primero cmo ha arrancado nuestro sistema la ltima vez:
# uptime
17:38:22 up 2:46, 5 users, load average: 0.05, 0.03, 0.04
Este comando nos da el tiempo que lleva el sistema funcionando desde que
se arranc la ltima vez, 2 horas 46 minutos. En nuestro caso tenemos cinco
usuarios. stos no tienen por qu ser cinco usuarios diferentes, sino que se-
rn las sesiones de usuario abiertas (por ejemplo, mediante un terminal). El
comando who permite listar estos usuarios. El load average es la carga media
del sistema en los ltimos 1, 5 y 15 minutos.
Veamos el log del arranque del sistema (comando dmesg), las lneas que se
iban generando en la carga del sistema (se han suprimido diferentes lneas por
claridad):
Linux version 2.6.20-1-686 (Debian 2.6.20-2) (waldi@debian.org) (gcc version
4.1.2 20061115 (prerelease) (Debian 4.1.1-21)) #1 SMP Sun Apr 15 21:03:57 UTC
BIOS-provided physical RAM map:
BIOS-e820: 0000000000000000 - 000000000009f800 (usable)
BIOS-e820: 000000000009f800 - 00000000000a0000 (reserved)
BIOS-e820: 00000000000ce000 - 00000000000d0000 (reserved)
BIOS-e820: 00000000000dc000 - 0000000000100000 (reserved)
BIOS-e820: 0000000000100000 - 000000002f6e0000 (usable)
BIOS-e820: 000000002f6e0000 - 000000002f6f0000 (ACPI data)
BIOS-e820: 000000002f6f0000 - 000000002f700000 (ACPI NVS)
BIOS-e820: 000000002f700000 - 000000002f780000 (usable)
BIOS-e820: 000000002f780000 - 0000000030000000 (reserved)
BIOS-e820: 00000000ff800000 - 00000000ffc00000 (reserved)
BIOS-e820: 00000000fffffc00 - 0000000100000000 (reserved)
0MB HIGHMEM available.
GNUFDL PID_00167543 86 Administracin local
759MB LOWMEM available.
Estas primeras lneas ya nos indican varios datos interesantes: la versin del
kernel Linux es la 2.6.20-1-686, una versin 2.6 revisin 20 a revisin 1 de
Debian, y para mquinas 686 (arquitectura Intel x86 32bits). Indica tambin
que estamos arrancando un sistema Debian, con este kernel que fue compilado
con un compilador GNU gcc versin 4.1.2. A continuacin, existe un mapa de
zonas de memoria usadas (reservadas) por la BIOS, y a continuacin el total
de memoria detectada en la mquina: 759 MB, a las que habra que sumar el
primer 1 MB, total de 760 MB.
Kernel command line: BOOT_IMAGE=LinuxNEW ro root=302 lang=es acpi=force
Initializing CPU#0
Console: colour dummy device 80x25
Memory: 766132k/777728k available (1641k kernel code, 10968k reserved, 619k data,
208k init, 0k highmem)
Calibrating delay using timer specific routine.. 5320.63 BogoMIPS (lpj=10641275)
Aqu nos refiere cmo ha sido el arranque de la mquina, qu lnea de coman-
dos se le ha pasado al kernel (pueden pasarse diferentes opciones, por ejemplo
desde el lilo o grub). Y estamos arrancando en modo consola de 80 x 25 carac-
teres (esto se puede cambiar). Los BogoMIPS son una medida interna del kernel
de la velocidad de la CPU; hay arquitecturas donde es difcil detectar a cuntos
Mhz o GHz funciona la CPU, y por eso se utiliza esta medida de velocidad.
Despus nos da ms datos de la memoria principal, y nos dice para qu se est
usando en este momento del arranque.
CPU: Trace cache: 12K uops, L1 D cache: 8K
CPU: L2 cache: 512K
CPU: Hyper-Threading is disabled
Intel machine check architecture supported.
Intel machine check reporting enabled on CPU#0.
CPU0: Intel P4/Xeon Extended MCE MSRs (12) available
CPU0: Intel(R) Pentium(R) 4 CPU 2.66GHz stepping 09
Adems, nos proporciona datos varios de la CPU, el tamao de las cach de
primer nivel, cach interna CPU, L1 dividida en una TraceCache del Pentium4
(o Instruction Cache), y la cach de datos, y cach unificada de segundo nivel
(L2), tipo de CPU, velocidad de sta y del bus del sistema.
PCI: PCI BIOS revision 2.10 entry at 0xfd994, last bus=3
Setting up standard PCI resources
...
NET: Registered protocol
IP route cache hash table entries: 32768 (order: 5, 131072 bytes)
TCP: Hash tables configured (established 131072 bind 65536)
checking if image is initramfs... it is
GNUFDL PID_00167543 87 Administracin local
Freeing initrd memory: 1270k freed
fb0: VESA VGA frame buffer device
Serial: 8250/16550 driver $Revision: 1.90 $ 4 ports, IRQ sharing enabled
serial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
00:09: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
RAMDISK driver initialized: 16 RAM disks of 8192K size 1024 blocksize
PNP: PS/2 Controller [PNP0303:KBC0,PNP0f13:MSE0] at 0x60,0x64 irq 1,12
i8042.c: Detected active multiplexing controller, rev 1.1.
serio: i8042 KBD port at 0x60,0x64 irq 1
serio: i8042 AUX0 port at 0x60,0x64 irq 12
serio: i8042 AUX1 port at 0x60,0x64 irq 12
serio: i8042 AUX2 port at 0x60,0x64 irq 12
serio: i8042 AUX3 port at 0x60,0x64 irq 12
mice: PS/2 mouse device common for all mice
Continan las inicializaciones del kernel y dispositivos, menciona la iniciali-
zacin de protocolos de red. Los terminales, los puertos serie ttyS0 (sera el
com1), ttyS01 (el com2), da informacin de los discos RAM que usamos y de-
tecta dispositivos PS2, teclado y ratn.
ICH4: IDE controller at PCI slot 0000:00:1f.1
ide0: BM-DMA at 0x1860-0x1867, BIOS settings: hda:DMA, hdb:pio
ide1: BM-DMA at 0x1868-0x186f, BIOS settings: hdc:DMA, hdd:pio
Probing IDE interface ide0...
hda: FUJITSU MHT2030AT, ATA DISK drive
ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
Probing IDE interface ide1...
hdc: SAMSUNG CDRW/DVD SN-324F, ATAPI CD/DVD-ROM drive
ide1 at 0x170-0x177,0x376 on irq 15
SCSI subsystem initialized
libata version 2.00 loaded.
hda: max request size: 128KiB
hda: 58605120 sectors (30005 MB) w/2048KiB Cache, CHS=58140/16/63<6>hda: hw_config=600b
, UDMA(100)
hda: cache flushes supported
hda: hda1 hda2 hda3
kjournald starting. Commit interval 5 seconds
EXT3-fs: mounted filesystem with ordered data mode.
hdc: ATAPI 24X DVD-ROM CD-R/RW drive, 2048kB Cache, UDMA(33)
Uniform CD-ROM driver Revision: 3.20
Addinf 618492 swap on /dev/hda3.
Deteccin de dispositivos IDE, detecta el chip IDE en el bus PCI e informa de
que est controlando dos dispositivos: hda y hdc, que son respectivamente un
disco duro (fujitsu), un segundo disco duro, un DVD Samsung y una grabadora
de CD (ya que en este caso se trata de una unidad combo). Indica particiones
GNUFDL PID_00167543 88 Administracin local
activas en el disco. Ms adelante, detecta el sistema principal de ficheros de
Linux, un ext3 con journal, que activa y aade el espacio de swap disponible
en una particin.
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
input: PC Speaker as /class/input/input1
USB Universal Host Controller Interface driver v3.0
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 2 ports detected
uhci_hcd 0000:00:1d.1: UHCI Host Controller
uhci_hcd 0000:00:1d.1: new USB bus registered, assigned bus number 2
uhci_hcd 0000:00:1d.1: irq 11, io base 0x00001820
usb usb2: configuration #1 chosen from 1 choice
hub 2-0:1.0: USB hub found
hub 2-0:1.0: 2 ports detected
hub 4-0:1.0: USB hub found
hub 4-0:1.0: 6 ports detected
Ms deteccin de dispositivos, USB en este caso (y los mdulos que correspon-
den). Ha detectado dos dispositivos hub (con un total de 8 USB ports).
parport: PnPBIOS parport detected.
parport0: PC-style at 0x378 (0x778), irq 7, dma 1 [PCSPP,TRISTATE,COMPAT,EPP,ECP,DMA]
input: ImPS/2 Logitech Wheel Mouse as /class/input/input2
ieee1394: Initialized config rom entry `ip1394'
eepro100.c:v1.09j-t 9/29/99 Donald Becker
Synaptics Touchpad, model: 1, fw: 5.9, id: 0x2e6eb1, caps: 0x944713/0xc0000
input: SynPS/2 Synaptics TouchPad as /class/input/input3
agpgart: Detected an Intel 845G Chipset
agpgart: Detected 8060K stolen Memory
agpgart: AGP aperture is 128M
eth0: OEM i82557/i82558 10/100 Ethernet, 00:00:F0:84:D3:A9, IRQ 11.
Board assembly 000000-000, Physical connectors present: RJ45
e100: Intel(R) PRO/100 Network Driver, 3.5.17-k2-NAPI
usbcore: registered new interface driver usbkbd
Initializing USB Mass Storage driver...
usbcore: registered new interface driver usb-storage
USB Mass Storage support registered.
lp0: using parport0 (interrupt-driven).
ppdev: user-space parallel port driver
GNUFDL PID_00167543 89 Administracin local
Y la deteccin final del resto de dispositivos: puerto paralelo, modelo de ratn,
puerto firewire (ieee1394) tarjeta de red (Intel), un panel tctil, la tarjeta de
vdeo AGP (i845). Ms datos de la tarjeta de red una intel pro 100, registro
de usb como mass storage (indica un dispositivo de almacenamiento por usb,
como un disco externo) y deteccin del puerto paralelo.
Toda esta informacin que hemos visto mediante el comando dmesg, tambin
la podemos encontrar volcada en el log principal del sistema /var/log/messages.
En este log, entre otros, encontraremos los mensajes del kernel y de los dae-
mons, y errores de red o dispositivos, los cuales comunican sus mensajes a un
daemon especial llamado syslogd, que es el encargado de escribir los mensajes
en este fichero. Si hemos arrancado la mquina recientemente, observaremos
que las ltimas lneas contienen exactamente la misma informacin que el
comando dmesg, por ejemplo, si nos quedamos con la parte final del fichero
(suele ser muy grande):
tail 200 /var/log/messages
Observamos las lneas de antes, y tambin algunas informaciones ms, como
por ejemplo:
shutdown[13325]: shutting down for system reboot
kernel: usb 4-1: USB disconnect, address 3
kernel: nfsd: last server has exited
kernel: nfsd: unexporting all filesystems
kernel: Kernel logging (proc) stopped.
kernel: Kernel log daemon terminating.
exiting on signal 15
syslogd 1.4.1#20: restart.
kernel: klogd 1.4.1#20, log source = /proc/kmsg started.
Linux version 2.6.20-1-686 (Debian 2.6.20-2) (waldi@debian.org) (gcc version
4.1.2 20061115 (prerelease) (Debian 4.1.1-21)) #1 SMP Sun Apr 15 21:03:57
kernel: BIOS-provided physical RAM map:
La primera parte corresponde a la parada anterior del sistema; nos informa de
que el kernel ha dejado de colocar informacin en /proc, se est parando el sis-
tema... Al principio del arranque nuevo, se activa el daemon Syslogd que genera
el log y comienza la carga del sistema, que nos dice que el kernel comenzar a
escribir informacin en su sistema, /proc. Vemos las primeras lneas de dmesg
de mencin de la versin que se est cargando de kernel, y luego encontrare-
mos lo que hemos visto con dmesg.
GNUFDL PID_00167543 90 Administracin local
En este punto, otro comando til para saber cmo se ha producido la carga
es lsmod, que nos permitir saber qu mdulos dinmicos se han cargado con
el kernel (versin resumida):
# lsmod
Module Size Used by
nfs 219468 0
nfsd 202192 17
exportfs 5632 1 nfsd
lockd 58216 3 nfs,nfsd
nfs_acl 3616 2 nfs,nfsd
sunrpc 148380 13 nfs,nfsd,lockd,nfs_acl
ppdev 8740 0
lp 11044 0
button 7856 0
ac 5220 0
battery 9924 0
md_mod 71860 1
dm_snapshot 16580 0
dm_mirror 20340 0
dm_mod 52812 2 dm_snapshot,dm_mirror
i810fb 30268 0
vgastate 8512 1 i810fb
eeprom 7184 0
thermal 13928 0
processor 30536 1 thermal
fan 4772 0
udf 75876 0
ntfs 205364 0
usb_storage 75552 0
hid 22784 0
usbkbd 6752 0
eth1394 18468 0
e100 32648 0
eepro100 30096 0
ohci1394 32656 0
ieee1394 89208 2 eth1394,ohci1394
snd_intel8x0 31420 1
snd_ac97_codec 89412 1 snd_intel8x0
ac97_bus 2432 1 snd_ac97_codec
parport_pc 32772 1
snd 48196 6 snd_intel8x0,snd_ac97_codec,snd_pcm,snd_timer
ehci_hcd 29132 0
ide_cd 36672 0
cdrom 32960 1 ide_cd
soundcore 7616 1 snd
psmouse 35208 0
GNUFDL PID_00167543 91 Administracin local
uhci_hcd 22160 0
parport 33672 3 ppdev,lp,parport_pc
intelfb 34596 0
serio_raw 6724 0
pcspkr 3264 0
pci_hotplug 29312 1 shpchp
usbcore 122312 6 dvb_usb,usb_storage,usbkbd,ehci_hcd,uhci_hcd
intel_agp 22748 1
agpgart 30504 5 i810fb,drm,intelfb,intel_agp
ext3 121032 1
jbd 55368 1 ext3
ide_disk 15744 3
ata_generic 7876 0
ata_piix 15044 0
libata 100052 2 ata_generic,ata_piix
scsi_mod 133100 2 usb_storage,libata
generic 4932 0 [permanent]
piix 9540 0 [permanent]
ide_core 114728 5 usb_storage,ide_cd,ide_disk,generic,piix
Vemos que disponemos de los controladores para el hardware que hemos de-
tectado, y de otros relacionados o necesarios por dependencias.
Ya tenemos, pues, una idea de cmo se han cargado el kernel y sus mdulos. En
este proceso puede que ya hubisemos observado algn error; si hay hardware
mal configurado o mdulos del kernel mal compilados (no eran para la versin
del kernel adecuada), inexistentes, etc.
El paso siguiente ser la observacin de los procesos en el sistema, con el co-
mando ps (Process Status), por ejemplo (slo se han listado los procesos de
sistema, no los de los usuarios):
#ps -ef
UID PID PPID C STIME TTY TIME CMD
Informacin de los procesos, UID, usuario que ha lanzado el proceso (o con qu
identificador se ha lanzado), PID, cdigo del proceso asignado por el sistema,
son consecutivos a medida que se lanzan los procesos. El primero siempre es
el 0, que corresponde al proceso de init. PPID es el id del proceso padre del
actual. STIME, tiempo en que fue arrancado el proceso, TTY, terminal asignado
al proceso (si tiene alguno), CMD, lnea de comando con que fue lanzado.
root 1 0 0 14:52 ? 00:00:00 init [2]
root 3 1 0 14:52 ? 00:00:00 [ksoftirqd/0]
root 143 6 0 14:52 ? 00:00:00 [bdflush]
root 145 6 0 14:52 ? 00:00:00 [kswapd0]
GNUFDL PID_00167543 92 Administracin local
root 357 6 0 14:52 ? 00:00:01 [kjournald]
root 477 1 0 14:52 ? 00:00:00 udevd --daemon
root 719 6 0 14:52 ? 00:00:00 [khubd]
Varios daemons de sistema, como kswapd daemon, que controla el intercambio
de pginas con memoria virtual. Gestin de buffers del sistema (bdflush). Ges-
tin de journal de filesystem (kjournald), gestin de USB (khubd). O el demonio
de udev que controla la conexin en caliente de dispositivos. En general (no
siempre) los daemons suelen identificarse por una d final, y si llevan un k ini-
cial, normalmente son hilos (threads) internos del kernel.
root 1567 1 0 14:52 ? 00:00:00 dhclient -e -pf ...
root 1653 1 0 14:52 ? 00:00:00 /sbin/portmap
root 1829 1 0 14:52 ? 00:00:00 /sbin/syslogd
root 1839 1 0 14:52 ? 00:00:00 /sbin/klogd -x
root 1983 1 0 14:52 ? 00:00:09 /usr/sbin/cupsd
root 2178 1 0 14:53 ? 00:00:00 /usr/sbin/inetd
Tenemos: dhclient, lo que indica que esta mquina es cliente de un servidor
DHCP, para obtener su IP; Syslogd, daemon que enva mensajes al log; el daemon
de cups, como vimos, est relacionado con el sistema de impresin; e inetd,
que, como veremos en la parte de redes, es una especie de "superservidor" o
intermediario de otros daemons relacionados con servicios de red.
root 2154 1 0 14:53 ? 00:00:00 /usr/sbin/rpc.mountd
root 2241 1 0 14:53 ? 00:00:00 /usr/sbin/sshd
root 2257 1 0 14:53 ? 00:00:00 /usr/bin/xfs -daemon
root 2573 1 0 14:53 ? 00:00:00 /usr/sbin/atd
root 2580 1 0 14:53 ? 00:00:00 /usr/sbin/cron
root 2675 1 0 14:53 ? 00:00:00 /usr/sbin/apache
www-data 2684 2675 0 14:53 ? 00:00:00 /usr/sbin/apache
www-data 2685 2675 0 14:53 ? 00:00:00 /usr/sbin/apache
Tambin est sshd, servidor de acceso remoto seguro (una versin mejorada
que permite servicios compatibles con telnet y ftp); xfs es el servidor de fuen-
tes (tipos de letra) de X Window. Los comandos atd y cron sirven para manejar
tareas programadas en un momento determinado. Apache es el servidor web,
que puede tener varios hilos activos (threads) para atender diferentes peticio-
nes.
root 2499 2493 0 14:53 ? 00:00:00 /usr/sbin/gdm
root 2502 2499 4 14:53 tty7 00:09:18 /usr/bin/X :0 -dpi 96 ...
root 2848 1 0 14:53 tty2 00:00:00 /sbin/getty 38400 tty2
root 2849 1 0 14:53 tty3 00:00:00 /sbin/getty 38400 tty3
root 3941 2847 0 14:57 tty1 00:00:00 -bash
root 16453 12970 0 18:10 pts/2 00:00:00 ps -ef
GNUFDL PID_00167543 93 Administracin local
As, gdm es el login grfico del sistema de escritorio Gnome (la entrada que
nos pide el login y contrasea); los procesos getty son los que gestionan los
terminales virtuales de texto (los que podemos ver con las teclas Alt+Fn, o
Ctrl+Alt+Fn si estamos en modo grfico); X es el proceso de servidor grfico
de X Window System, imprescindible para que se ejecute cualquier entorno
de escritorio por encima de l. Un shell abierto (bash), y finalmente el proceso
que hemos generado al pedir este ps desde la lnea de comandos.
El comando ps tiene muchas opciones de lnea de comandos para ajustar la
informacin que queremos de cada proceso, ya sea tiempo que hace que se
ejecuta, porcentaje de CPU usado, memoria utilizada, etc. (ved man de ps).
Otro comando muy interesante es top, que hace lo mismo que ps pero de forma
dinmica; se actualiza cada cierto intervalo; podemos clasificar los procesos
por uso de CPU, de memoria, y tambin nos da informacin del estado de la
memoria global.
Otros comandos tiles para uso de recursos son free y vmstat, que nos dan
informacin sobre la memoria utilizada y el sistema de memoria virtual:
# free
total used free shared buffers cached
Mem: 767736 745232 22504 0 89564 457612
-/+ buffers/cache: 198056 569680
Swap: 618492 1732 616760
# vmstat
procs -----------memory---------- ---swap-- -----io-- --system-- ----cpu----
r b swpd free buff cache si so bi bo in cs us sy id wa
1 0 1732 22444 89584 457640 0 0 68 137 291 418 7 1 85 7
En el comando free tambin se puede observar el tamao del swap presente,
aproximadamente de unas 600 MB, que de momento no se est usando inten-
samente por tener suficiente espacio de memoria fsica. Todava quedan unas
22 MB libres (lo que indica una alta utilizacin de la memoria fsica y un uso
de swap prximamente). El espacio de memoria y el swap (a partir de los kernels
2.4) son aditivos para componer el total de memoria del sistema, haciendo en
este caso un total de 1,4 GB de memoria disponible.
Nota
Ver man de los comandos para
interpretar las salidas.
GNUFDL PID_00167543 95 Administracin local
Actividades
1. Haced una lectura rpida del estndar FHS, que nos servir para tener una buena gua a la
hora de buscar archivos por nuestra distribucin.
2. Para los paquetes RPM, cmo harais algunas de las siguientes tareas?
a) Conocer qu paquete instal un determinado comando.
b) Obtener la descripcin del paquete que instal un comando.
c) Borrar un paquete cuyo nombre completo no conocemos.
d) Mostrar todos los archivos que estaban en el mismo paquete que un determinado archivo.
3. Efectuad las mismas tareas que en la actividad anterior, pero para paquetes Debian, usando
herramientas APT.
4. Actualizad una distribucin Debian (o Fedora).
5. Instalad en nuestra distribucin alguna herramienta genrica de administracin, como
Webadmin. Qu nos ofrece? Entendis las tareas ejecutadas y los efectos que provocan?
6. El espacio de swap permite complementar la memoria fsica para disponer de mayor me-
moria virtual. Dependiendo de los tamaos de memoria fsica y swap, puede llegar a agotar-
se la memoria? Podemos solucionarlo de otro modo, que no sea aadiendo ms memoria
fsica?
7. Supongamos que tenemos un sistema con dos particiones Linux, una / y la otra de swap.
Cmo solucionarais el caso de que las cuentas de los usuarios agotasen el espacio de dis-
co? Y en el caso de tener una particin /home aislada que se estuviera agotando, cmo lo
solucionarais?
8. Instalad el sistema de impresin CUPS, definid nuestra impresora para que funcione con
CUPS y probad la administracin va interfaz web. Tal como est el sistema, sera recomen-
dable modificar de algn modo la configuracin que trae por defecto CUPS? Por qu?
9. Analizad el sistema Upstart presente en una distribucin Fedora. Qu eventos y jobs trae
predefinidos? Hay compatibilidad con el init de SystemV?
10. Examinad la configuracin por defecto que traiga el sistema GNU/Linux de trabajos no
interactivos por cron. Qu trabajos y cundo se estn realizando? Alguna idea para nuevos
trabajos que haya que aadir?
11. Reproducid el anlisis del taller (ms los otros apartados de la unidad) sobre la mquina
de que dispongis; se observan en el sistema algunos errores o situaciones anmalas? En tal
caso, cmo las corregs?
Nota
Ver FHS en:
http://www.pathname.com/
fhs
GNUFDL PID_00167543 96 Administracin local
Bibliografa
[Bai03] Bailey, E. C. (2003). RedHat Maximum RPM.
<http://www.redhat.com/docs/books/max-rpm/index.html>
Ofrece una amplia visin de los sistemas de paquetes de software de las distribuciones Debian
y Fedora/Red Hat.
[Debb] Comunidad Debian. "Distribucin Debian". http://www.debian.org
[Coo] Cooper, M. (2006). "Advanced bashScripting Guide". The Linux Documentation Project
(guas).
Ofrece una amplia introduccin (y conceptos avanzados) a la programacin de shell scripts
en bash, as como numerosos ejemplos.
[Deb] Debian. "Sitio Seguridad de Debian".http://www.debian.org/security/
Ofrece una amplia visin de los sistemas de paquetes de software de las distribuciones Debian
y Fedora/Red Hat.
[lin03b] FHS Standard, 2003. http://www.pathname.com/fhs
[Fri02] Frisch, A. (2002). Essential System Administration. O'Reilly.
Administracin de GNU/Linux y UNIX. Comenta de forma amplia aspectos de administra-
cin local y gestin de sistemas de impresin.
[Hin00] Hinner, M. "Filesystems HOWTO". The Linux Documentation Project.
Informacin sobre los diferentes sistemas de ficheros disponibles y los esquemas de creacin
de particiones para la instalacin del sistema.
[Koe] Koehntopp, K. "Linux Partition HOWTO". The Linux Documentation Project.
Informacin sobre los diferentes sistemas de ficheros disponibles y los esquemas de creacin
de particiones para la instalacin del sistema.
[Linc] Linux Standards Base project.http://www.linux-foundation.org/en/LSB
[Bas] Mike, G. "BASH Programming - Introduction HOWTO". The Linux Documentation Pro-
ject.
Ofrece una amplia introduccin (y conceptos avanzados) a la programacin de shell scripts
en bash, as como numerosos ejemplos.
[Mor03] Morill, D. (2003). Configuracin de sistemas Linux. Anaya Multimedia.
[Nem06] Nemeth, E.; Snyder, G.; Hein, T. R. (2006). "Linux Administration Handbook"
(2. ed.). Prentice Hall.
Trata de forma amplia la mayora de aspectos de administracin y es una buena guia genrica
para cualquier distribucin.
[Qui01] Quigley, E. (2001). Linux shells by Example. Prentice Hall.
Comenta los diferentes shells de programacin en GNU/Linux, as como sus semejanzas y
diferencias.
[SM02] Schwartz, M. y otros (2002). Multitool Linux - Practical Uses for Open Source Software.
Addison Wesley.
[Smi02] Smith, R. (2002). Advanced Linux Networking. Addison Wesley.
Administracin de GNU/Linux y UNIX. Comenta de forma amplia aspectos de administra-
cin local y gestin de sistemas de impresin.
[Sob10] Sobell, M. G. (2010). A Practical Guide to Fedora and Red Hat Enterprise Linux. Pren-
tice Hall.
GNUFDL PID_00167543 97 Administracin local
Es una buena gua de administracin local para distribuciones Red Hat y Fedora.
[Stu] Stutz, M. "The Linux Cookbook: Tips and Techniques for Everyday Use". The Linux
Documentation Project (guas).
Es una amplia introduccin a las herramientas disponibles en GNU/Linux.
[Gt] Taylor, G.; Allaert, D. "The Linux Printing HOWTO". The Linux Documentation Project.
Ofrece informacin actualizada de los sistemas de impresin y su configuracin, as como
detalles de algunas impresoras. Para detalles concretos de modelos de impresora y controla-
dores, podis dirigiros a:
<http://www.linuxprinting.org/>
[Fed] The Fedora Project. http://fedoraproject.org
[Wm02] Welsh, M. y otros (2002). Running Linux 4th edition. O'Reilly.
Administracin de GNU/Linux y UNIX. Comenta de forma amplia aspectos de administra-
cin local y gestin de sistemas de impresin.
Administracin
de red
Remo Suppi Boldrito
PID_00167544
GNUFDL PID_00167544 Administracin de red
2010, FUOC. Se garantiza permiso para copiar, distribuir y modificar este documento segn los trminos de la GNU Free
Documentation License, Version 1.2 o cualquiera posterior publicada por la Free Software Foundation, sin secciones invariantes ni
textos de cubierta delantera o trasera. Se dispone de una copia de la licencia en el apartado "GNU Free Documentation License" de
este documento.
GNUFDL PID_00167544 Administracin de red
ndice
Introduccin............................................................................................... 5
1. Introduccin a TCP/IP (TCP/IP suite)......................................... 7
1.1. Servicios sobre TCP/IP ................................................................ 7
1.2. Qu es TCP/IP? .......................................................................... 9
1.3. Dispositivos fsicos (hardware) de red ........................................ 10
2. Conceptos en TCP/IP......................................................................... 12
3. Cmo se asigna una direccin Internet?.................................... 15
4. Cmo se debe configurar la red?................................................. 19
4.1. Configuracin de la interfaz (NIC) ............................................. 19
4.1.1. Configuracin de red en (estilo) Fedora ........................ 21
4.1.2. Configuracin de una red Wi-Fi (inalmbrica) .............. 22
4.2. Configuracin del name resolver ............................................... 24
4.2.1. Ejemplo de /etc/resolv.conf............................................... 24
4.2.2. Ejemplo de /etc/host.conf................................................. 25
4.2.3. Ejemplo de /etc/hosts....................................................... 25
4.2.4. Ejemplo del loopback .................................................... 26
4.3. Configuracin del routing............................................................. 26
4.4. Configuracin del inetd .............................................................. 28
4.5. Configuracin adicional: protocols y networks .......................... 31
4.6. Aspectos de seguridad ................................................................. 31
4.7. Opciones del IP ........................................................................... 33
5. Configuracin del DHCP.................................................................. 34
6. IP Aliasing............................................................................................ 36
7. IP Masquerade..................................................................................... 38
8. NAT con el kernel 2.2 o superiores............................................... 40
9. Cmo configurar una conexin DialUP y PPP?....................... 41
10. Configuracin de la red mediante hotplug................................ 44
11. Virtual private network (VPN)........................................................ 46
11.1. Ejemplo simple ............................................................................ 46
GNUFDL PID_00167544 Administracin de red
11.2. Configuracin (manual) de un cliente Debian para acceder a
un VPN sobre un tnel pptp ...................................................... 48
12. Configuraciones avanzadas y herramientas............................... 52
Actividades.................................................................................................. 61
Bibliografa................................................................................................. 62
Anexo............................................................................................................ 63
GNUFDL PID_00167544 5 Administracin de red
Introduccin
El sistema operativo UNIX (GNU/Linux) se toma como ejemplo de una arqui-
tectura de comunicaciones estndar. Desde el mtico UUCP (servicio de co-
pia entre sistemas operativos UNIX) hasta las redes actuales, UNIX siempre
ha mostrado su versatilidad en aspectos relacionados con la comunicacin
y el intercambio de informacin. Con la introduccin de redes de ordenado-
res (rea local LAN, rea amplia WAN o las ms actuales, rea metropolita-
na MAN) ofreciendo enlaces multipunto a diferentes velocidades (56kbits/seg
hasta 1Gbit/seg), han ido surgiendo nuevos servicios basados en protocolos
ms rpidos, portables entre diferentes ordenadores y mejor adaptados, como
el TCP/IP (transport control program / internet protocol) [Com01, Mal96, Cis00,
Gar98, KD00].
GNUFDL PID_00167544 7 Administracin de red
1. Introduccin a TCP/IP (TCP/IP suite)
El protocolo TCP/IP sintetiza un ejemplo de estandarizacin y una voluntad
de comunicacin a nivel global.
El protocolo TCP/IP es en realidad un conjunto de protocolos bsicos
que se han ido agregando al principal para satisfacer las diferentes nece-
sidades en la comunicacin ordenador-ordenador como son TCP, UDP,
IP, ICMP, ARP. [Mal96]
La utilizacin ms frecuente de TCP/IP para el usuario en la actualidad son la
conexin remota a otros ordenadores (telnet, SSH
1
), la utilizacin de ficheros
remotos (NFS
2
) o su transferencia (FTP
3
, HTTP
4
).
1.1. Servicios sobre TCP/IP
Los servicios TCP/IP tradicionales ms importantes son [Gar98]:
a) Transferencia de archivos: el FTP permite a un usuario de un ordenador
obtener/enviar archivos de un ordenador hacia otro ordenador. Para ello, el
usuario deber tener una cuenta, en el ordenador remoto, identificarse a travs
de su nombre (login) y una palabra clave (password) o en ordenadores donde
existe un repositorio de informacin (software, documentacin...), el usuario
se conectar como annimo (anonymous) para transferir (leer) estos archivos a
su ordenador. Esto no es lo mismo que los ms recientes sistemas de archivos
de red, NFS (o protocolos netbios sobre tcp/ip, "invento" totalmente inseguro
sobre Windows y que es mejor reemplazar por una versin ms antigua pero
ms segura del mismo concepto llamado netbeui), que permiten virtualizar el
sistema de archivos de una mquina para que pueda ser accedido en forma
interactiva sobre otro ordenador.
b) Conexin (login) remota: el protocolo de terminal de red (telnet) permite a
un usuario conectarse a un ordenador remotamente. El ordenador local se uti-
liza como terminal del ordenador remoto y todo es ejecutado sobre ste per-
maneciendo el ordenador local invisible desde el punto de vista de la sesin.
Este servicio en la actualidad se ha reemplazado por el SHH por razones de
seguridad. En una conexin remota mediante telnet, los mensajes circulan tal
cual (texto plano), o sea, si alguien "observa" los mensajes en la red, equivaldr
a mirar la pantalla del usuario. SSH codifica la informacin (que significa un
coste aadido a la comunicacin), que hace que los paquetes en la red sean
ilegibles a un nodo extrao.
(1)
Del ingls secure shell.
(2)
Del ingls network file system.
(3)
Del ingls file transfer protocol.
(4)
Del ingls hipertext markup pro-
tocol.
TCP/IP
Utilizacin tpica de TCP/IP re-
mote login:
telnet localhost
Debian GNU/Linux 4.0
login:
GNUFDL PID_00167544 8 Administracin de red
c) eMail: este servicio permite enviar mensajes a los usuarios de otros ordena-
dores. Este modo de comunicacin se ha transformado en un elemento vital
en la vida de los usuarios y permiten que los e-mails (correos electrnicos) sean
enviados a un servidor central para que despus puedan ser recuperados por
medio de programas especficos (clientes) o ledos a travs de una conexin
web.
El avance de la tecnologa y el bajo coste de los ordenadores han permitido
que determinados servicios se hayan especializado en ello y se ofrecen con-
figurados sobre determinados ordenadores trabajando en un modelo cliente-
servidor. Un servidor es un sistema que ofrece un servicio especfico para el
resto de la red. Un cliente es otro ordenador que utiliza este servicio. Todos
estos servicios generalmente son ofrecidos dentro de TCP/IP:
Sistemas de archivos en red (NFS): permite a un sistema acceder a los ar-
chivos sobre un sistema remoto en una forma ms integrada que FTP. Los
dispositivos de almacenamiento (o parte de ellos) son exportados hacia el
sistema que desea acceder y ste los puede "ver" como si fueran dispositi-
vos locales. Este protocolo permite a quien exporta poner las reglas y las
formas de acceso, lo que (bien configurado) hace independiente el lugar
donde se encuentra la informacin fsicamente del sitio donde se "ve" la
informacin.
Impresin remota: permite acceder a impresoras conectadas a otros or-
denadores.
Ejecucin remota: permite que un usuario ejecute un programa sobre otro
ordenador. Existen diferentes maneras de realizar esta ejecucin: o bien a
travs de un comando (rsh, ssh, rexec) o a travs de sistemas con RPC
5
que
permiten a un programa en un ordenador local ejecutar una funcin de un
programa sobre otro ordenador. Los mecanismos RPC han sido objeto de
estudio y existen diversas implementaciones, pero las ms comunes son
Xerox's Courier y Sun's RPC (sta ltima adoptada por la mayora de los
UNIX).
(5)
Del ingls remote procedure call.
Servidores de nombre (name servers): en grandes instalaciones existen un
conjunto de datos que necesitan ser centralizados para mejorar su utiliza-
cin, por ejemplo, nombre de usuarios, palabras clave, direcciones de red,
etc. Todo ello facilita que un usuario disponga de una cuenta para todas
las mquinas de una organizacin. Por ejemplo, Sun's Yellow Pages (NIS
en las versiones actuales de Sun) est diseado para manejar todo este tipo
de datos y se encuentra disponible para la mayora de UNIX. El DNS
6
es
otro servicio de nombres pero que guarda una relacin entre el nombre de
la mquina y la identificacin lgica de esta mquina (direccin IP).
(6)
Del ingls domain name system.
GNUFDL PID_00167544 9 Administracin de red
Servidores de terminal (terminal servers): conecta terminales a un servi-
dor que ejecuta telnet para conectarse al ordenador central. Este tipo de
instalaciones permite bsicamente reducir costes y mejorar las conexiones
al ordenador central (en determinados casos).
Servidores de terminales grficas (network-oriented window systems): per-
miten que un ordenador pueda visualizar informacin grfica sobre un
display que est conectado a otro ordenador. El ms comn de estos siste-
mas es X Window.
1.2. Qu es TCP/IP?
TCP/IP son en realidad dos protocolos de comunicacin entre ordenadores
independientes uno del otro.
Por un lado, TCP
7
, define las reglas de comunicacin para que un ordenador
(host) pueda 'hablar' con otro (si se toma como referencia el modelo de comu-
nicaciones OSI/ISO se describe la capa 4, ver tabla siguiente). TCP es orienta-
do a conexin, es decir, equivalente a un telfono, y la comunicacin se trata
como un flujo de datos (stream).
(7)
Del ingls transmission control
protocol.
Por otro lado, IP
8
, define el protocolo que permite identificar las redes y es-
tablecer los caminos entre los diferentes ordenadores. Es decir, encamina los
datos entre dos ordenadores a travs de las redes. Corresponde a la capa 3 del
modelo OSI/ISO y es un protocolo sin conexin (ver tabla siguiente). [Com01,
Rid00, Dra99]
(8)
Del ingls internet protocol.
Una alternativa al TCP la conforma el protocolo UDP
9
, el cual trata los da-
tos como un mensaje (datagrama) y enva paquetes. Es un protocolo sin cone-
xin
10
y tiene la ventaja de que ejerce una menor sobrecarga en la red que las
conexiones de TCP, pero la comunicacin no es fiable (los paquetes pueden
no llegar o llegar duplicados).
Existe otro protocolo alternativo llamado ICMP
11
. ICMP se utiliza para men-
sajes de error o control. Por ejemplo, si uno intenta conectarse a un equipo
(host), el ordenador local puede recibir un mensaje ICMP indicando "host un-
reachable". ICMP tambin puede ser utilizado para extraer informacin sobre
una red. ICMP es similar a UDP, ya que maneja mensajes (datagramas), pero
es ms simple que UDP, ya que no posee identificacin de puertos
12
en el en-
cabezamiento del mensaje.
(9)
Del ingls user datagram proto-
col.
(10)
El ordenador destino no debe
necesariamente estar escuchando
cuando un ordenador establece
comunicacin con l.
(11)
Del ingls internet control mes-
sage protocol.
(12)
Son buzones donde se deposi-
tan los paquetes de datos y desde
donde las aplicaciones servidoras
leen dichos paquetes.
En el modelo de comunicaciones de la OSI
13
/ISO
14
, es un modelo terico adop-
tado por muchas redes. Existen siete capas de comunicacin, de las que cada
una tiene una interfaz para comunicarse con la anterior y la posterior:
(13)
Del ingls open systems inter-
connection reference model.
GNUFDL PID_00167544 10 Administracin de red
Nivel Nombre Utilizacin
7 Aplicacin
SMTP
15
, el servicio propiamente dicho
6 Presentacin Telnet, FTP implementa el protocolo del servicio
5 Sesin Generalmente no se utiliza
4 Transporte TCP, UDP transformacin de acuerdo a protocolo de comunicacin
3 Red IP permite encaminar el paquete (routing)
2 Link Controladores (drivers) transformacin de acuerdo al protocolo fsi-
co
1 Fsico Ethernet, ADSL, ... enva del paquete fsicamente
En resumen, TCP/IP es una familia de protocolos (que incluyen IP, TCP, UDP)
que proveen un conjunto de funciones a bajo nivel utilizadas por la mayora
de las aplicaciones. [KD00, Dra99].
(14)
Del ingls international stan-
dards organization.
(15)
Del ingls simple mail transfer
protocol.
Algunos de los protocolos que utilizan los servicios mencionados han sido
diseados por Berkeley, Sun u otras organizaciones. Ellos no forman oficial-
mente parte de Internet Protocol Suite (IPS). Sin embargo, son implementa-
dos utilizando TCP/IP y por lo tanto considerados como parte formal de IPS.
Una descripcin de los protocolos disponibles en Internet puede consultarse la
RFC 1011 (ver referencias sobre RFC [IET]), que lista todos los protocolos dis-
ponibles. Existe actualmente una nueva versin del protocolo IPv6, tambin
llamado IPng
16
que reemplaza al IPv4. Este protocolo mejora notablemente
el anterior en temas tales como mayor nmero de nodos, control de trfico,
seguridad o mejoras en aspectos de routing.
1.3. Dispositivos fsicos (hardware) de red
Desde el punto de vista fsico (capa 1 del modelo OSI), el hardware ms utili-
zado para LAN es conocido como Ethernet (o FastEthernet o GigaEthernet).
Sus ventajas son su bajo coste, velocidades aceptables (10, 100, o 1.000 mega-
bits por segundo) y facilidad en su instalacin.
Existen tres modos de conexin en funcin del tipo de cable de inter-
conexin: grueso (thick), fino (thin) y par trenzado (twisted par).
(16)
Del ingls IP next generation.
Las dos primeras estn obsoletas (utilizan cable coaxial), mientras que la lti-
ma se realiza a travs de cables (pares) trenzados y conectores similares a los
telefnicos (se conocen como RJ45). La conexin par trenzado es conocida
como 10baseT o 100baseT (segn la velocidad) y utiliza repetidores llamados
hubs como puntos de interconexin. La tecnologa Ethernet utiliza elementos
intermedios de comunicacin (hubs, switchs, routers) para configurar mltiples
(17)
Del ingls fiber distributed data
interface.
GNUFDL PID_00167544 11 Administracin de red
segmentos de red y dividir el trfico para mejorar las prestaciones de transfe-
rencia de informacin. Normalmente, en las grandes instituciones estas LAN
Ethernet estn interconectadas a travs de fibra ptica utilizando tecnologa
FDDI
17
que es mucho ms cara y compleja de instalar, pero se pueden obtener
velocidades de transmisin equivalentes a Ethernet y no tienen la limitacin
de la distancia de sta (FDDI admite distancias de hasta 200 km). Su coste se
justifica para enlaces entre edificios o entre segmentos de red muy congestio-
nados. [Rid00, KD00]
Existe adems otro tipo de hardware menos comn, pero no menos intere-
sante como es ATM
18
. Este hardware permite montar LAN con una calidad de
servicio elevada y es una buena opcin cuando deben montarse redes de alta
velocidad y baja latencia, como por ejemplo aquellas que involucren distribu-
cin de vdeo en tiempo real.
Existe otro hardware soportado por GNU/Linux para la interconexin de or-
denadores, entre los cuales podemos mencionar: Frame Relay o X.25, utilizada
en ordenadores que acceden o interconectan WAN y para servidores con gran-
des necesidades de transferencias de datos; Packet Radio, interconexin va ra-
dio utilizando protocolos como AX.25, NetRom o Rose, o dispositivos dialing
up, que utilizan lneas series, lentas pero muy baratas, a travs de un mdem
analgico o digital (RDSI, DSL, ADSL, etc.). Estas ltimas son las que comn-
mente se utilizan en pymes o uso domstico y requieren otro protocolo para
la transmisin de paquetes, tal como SLIP o PPP. Para virtualizar la diversidad
de hardware sobre una red, TCP/IP define una interfaz abstracta mediante la
cual se concentrarn todos los paquetes que sern enviados por un dispositivo
fsico (lo cual tambin significa una red o un segmento de esta red). Por ello,
por cada dispositivo de comunicacin en la mquina tenderemos una interfaz
correspondiente en el kernel del sistema operativo.
Ethernet
Ethernet en GNU/Linux se llaman con ethx (donde en todas, x indica un nmero de
orden comenzando por 0), la interfaz a lneas series (mdem) se llaman por pppx (para
PPP) o slx (para SLIP), para FDDI son fddix. Estos nombres son utilizados por los coman-
dos para configurar sus parmetros y asignarles el nmero de identificacin que poste-
riormente permitir comunicarse con otros dispositivos en la red.
(18)
Del ingls asynchronous transfer
mode.
En GNU/Linux puede significar tener que incluir los mdulos adecuados para
el dispositivo (NIC
19
) adecuado (en el kernel o como mdulos), esto significa
compilar el kernel despus de haber escogido con, por ejemplo, make menu-
config el NIC adecuado, indicndole como interno o como mdulo (en este
ltimo caso se deber compilar el mdulo adecuado tambin).
Los dispositivos de red se pueden mirar en el directorio /dev, que es donde
existe un archivo (especial, ya sea de bloque o de caracteres segn su transfe-
rencia), que representa a cada dispositivo hardware [KD00, Dra99].
(19)
Del ingls network interface
card.
ifconfig -a
Para ver las interfaces de red
disponibles hay que aplicar el
comando ifconfig -a. Este co-
mando muestra todas las inter-
faces/parmetros por defecto
de cada una.
GNUFDL PID_00167544 12 Administracin de red
2. Conceptos en TCP/IP
Como se ha observado, la comunicacin significa una serie de conceptos que
ampliaremos a continuacin [Mal96, Com01]:
Internet/intranet: el trmino intranet se refiere a la aplicacin de tecno-
logas de Internet (red de redes) dentro de una organizacin, bsicamente
para distribuir y tener disponible informacin dentro de la compaa. Por
ejemplo, los servicios ofrecidos por GNU/Linux como servicios Internet e
intranet incluyen correo electrnico, WWW, news, etc.
Nodo: se denomina nodo (host) a una mquina que se conecta a la red (en
un sentido amplio, un nodo puede ser un ordenador, una impresora, una
torre (rack) de CD, etc.), es decir, un elemento activo y diferenciable en la
red que reclama o presta algn servicio y/o comparte informacin.
Direccin de red Ethernet (Ethernet address o MAC address): un nmero
de 48 bits (por ejemplo 00:88:40:73:AB:FF -en octal- 0000 0000 1000 1000
0100 0000 0111 0011 1010 1011 1111 1111 -en binario-) que se encuentra
en el dispositivo fsico (hardware) del controlador (NIC) de red Ethernet y
es grabado por el fabricante del mismo (este nmero debe ser nico en el
mundo, por lo que cada fabricante de NIC tiene un rango preasignado).
Host name: cada nodo debe tener adems un nico nombre en la red.
Ellos pueden ser slo nombres o bien utilizar un esquema de nombres
jerrquico basado en dominios (hierarchical domain naming scheme). Los
nombres de los nodos deben ser nicos, lo cual resulta fcil en pequeas
redes, ms dificultoso en redes extensas, e imposible en Internet si no se
realiza algn control. Los nombres deben ser de un mximo de 32 carac-
teres entre a-zA-Z0-9.-, y que no contengan espacios o # comenzando por
un carcter alfabtico.
Nota
Nombre de la mquina:
more /etc/hostname.
Direccin de Internet (IP address): est compuesto por cuatro nmeros
en el rango 0-255 separados por puntos (por ejemplo, 192.168.0.1) y se
utiliza universalmente para identificar los ordenadores sobre una red o
Internet. La traslacin de nombres en direcciones IP la realiza un servidor
DNS (domain name system) que transforma los nombres de nodo (legibles
por humanos) en direcciones IP (este servicio lo realiza una aplicacin
denominada named).
Nota
Direccin IP de la mquina:
more /etc/hosts.
GNUFDL PID_00167544 13 Administracin de red
Puerto (port): identificador numrico del buzn en un nodo que permite
que un mensaje (TCP, UDP) pueda ser ledo por una aplicacin concreta
dentro de este nodo (por ejemplo, dos mquinas que se comuniquen por
telnet lo harn por el puerto 23, pero estas mismas mquinas pueden te-
ner una comunicacin ftp por el puerto 21). Se pueden tener diferentes
aplicaciones comunicndose entre dos nodos a travs de diferentes puer-
tos simultneamente.
Nota
Puertos preasignados en UNIX:
more /etc/services. Este co-
mando muestra los puertos
predefinidos por orden y se-
gn soporten TCP o UDP.
Nodo router (gateway): es un nodo que realiza encaminamientos (transfe-
rencia de datos routing). Un router, segn sus caractersticas, podr transfe-
rir informacin entre dos redes de protocolos similares o diferentes y pue-
de ser adems selectivo.
Nota
Visualizacin de la configura-
cin del routing: netstat -r.
Domain name system (DNS): permite asegurar un nico nombre y facili-
tar la administracin de las bases de datos que realizan la traslacin entre
nombre y direccin de Internet y se estructuran en forma de rbol. Para
ello, se especifican dominios separados por puntos, de los que el ms alto
(de derecha a izquierda) describe una categora, institucin o pas (COM,
comercial, EDU, educacin, GOV, gubernamental, MIL, militar (gobierno),
ORG, sin fin de lucro, XX dos letras por pas, o en casos especiales tres letras
CAT lengua y cultura catalana...). El segundo nivel representa la organiza-
cin, el tercero y restantes departamentos, secciones o divisiones dentro de
una organizacin (por ejemplo, www.uoc.edu o nteum@pirulo.remix.es).
Los dos primeros nombres (de derecha a izquierda, uoc.edu en el primer
caso, remix.es (en el segundo) deben ser asignados (aprobados) por el SRI-
NIC (rgano mundial gestor de Internet) y los restantes pueden ser confi-
gurados/asignados por la institucin.
DHCP, bootp: DHCP y bootp son protocolos que permiten a un nodo
cliente obtener informacin de la red (tal como la direccin IP del nodo).
Muchas organizaciones con gran cantidad de mquinas utilizan este me-
canismo para facilitar la administracin en grandes redes o donde existe
una gran cantidad de usuarios mviles.
Nota
Dominio y quin es nuestro
servidor de DNS: more /etc/
default domain; more /etc/
resolv.conf.
ARP, RARP: en algunas redes (como por ejemplo IEEE 802 LAN, que es
el estndar para Ethernet), las direcciones IP son descubiertas automtica-
mente a travs de dos protocolos miembros de IPS: ARP
20
y RARP
21
. ARP
utiliza mensajes (broadcast messages) para determinar la direccin Ethernet
(especificacin MAC de la capa 3 del modelo OSI) correspondiente a una
direccin de red particular (IP). RARP utiliza mensajes de tipo broadcast
(mensaje que llega a todos los nodos) para determinar la direccin de red
asociada con una direccin hardware en particular. RARP es especialmente
importante en mquinas sin disco, en las cuales la direccin de red gene-
ralmente no se conoce en el momento del inicio (boot).
Biblioteca de sockets: en UNIX toda la implementacin de TCP/IP forma
parte del kernel del sistema operativo (o bien dentro del mismo o como un
(20)
Del ingls address resolution pro-
tocol.
(21)
Del ingls reverse address resolu-
tion protocol.
Nota
Tablas de arp:
arp a NombreNodo.
GNUFDL PID_00167544 14 Administracin de red
mdulo que se carga en el momento del inicio como el caso de GNU/Linux
con los controladores de dispositivos).
La forma de utilizarlas por un programador es a travs de la API
22
que imple-
menta ese operativo. Para TCP/IP, la API ms comn es la Berkeley Socket Li-
brary (Windows utiliza una librera equivalente que se llama Winsocks). Esta
biblioteca permite crear un punto de comunicacin (socket), asociar ste a una
direccin de un nodo remoto/puerto (bind) y ofrecer el servicio de comunica-
cin (a travs de connect, listen, accept, send, sendto, recv, recvfrom, por ejemplo).
La biblioteca provee, adems de la forma ms general de comunicacin (fami-
lia AF INET), comunicaciones ms optimizadas para casos en que los procesos
se comunican en la misma mquina (familia AF UNIX). En GNU/Linux, la
biblioteca de sockets es parte de la biblioteca estndar de C, Libc, (Libc6 en
las versiones actuales), y soporta AF_INET, AF_UNIX, AF_IPX (para protocolos
de redes Novell), AF_X25 (para el protocolo X.25), AF_ATMPVC-AF_ATMSVC
(para el protocolo ATM) y AF_AX25, F_NETROM, AF_ROSE (para el amateur
radio protocol).
(22)
Del ingls application program-
ming interface.
GNUFDL PID_00167544 15 Administracin de red
3. Cmo se asigna una direccin Internet?
Esta direccin es asignada por el SRI-NIC y tiene dos campos. El izquier-
do representa la identificacin de la red y el derecho la identificacin
del nodo. Considerando lo mencionado anteriormente (4 nmeros en-
tre 0-255, o sea 32 bits o cuatro bytes), cada byte representa o bien la
red o bien el nodo. La parte de red es asignada por el SRI-NIC y la parte
del nodo es asignada por la institucin o el proveedor).
Existen algunas restricciones: 0 (por ejemplo, 0.0.0.0) en el campo de red est
reservado para el routing por defecto y 127 (por ejemplo, 127.0.0.1) es reser-
vado para la autorreferencia (local loopback o local host), 0 en la parte de nodo
se refiere a esta red (por ejemplo, 192.168.0.0) y 255 es reservado para paque-
tes de envo a todas las mquinas (broadcast) (por ejemplo, 198.162.255.255).
En las diferentes asignaciones se puede tener diferentes tipos de redes o direc-
ciones:
Clase A (red.host.host.host): 1.0.0.1 a 126.254.254.254 (126 redes, 16 mi-
llones de nodos) definen las grandes redes. El patrn binario es: 0 + 7 bits
red + 24 bits de nodos.
Clase B (red.red.host.host): 128.1.0.1 a 191.255.254.254 (16K redes, 65K no-
dos) generalmente se utiliza el primer byte de nodo para identificar subre-
des dentro de una institucin). El patrn binario es 10 + 14 bits de red +
16 bits de nodos.
Clase C (red.red.red.host): 192.1.1.1 a 223.255.255.254 (2 millones de bits
de redes, 254 de nodos). El patrn binario es 110 + 21 bits red + 8 bits
de nodos.
Clase D y E (red.red.red.host): 224.1.1.1 a 255.255.255.254 reservado para
multicast (desde un nodo a un conjunto de nodos que forman parte de un
grupo) y propsitos experimentales.
Algunos rangos de direcciones han sido reservados para que no correspondan
a redes pblicas, sino a redes privadas y los mensajes no sern encaminados
a travs de Internet, lo cual es comnmente conocido como Intranet. stas
son para la clase A 10.0.0.0 hasta 10.255.255.255, clase B 172.16.0.0 hasta
172.31.0.0 y clase C 192.168.0.0 hasta 192.168.255.0.
Redes privadas
Mquinas que se conectan en-
tre ellas sin tener conexin con
el exterior.
GNUFDL PID_00167544 16 Administracin de red
La direccin de broadcast es especial, ya que cada nodo en una red escucha
todos los mensajes (adems de su propia direccin). Esta direccin permite
que datagramas, generalmente informacin de routing y mensajes de aviso,
puedan ser enviados a una red y todos los nodos del mismo segmento de red
los puedan leer. Por ejemplo, cuando ARP busca encontrar la direccin Ether-
net correspondiente a una IP, ste utiliza un mensaje de broadcast, el cual es
enviado a todas las mquinas de la red simultneamente. Cada nodo en la red
lee este mensaje y compara la IP que se busca con la propia y le retorna un
mensaje al nodo que hizo la pregunta si hay coincidencia.
Dos conceptos complementarios a lo descrito anteriormente es el de subre-
des y routing entre ellas. Subredes significa subdividir la parte del nodo en
pequeas redes dentro de la misma red para, por ejemplo, mejorar el trfico.
Una subred toma la responsabilidad de enviar el trfico a ciertos rangos de di-
recciones IP extendiendo el mismo concepto de redes A, B, C, pero slo apli-
cando esta redireccin en la parte nodo de la IP. El nmero de bits que son
interpretados como identificador de la subred es dado por una mscara de red
(netmask) que es un nmero de 32 bits (igual que la IP).
Para obtener el identificador de la subred, se deber hacer una operacin lgica
Y (AND) entre la mscara y la IP, lo cual dar la IP de la subred.
Por ejemplo, sea una institucin que tiene una red clase B con nmero
172.17.0.0, y su netmask es, por lo tanto, 255.255.0.0. Internamente, esta red
est formada por pequeas redes (una planta del edificio, por ejemplo). As,
el rango de direcciones es reasignado en 20 subnets (plantas para nosotros)
172.17.1.0 hasta 172.17.20.0. El punto que conecta todas estas plantas (back-
bone) tiene su propia direccin, por ejemplo 172.17.1.0.
Estas subredes comparten el mismo IP de red, mientras que el tercero es utili-
zado para identificar cada una de las subredes dentro de ella (por eso se utili-
zar una mscara de red 255.255.255.0).
El segundo concepto, routing, representa el modo en que los mensajes son
enviados a travs de las subredes.
Por ejemplo, sean tres departamentos con subredes Ethernet:
Compras (subred 172.17.2.0).
Clientes (subred 172.17.4.0).
Recursos humanos, RR.HH., (subred 172.17.6.0).
Backbone con FFDI (subred 172.17.1.0).
Para encaminar los mensajes entre los ordenadores de las tres redes, se necesi-
tarn tres puertas de intercambio (gateways), que tendrn cada una dos inter-
faces de red para cambiar entre Ethernet y FFDI. stas sern:
GNUFDL PID_00167544 17 Administracin de red
CromprasGW IPs:172.17.2.1 y 172.17.1.1,
ClientesGW IPs:172.17.4.1 y 172.17.1.2
RRHHGW IPs:172.17.6.1 y 172.17.1.3, es decir, una IP hacia el lado de la
subnet y otra hacia el backbone.
Cuando se envan mensajes entre mquinas de compras, no es necesario salir
al gateway, ya que el protocolo TCP/IP encontrar la mquina directamente.
El problema est cuando la mquina Compras0 quiere enviar un mensaje a
RRHH3. El mensaje debe circular por los dos gateways respectivos. Cuando
Compras0 "ve" que RRHH3 est en otra red, enva el paquete a travs del ga-
teway ComprasGW, que a su vez se lo enviar a RRHHGW y que a su vez se
lo enviar a RRHH3. La ventaja de las subredes es clara, ya que el trfico entre
todas las mquinas de compras, por ejemplo, no afectar a las mquinas de
clientes o de recursos humanos (si bien significa un planteamiento ms com-
plejo y caro a la hora de disear, y construir la red).
Figura 1. Configuracin de segmentos y gateways en una Intranet
IP utiliza una tabla para hacer el routing de los paquetes entre las diferentes
redes y en la cual existe un routing por defecto asociado a la red 0.0.0.0. Todas
las direcciones que coinciden con sta, ya que ninguno de los 32 bits son
necesarios, son enviadas por el gateway por defecto (default gateway) hacia la
red indicada. Sobre comprasGW, por ejemplo, la tabla podra ser:
Direccin Mscara Gateway Interfaz
172.17.1.0 255.255.255.0 - fddi0
172.17.4.0 255.255.255.0 172.17.1.2 fddi0
172.17.6.0 255.255.255.0 172.17.1.3 fddi0
0.0.0.0 0.0.0.0 172.17.2.1 fddi0
172.17.2.0 255.255.255.0 - eth0
GNUFDL PID_00167544 18 Administracin de red
El '-' significa que la mquina est directamente conectada y no necesita rou-
ting. El procedimiento para identificar si se realiza el routing o no, se lleva
a cabo a travs de una operacin muy simple con dos AND lgicos (subred
AND mask y origen AND mask) y una comparacin entre los dos resultados. Si
son iguales no hay routing, sino que se debe enviar la mquina definida como
gateway en cada mquina para que sta realice el routing del mensaje.
Por ejemplo, un mensaje de la 172.17.2.4 hacia la 172.17.2.6 significar:
172.17.2.4 AND 255.255.255.0 = 172.17.2.0
172.17.2.6 AND 255.255.255.0 = 172.17.2.0
Como los resultados son iguales, no habr routing. En cambio, si hacemos lo
mismo con 172.17.2.4 hacia 172.17.6.6 podemos ver que habr un routing a
travs del 172.17.2.1 con un cambio de interfaz (eth0 a ffdi0) a la 172.17.1.1
y de sta hacia la 172.17.1.2 con otro cambio de interfaz (fddi0 a eth0) y lue-
go hacia la 172.17.6.6. El routing, por defecto, se utilizar cuando ninguna
regla satisfaga la coincidencia. En caso de que dos reglas coincidan, se utilizar
aquella que lo haga de modo ms preciso, es decir, la que menos ceros tenga.
Para construir las tablas de routing, se puede utilizar el comando route durante
el arranque de la mquina, pero si es necesario utilizar reglas ms complejas
(o routing automtico), se puede utilizar el RIP
23
o entre sistemas autnomos,
el EGP
24
o tambin el BGP
25
. Estos protocolos se implementan en el comando
gated.
Para instalar una mquina sobre una red existente, es necesario, por lo
tanto, disponer de la siguiente informacin obtenida del proveedor de
red o de su administrador: direccin IP del nodo, direccin de la red IP,
direccin de broadcast, direccin de mscara de red, direccin de router,
direccin del DNS.
Si se construye una red que nunca tendr conexin a Internet, se pueden esco-
ger las direcciones que se prefieran, pero es recomendable mantener un orden
adecuado en funcin del tamao de red que se desee tener y para evitar pro-
blemas de administracin dentro de dicha red. A continuacin, se ver cmo
se define la red y el nodo para una red privada (hay que ser cuidadoso, ya que
si se tiene la mquina conectada a la red, se podra perjudicar a otro usuario
que tuviera asignada esta direccin).
(23)
Del ingls routing information
protocol.
(24)
Del ingls external gateway pro-
tocol.
(25)
Del ingls border gateway proto-
col.
GNUFDL PID_00167544 19 Administracin de red
4. Cmo se debe configurar la red?
4.1. Configuracin de la interfaz (NIC)
Una vez cargado el kernel de GNU/Linux, ste ejecuta el comando init que
a su vez lee el archivo de configuracin /etc/inittab y comienza el proceso de
inicializacin. Generalmente, el inittab tiene secuencias tales como:
si::sysinit:/etc/init.d/boot, que representa el nombre del archivo de comandos
(script) que controla las secuencias de inicializacin. Generalmente este script
llama a otros scripts, entre los cuales se encuentra la inicializacin de la red.
Ejemplo
En Debian se ejecuta etc/init.d/network para la configuracin de la interfaz de red y en
funcin del nivel de arranque; por ejemplo, en el 2 se ejecutarn todos los ficheros S*
del directorio /etc/rc2.d (que son enlaces al directorio /etc/initd), y en el nivel de apagado,
todos los K* del mismo directorio. De este modo, el script est slo una vez (/etc/init.d)
y de acuerdo a los servicios deseados en ese estado se crea un enlace en el directorio
correspondiente a la configuracin del nodo-estado.
Los dispositivos de red se crean automticamente cuando se inicializa el hard-
ware correspondiente. Por ejemplo, el controlador de Ethernet crea las interfa-
ces eth[0..n] secuencialmente cuando se localiza el hardware correspondiente.
A partir de este momento, se puede configurar la interfaz de red, lo cual impli-
ca dos pasos: asignar la direccin de red al dispositivo e inicializar los parme-
tros de la red al sistema. El comando utilizado para ello es el ifconfig (interfaz
configure). Un ejemplo ser:
ifconfig eth0 192.168.110.23 netmask 255.255.255.0 up
Lo cual indica configurar el dispositivo eth0 con direccin IP 192.168.110.23
y mscara de red 255.255.255.0. El up indica que la interfaz pasar al estado
activo (para desactivarla debera ejecutarse ifconfig eth0 down). El comando
asume que si algunos valores no se indican, son tomados por defecto. En este
caso, el kernel configurar esta mquina como Tipo-C y configurar la red con
192.168.110.23 y la direccin de broadcast con 192.168.110.255. Por ejemplo:
ifconfig eth0 192.168.110.23 netmask 255.255.255.0 up
Existen comandos como el ifup e ifdown, que permite configurar-desactivar la
red en forma ms simple utilizando el archivo /etc/network/interfaces para obte-
ner todos los parmetros necesarios (consultar man interfaces para su sintaxis).
Nota
Consultar man ifconfig para
las diferentes opciones del co-
mando.
GNUFDL PID_00167544 20 Administracin de red
En Debian, con el fin de facilitar la configuracin de la red, existe otra forma
de configurar la red (considerada de alto nivel) que utiliza los comandos men-
cionados anteriormente ifup, ifdown y el archivo /etc/network/interfaces. Si se
decide utilizar estos comandos, no se debera configurar la red a bajo nivel, ya
que estos comandos son suficientes para configurar/desactivar la red.
Para modificar los parmetros
26
de red de la interfaz eth0, se puede hacer:
ifdown eth0
para todos los servicios de red sobre eth0
vi /etc/network/interfaces
edite y modifique los que necesite
ifup eth0
pone en marcha los servicios de red sobre eth0
(26)
Consultar man interfaces en la seccin 5 del manual para ms informacin del formato.
Supongamos que desea configurar sobre Debian una interfaz eth0 que tiene
una direccin IP fija 192.168.0.123 y con 192.168.0.1 como puerta de enlace
(gateway). Se debe editar /etc/network/interfaces de modo que incluya una sec-
cin como:
iface eth0 inet static
address 192.168.0.123
netmask 255.255.255.0
gateway 192.168.0.1
Si tiene instalado el paquete resolvconf puede aadir lneas para especificar la
informacin relativa al DNS. Por ejemplo:
iface eth0 inet static
address 192.168.0.123
netmask 255.255.255.0
gateway 192.168.0.1
dns-search remix.org
dns-nameservers 195.238.2.21 195.238.2.22
Despus de que se active la interfaz, los argumentos de las opciones
dns-search y dns-nameservers quedan disponibles para la inclusin en resolv.conf.
El argumento remix.org de la opcin dns-search corresponde al argumento de
la opcin search en resolv.conf y los argumentos 195.238.2.21 y 195.238.2.22
de la opcin dns-nameservers corresponden a los argumentos de las opciones
nameserver en resolv.conf. Tambin se puede configurar la red a bajo nivel a
travs del comando ip (que es equivalente a ifconfig y route). Si bien este
Nota: resolv.conf
Deberis consultar el manual
para consultar man resolv.conf.
GNUFDL PID_00167544 21 Administracin de red
comando es mucho ms verstil y potente (permite establecer tneles, routing
alternativos, etc.) es ms complejo y se recomienda utilizar los procedimientos
anteriores para configuraciones bsicas de la red.
4.1.1. Configuracin de red en (estilo) Fedora
Red Hat y Fedora utilizan diferente estructura de ficheros para la configuracin
de la red: /etc/sysconfig/network. Por ejemplo, para la configuracin esttica
de la red:
NETWORKING=yes
HOSTNAME=my-hostname
Nombre del host definido por el cmd hostname
FORWARD_IPV4=true
True para NAT firewall gateways y routers.
False para cualquier otro caso
GATEWAY="XXX.XXX.XXX.YYY"
Direccin IP de la Puerta de salida a Internet.
Para configuracin por DHCP se debe quitar la lnea de gateway, ya que ser
asignada por el servidor. Y en caso de incorporar NIS debe agregarse una lnea
con el servidor de dominio: NISDOMAIN=NISProject1.
Para configurar la interfaz eth0 en el archivo /etc/sysconfig/network-scripts/ifcfg-
eth0 (reemplazar las X con los valores adecuados):
DEVICE=eth0
BOOTPROTO=static
BROADCAST=XXX.XXX.XXX.255
IPADDR=XXX.XXX.XXX.XXX
NETMASK=255.255.255.0
NETWORK=XXX.XXX.XXX.0
ONBOOT=yes Activar la red en el boot
Tambin a partir de FC3 se pueden agregar:
TYPE=Ethernet
HWADDR=XX:XX:XX:XX:XX:XX
GATEWAY=XXX.XXX.XXX.XXX
IPV6INIT=no
USERCTL=no
PEERDNS=yes
GNUFDL PID_00167544 22 Administracin de red
O sino para configuracin por DHCP:
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=dhcp
Para deshabilitar DCHP, hay que cambiar BOOTPROTO=dhcp a
BOOTPROTO=none. Cualquier cambio en estos ficheros deber reiniciar los
servicios con service network restart (o sino /etc/init.d/network restart).
Para cambiar el nombre del host se deben seguir estos tres pasos:
1) El comando hostname nombre-nuevo.
2) Cambiar la configuracin de la red en /etc/sysconfig/network editando:
HOSTNAME=nombre-nuevo.
3) Restaurando los servicios (o haciendo un reboot):
service network restart (o /etc/init.d/network restart).
Reiniciando el desktop pasando a modo consola init 3 y cambiando a modo
GUI init 5.
Verificar si el nombre tampoco est dado de alta en el /etc/hosts. El
hostname puede ser cambiado en tiempo de ejecucin con sysctl -w
kernel.hostname="nombre-nuevo".
4.1.2. Configuracin de una red Wi-Fi (inalmbrica)
Para la configuracin de interfaces Wi-Fi se utilizan bsicamente el paquete
wireless-tools (adems de ifconfig o ip). Este paquete utiliza el comando iw-
config para configurar una interfaz inalmbrica, pero tambin se puede hacer
a travs del /etc/network/interfaces.
Ejemplo: Configurar una WiFi en Debian (similar en FC)
Supongamos que queremos configurar una tarjeta de red inalmbrica Intel
Pro/Wireless 2200BG (muy comn en una gran cantidad de porttiles p. ej.,
Dell, HP, ...). Normalmente, el software que controla las tarjetas se divide en
dos partes: el mdulo software que se cargar en el kernel a travs del comando
modprobe y el firmware, que es el cdigo que se cargar en la tarjeta y que nos
da el fabricante (consultar la pgina de Intel para este modelo). Como estamos
hablando de mdulos, es interesante utilizar el paquete de Debian module-as-
sistant, que nos permite crear e instalar fcilmente un mdulo (otra opcin
GNUFDL PID_00167544 23 Administracin de red
sera instalar las fuentes y crear el mdulo correspondiente). El software (lo
encontramos en la pgina del fabricante y lo denomina ipw2200) lo compila-
remos e instalaremos con el comando m-a del paquete module-assistant.
aptget install module-assistant instalacin del paquete
m-a -t update
m-a -t -f get ipw2200
m-a -t -build ipw2200
m-a -t install ipw2200
Desde la direccin indicada por el fabricante (en su documentacin), se des-
carga la versin del firmaware compatible con la versin del driver, en nuestro
caso para el driver versin 1.8 el firmaware es la 2.0.4 obtenida desde la pgina:
http://ipw2200.sourceforge.net/firmware.php. Y a continuacin se descom-
prime e instala el firmaware:
tar xzvf ipw2200fw2.4.tgz C /tmp/fwr/
cp /tmp/fwr/*.fw /usr/lib/hotplug/firmware/
Con esto se copiarn tres paquetes (ipw2200-bss.fw, ipw2200-ibss.fw y
ipw2200-sniffer.fw). Luego se carga el mdulo con: modprobe ipw2200, se
reinicia el sistema (reboot) y luego, desde la consola, podemos hacer dmesg
| grep ipw, este comando nos mostrar algunas lneas similares a las que se
muestran a continuacin y que indicarn que el mdulo est cargado (se pue-
de verificar con lsmod):
ipw2200: Intel(R) PRO/Wireless 2200/2915 Network Driver, git1.0.8
ipw2200: Detected Intel PRO/Wireless 2200BG Network Connection
...
Luego se descarga el paquete wirelesstools que contiene iwconfig y, entre otras,
con aptget install wirelesstools y ejecutamos iwconfig; saldr algo parecido
a:
eth1 IEEE 802.11b ESSID:"Nombre-de-la-Wifi"
Mode:Managed Frequency:2.437 GHz
Access Point:00:0E:38:84:C8:72
Bit Rate=11 Mb/s TxPower=20 dBm
Security mode:open
...
GNUFDL PID_00167544 24 Administracin de red
A continuacin, hay que configurar el archivo de redes, por ejemplo, gedit
/etc/network/interfaces y aadir la interfaz wifi eth1, por ejemplo:
iface eth1 inet dhcp
pre-up iwconfig eth1 essid "Nombre de la Wifi"
pre-up iwconfig eth1 key open XXXXXXXXXX
La lnea pre-up ejecuta el comando iwconfig antes de activar la interfaz. Esta
configuracin es para cuando se quiere utilizar un servicio en modo DHCP
(asignacin automtica de IP); se debe utilizar en vez de dhcp la palabra static y
adems poner las siguientes lneas, por ejemplo (como en una tarjeta de cable):
address 192.168.1.132
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.0.255
gateway 192.168.1.1
Un mtodo alternativo para configurar la interfaz es:
iface eth1 inet dhcp
wireless-essid "Nombre de la Wifi"
wireless-key 123456789e
A continuacin se puede poner en marcha la red con ifup eth1 y nos dar in-
formacin sobre la conexin y nos indicar su estado y calidad de recepcin.
Para buscar (scan) las redes WiFi disponibles (puntos de acceso) podemos uti-
lizar iwlist scan, lo que nos mostrar informacin de las redes disponibles, y si
nos queremos conectar a una diferente, se puede utilizar el comando iwconfig
para cambiar de red o punto de acceso (access point).
4.2. Configuracin del name resolver
El siguiente paso es configurar el name resolver, que convierte nombres tales
como pirulo.remix.com en 192.168.110.23. El archivo /etc/resolv.conf es el utili-
zado para tal fin. Su formato es muy simple (una lnea de texto por sentencia).
Existen tres palabras clave para tal fin: domain (dominio local), search (lista de
dominios alternativos) y name server (la direccin IP del domain name server).
4.2.1. Ejemplo de /etc/resolv.conf
domain remix.com
search remix.com piru.com
GNUFDL PID_00167544 25 Administracin de red
name server 192.168.110.1
name server 192.168.110.65
Esta lista de servidores de nombre a menudo dependen del entorno de red, que
puede cambiar dependiendo de dnde est o se conecte la mquina. Los pro-
gramas de conexin a lneas telefnicas (pppd) u obtencin de direcciones IP
automticamente (dhclient) son capaces de modificar resolv.conf para insertar
o eliminar servidores, pero esta caracterstica no siempre funciona adecuada-
mente y a veces puede entrar en conflicto y generar configuraciones errneas.
El paquete resolvconf (an en unstable) soluciona de forma adecuada el pro-
blema y permite una configuracin simple de los servidores de nombre en for-
ma dinmica. resolvconf est diseado para funcionar sin que sea necesaria
ninguna configuracin manual, no obstante, el paquete es bastante nuevo y
puede requerir alguna intervencin para lograr que funcione adecuadamente.
Un archivo importante es el /etc/host.conf, que permite configurar el compor-
tamiento del name resolver. Su importancia reside en indicar dnde se resuelve
primero la direccin o el nombre de un nodo. Esta consulta puede hacerse al
servidor DNS o a tablas locales dentro de la mquina actual (/etc/hosts).
4.2.2. Ejemplo de /etc/host.conf
order hosts,bind
multi on
Esta configuracin indica que primero se verifique el /etc/hosts antes de soli-
citar una peticin al DNS y tambin indica (2. lnea) que retorne todas las
direcciones vlidas que se encuentren en /etc/hosts. Por lo cual, el archivo
/etc/hosts es donde se colocan las direcciones locales o tambin sirve para
acceder a nodos sin tener que consultar al DNS.
La consulta es mucho ms rpida, pero tiene la desventaja de que si el nodo
cambia, la direccin ser incorrecta. En un sistema correctamente configurado,
slo debern aparecer el nodo local y una entrada para la interfaz loopback.
4.2.3. Ejemplo de /etc/hosts
127.0.0.1 localhost loopback
192.168.1.2 pirulo.remix.com pirulo
Para el nombre de una mquina pueden utilizarse alias, que significa que esa
mquina puede llamarse de diferentes maneras para la misma direccin IP. En
referencia a la interfaz loopback, ste es un tipo especial de interfaz que permite
realizar a nodo conexiones consigo misma (por ejemplo, para verificar que
el subsistema de red funciona sin acceder a la red). Por defecto, la direccin
Nota
Para ms informacin sobre
el paquete resolvconf, podis
consultar la web explicativa:
http://packages.debian.org/
unstable/net/resolvconf
GNUFDL PID_00167544 26 Administracin de red
IP 127.0.0.1 ha sido asignada especficamente al loopback (un comando telnet
127.0.0.1 conectar con la misma mquina). Su configuracin es muy fcil (la
realizan generalmente los script de inicializacin de red).
4.2.4. Ejemplo del loopback
ifconfig lo 127.0.0.1
route add host 127.0.0.1 lo
En la versin 2 de la biblioteca GNU existe un reemplazo importante con res-
pecto a la funcionalidad del archivo host.conf. Esta mejora incluye la centrali-
zacin de informacin de diferentes servicios para la resolucin de nombres,
lo cual presenta grandes ventajas para el administrador de red. Toda la infor-
macin de consulta de nombres y servicios ha sido centralizada en el archivo
/etc/nsswitch.conf, el cual permite al administrador configurar el orden y las
bases de datos de modo muy simple. En este archivo cada servicio aparece uno
por lnea con un conjunto de opciones, donde, por ejemplo, la resolucin de
nombres de nodo es una de ellas. En ste se indica que el orden de consulta
de las bases de datos para obtener el IP del nodo o su nombre ser primero el
servicio de DNS, que utilizar el archivo /etc/resolv.conf para determinar la IP
del nodo DNS, y en caso de que no pueda obtenerlo, utilizar el de las bases de
datos local (/etc/hosts). Otras opciones para ello podran ser nis, nisplus, que
son otros servicios de informacin que se describirn en unidades posterio-
res. Tambin se puede controlar por medio de acciones (entre []) el comporta-
miento de cada consulta, por ejemplo:
hosts: xfn nisplus dns [NOTFOUND = return] files
Esto indica que cuando se realice la consulta al DNS, si no existe un registro
para esta consulta, retorne al programa que la hizo con un cero. Puede utili-
zarse el '!' para negar la accin, por ejemplo:
hosts dns [!UNAVAIL = return] files
4.3. Configuracin del routing
Nota
Ejemplo de nsswitch.conf:
hosts: dns files
...
networks: files
Otro aspecto que hay que configurar es el routing. Si bien existe el tpico sobre
su dificultad, generalmente se necesitan unos requerimientos de routing muy
simples. En un nodo con mltiples conexiones, el routing consiste en decidir
dnde hay que enviar y qu se recibe. Un nodo simple (una sola conexin de
red) tambin necesita routing, ya que todos los nodos disponen de un loopback
y una conexin de red (por ejemplo, Ethernet, PPP, SLIP...). Como se explic
anteriormente, existe una tabla llamada routing table, que contiene filas con
Nota
Consulta de tablas de routing:
route -n o tambin
netstat -r
GNUFDL PID_00167544 27 Administracin de red
diversos campos, pero con tres de ellos sumamente importantes: direccin de
destino, interfaz por donde saldr el mensaje y direccin IP, que efectuar el
siguiente paso en la red (gateway).
El comando route permite modificar esta tabla para realizar las tareas
de routing adecuadas. Cuando llega un mensaje, se mira su direccin
destino, se compara con las entradas en la tabla y se enva por la interfaz,
en la que la direccin coincide mejor con el destino del paquete. Si un
gateway es especificado, se enva a la interfaz adecuada.
Consideremos, por ejemplo, que nuestro nodo est en una red clase C con
direccin 192.168.110.0 y tiene una direccin 192.168.110.23; y el router con
conexin a Internet es 192.168.110.3. La configuracin ser:
Primero la interfaz:
ifconfig eth0 192.168.110.23 netmask 255.255.255.0 up
Ms adelante, indicar que todos los paquetes con direcciones 192.168.0.*
deben ser enviados al dispositivo de red:
route add -net 192.1 ethernetmask 255.255.255.0 eth0
El -net indica que es una ruta de red pero tambin puede utilizarse -host
192.168.110.3. Esta configuracin permitir conectarse a todos los nodos den-
tro del segmento de red (192.1), pero qu pasar si se desea conectar con otro
nodo fuera de este segmento? Sera muy difcil tener todas las entradas ade-
cuadas para todas las mquinas a las cuales se quiere conectar. Para simplificar
esta tarea, existe el default route, que se utiliza cuando la direccin destino no
coincide en la tabla con ninguna de las entradas. Una posibilidad de configu-
racin sera:
route add default gw 192.168.110.3 eth0
Nota
El gw es la IP o nombre de un gateway o nodo router.
Una forma alternativa de hacerlo es:
ifconfig eth0 inet down deshabilito la interfaz
ifconfig
lo Link encap:Local Loopback
GNUFDL PID_00167544 28 Administracin de red
... (no mostrar ninguna entrada para eth0)
route
... (no mostrar ninguna entrada en la tabla de rutas)
Luego se habilita la interfaz con una nueva IP y una la nueva ruta:
ifconfig eth0 inet up 192.168.0.111 \
netmask 255.255.0.0 broadcast 192.168.255.255
route add -net 10.0.0.0 netmask 255.0.0.0 \
gw 192.168.0.1 dev eth0
La barra (\) indica que el comando contina en la siguiente lnea. El resultado:
ifconfig
eth0 Link encap:Ethernet HWaddr 08:00:46:7A:02:B0
inet addr:192.168.0.111 Bcast: 192.168.255.255 Mask:255.255.0.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
...
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
...
route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.0.0 * 255.255.0.0 U 0 0 0 eth0
10.0.0.0 192.168.0.1 255.0.0.0 UG 0 0 0 eth0
Para ms informacin ver los comandos ifconfig(8) y route(8).
4.4. Configuracin del inetd
El siguiente paso en la configuracin de red es la configuracin de los servi-
dores y servicios que permitirn a otro usuario acceder a la mquina local o a
sus servicios. Los programas servidores utilizarn los puertos para escuchar las
peticiones de los clientes, los cuales se dirigirn a este servicio como IP:port.
Los servidores pueden funcionar de dos maneras diferentes: standalone (en es-
ta manera el servicio escucha en el puerto asignado y siempre se encuentra
activo) o a travs del inetd.
GNUFDL PID_00167544 29 Administracin de red
El inetd es un servidor que controla y gestiona las conexiones de red de
los servicios especificados en el archivo /etc/inetd.conf, el cual, ante una
peticin de servicio, pone en marcha el servidor adecuado y le transfiere
la comunicacin.
Dos archivos importantes necesitan ser configurados: /etc/services y /etc/
inetd.conf. En el primero se asocian los servicios, los puertos y el protocolo
y en el segundo, qu programas servidores respondern ante una peticin a
un puerto determinado. El formato de /etc/services es name port/protocol aliases,
donde el primer campo es nombre del servicio, el segundo, el puerto donde
atiende este servicio y el protocolo que utiliza, y el siguiente, un alias del nom-
bre. Por defecto existen una serie de servicios que ya estn preconfigurados. A
continuacin se muestra un ejemplo de /etc/services (# indica que lo que existe
a continuacin es un comentario):
tcpmux 1/tcp # TCP port service multiplexer
echo 7/tcp
echo 7/udp
discard 9/tcp sink null
discard 9/udp sink null
systat 11/tcp users
...
ftp 21/tcp
ssh 22/tcp # SSH Remote Login Protocol
ssh 22/udp # SSH Remote Login Protocol
telnet 23/tcp
# 24 - private
smtp 25/tcp mail
...
El archivo /etc/inetd.conf es la configuracin para el servicio maestro de red
(inetd server daemon). Cada lnea contiene siete campos separados por espacios:
service socket_type proto flags user server_path server_args, donde service es el ser-
vicio descrito en la primera columna de /etc/services, socket_type es el tipo de
socket (valores posibles stream, dgram, raw, rdm, o seqpacket), proto es el pro-
tocolo vlido para esta entrada (debe coincidir con el de /etc/services), flags in-
dica la accin que tomar cuando existe una nueva conexin sobre un servicio
que se encuentra atendiendo a otra conexin (wait le dice a inetd no poner en
marcha un nuevo servidor o nowait significa que inetd debe poner en marcha
un nuevo servidor). User ser el usuario con el cual se identificar quin ha
puesto en marcha el servicio, server_path es el directorio donde se encuentra el
servidor y server_args son argumentos posibles que sern pasados al servidor.
GNUFDL PID_00167544 30 Administracin de red
Un ejemplo de algunas lneas de /etc/inetd.conf es (recordar que # significa co-
mentario, por lo cual, si un servicio tiene # antes de nombre, significa que no
se encuentra disponible):
...
telnet stream tcp nowait root /usr/sbin/tcpd /usr/sbin/in.telnetd
ftp stream tcp nowait root /usr/sbin/tcpd /usr/sbin/in.ftpd
# fsp dgram udp wait root /usr/sbin/tcpd /usr/sbin/in.fspd
shell stream tcp nowait root /usr/sbin/tcpd /usr/sbin/in.rshd
login stream tcp nowait root /usr/sbin/tcpd /usr/sbin/in.rlogind
# exec stream tcp nowait root /usr/sbin/tcpd /usr/sbin/in.rexecd ...
...
A partir de Debian Woody 3.0 r1, la funcionalidad de inetd ha sido reempla-
zada por xinetd (recomendable), el cual necesita el archivo de configuracin
/etc/xinetd.conf (ver el final del mdulo). Si se desea poner en marcha el servi-
cio de inetd, se debe ejecutar (y crear los links adecuados en los directorios
/etc/rcX.d) /etc/init.d/inetd.real start (ved un ejemplo de configuraciones en el
punto 15 del apartado 12 "Configuraciones avanzadas y herremientas").
Adems de la configuracin de inetd o xinetd, la configuracin tpica de los
servicios de red en un entorno de escritorio o servidor bsico podra incluir
adems:
ssh: conexin interactiva segura como reemplazo de telnet e incluye dos
archivos de configuracin /etc/ssh/ssh_config (para el cliente) y
/etc/ssh/sshd_config (para el servidor).
exim: agente de transporte de correo (MTA), incluye los archivos de con-
figuracin: /etc/exim/exim.conf, /etc/mailname, /etc/aliases,
/etc/email-addresses.
fetchmail: daemon para descargar el correo de una cuenta POP3,
/etc/fetchmailrc.
procmail: programa para filtrar y distribuir el correo local, ~/.procmailrc.
tcpd: servicios de filtros de mquinas y dominios habilitados y deshabili-
tados para conectarse al servidor (wrappers): /etc/hosts.allow, /etc/hosts.deny.
DHCP: servicio para la gestin (servidor) u obtencin de IP (cliente),
/etc/dhcp3/dhclient.conf (cliente), /etc/default/dhcp3-server (servidor),
/etc/dhcp3/dhcpd.conf (servidor).
CVS: sistema de control de versiones concurrentes, /etc/cvs-cron.conf,
Ved tambin
Para ver ms sobre la configu-
racin tpica de los servicios
de red en un entorno de es-
critorio o servidor bsico, po-
dis ver el mdulo de servido-
res (mdulo 2) de la asignatu-
ra Administracin avanzada de
sistemas GNU-Linux.
GNUFDL PID_00167544 31 Administracin de red
/etc/cvs-pserver.conf.
NFS: sistema de archivos de red, /etc/exports.
Samba: sistema de archivos de red y comparticin de impresoras en redes
Windows, /etc/samba/smb.conf.
lpr: daemon para el sistema de impresin, /etc/printcap (para el sistema lpr
no para CUPS).
Apache y Apache2: servidor de web, /etc/apache/* y /etc/apache2/*.
squid: servidor proxy-cach, /etc/squid/*.
4.5. Configuracin adicional: protocols y networks
Existen otros archivos de configuracin que en la mayora de los casos no se
utilizan pero que pueden ser interesantes. El /etc/protocols es un archivo que
relaciona identificadores de protocolos con nombres de protocolos, as, los
programadores pueden especificar los protocolos por sus nombres en los pro-
gramas.
Ejemplo de /etc/protocols
ip 0 IP # internet protocol, pseudo protocol number
#hopopt 0 HOPOPT # IPv6 Hop-by-Hop Option [RFC1883]
icmp 1 ICMP # internet control message protocol
El archivo /etc/networks tiene una funcin similar a /etc/hosts, pero con respecto
a las redes, indica nombres de red con relacin a su direccin IP (el comando
route mostrar el nombre de la red y no su direccin en este caso).
Ejemplo de /etc/networks
loopnet 127.0.0.0
localnet 192.168.0.0
amprnet 44.0.0.0 ...
4.6. Aspectos de seguridad
Es importante tener en cuenta los aspectos de seguridad en las conexiones a
red, ya que una fuente de ataques importantes se produce a travs de la red.
Ya se hablar ms sobre este tema en la unidad correspondiente a seguridad;
sin embargo, hay unas cuantas recomendaciones bsicas que deben tenerse en
cuenta para minimizar los riesgos inmediatamente antes y despus de confi-
gurar la red de nuestro ordenador:
GNUFDL PID_00167544 32 Administracin de red
a) No activar servicios en /etc/inetd.conf que no se utilizarn, insertar un # antes
del nombre para evitar fuentes de riesgo.
b) Modificar el archivo /etc/ftpusers para denegar que ciertos usuarios puedan
tener conexin va ftp con su mquina.
c) Modificar el archivo /etc/securetty para indicar desde qu terminales (un
nombre por lnea), por ejemplo: tty1 tty2 tty3 tty4, se permite la conexin del
superusuario (root). Desde los terminales restantes, root no podr conectarse.
d) Utilizar el programa tcpd. Este servidor es un wrapper que permite aceptar-
negar un servicio desde un determinado nodo y se coloca en el /etc/inetd.conf
como intermediario de un servicio. El tcpd verifica unas reglas de acceso en
dos archivos: /etc/hosts.allow /etc/host.deny
Si se acepta la conexin, pone en marcha el servicio adecuado pasado co-
mo argumento, por ejemplo, la lnea del servicio de ftp antes mostrada en
inetd.conf: ftp stream tcp nowait root /usr/sbin/tcpd /usr/sbin/in.ftpd.
tcpd primero busca /etc/hosts.allow y luego /etc/hosts.deny. El archivo hosts.deny
contiene la informacin sobre cules son los nodos que no tienen acceso a un
servicio dentro de esta mquina. Una configuracin restrictiva es ALL: ALL,
ya que slo se permitir el acceso a los servicios desde los nodos declarados
en /etc/hosts.allow.
El archivo /etc/hosts.equiv permite el acceso a esta mquina sin tener que intro-
ducir una clave de acceso (password). Se recomienda no usar este mecanismo
y aconsejar a los usuarios no utilizar el equivalente desde la cuenta de usuario
a travs del archivo .rhosts.
En Debian es importante configurar /etc/security/access.conf, el archivo que in-
dica las reglas de quin y desde dnde se puede conectar (login) a esta mqui-
na. Este archivo tiene una lnea por orden con tres campos separados por ':'
del tipo permiso: usuarios:origen. El primero ser un + o - (acceso denegado), el
segundo un nombre de usuario/s, grupo o user@host, y el tercero un nombre
de un dispositivo, nodo, dominio, direcciones de nodo o de redes, o ALL.
Ejemplo de access.conf
Este comando no permite root logins sobre tty1:
ALL EXCEPT root:tty1 ...
Permite acceder a u1, u2, g1 y todos los de dominio remix.com:
+:u1 u2 g1 .remix.com:ALL
GNUFDL PID_00167544 33 Administracin de red
4.7. Opciones del IP
Existen una serie de opciones sobre el trfico IP que es conveniente mencio-
nar. Su configuracin se realiza a travs de la inicializacin del archivo corres-
pondiente en directorio /proc/sys/net/ipv4/. El nombre del archivo es el mismo
que el del comando y para activarlos se debe poner un 1 dentro del archivo, y
un 0 para desactivarlo. Por ejemplo, si se quiere activar ip_forward, se debera
ejecutar:
echo 1 > /proc/sys/net/ipv4/ip_forward
Los ms utilizados son: ip_forward utilizado para el routing entre interfaces o
con IP Masquerading; ip_default_ttl, que es el tiempo de vida para un paquete
IP (64 milisegundos por defecto) ip_bootp_agent variable lgica (boolean), que
acepta paquetes (o no) con direccin origen del tipo 0.b.c.d y destino de este
nodo, broadcast o multicast.
Comandos para la solucin de problemas con la red
Si tiene problemas en la configuracin de la red, se puede comenzar verifican-
do la salida de los siguientes comandos para obtener una primera idea:
ifconfig
cat /proc/pci
cat /proc/interrupts
dmesg | more
Para verificar la conexin a la red, se pueden utilizar los siguientes comandos
(se debe tener instalado netkit-ping, traceroute, dnsutils, iptables y net-tools):
ping uoc.edu # verificar la conexin a Internet
traceroute uoc.edu # rastrear paquetes IP
ifconfig # verificar la configuracin del host
route -n # verificar la configuracin de la ruta
dig [@dns.uoc.edu] www.uoc.edu # verificar registros de www.uoc.edu
# sobre el servidor dns.uoc.edu
iptables -L -n |less # verificar filtrado de paquetes (kernel >=2.4)
netstat -a # muestra todos los puertos abiertos
netstat -l --inet # muestra los puertos en escucha
netstat -ln --tcp # mostrar puertos tcp en escucha (numrico)
GNUFDL PID_00167544 34 Administracin de red
5. Configuracin del DHCP
DHCP son las siglas de dynamic host configuration protocol. Su configuracin es
muy simple y sirve para que, en lugar de configurar cada nodo de una red in-
dividualmente, se pueda hacer de forma centralizada y su administracin sea
ms fcil. La configuracin de un cliente es muy fcil, ya que solo se debe ins-
talar uno de los siguientes paquetes: dhcp3-client (versin 3, Internet Softwa-
re Consortium), dhcpcd (Yoichi Hariguchi y Sergei Viznyuk), pump (Red Hat),
agregando la palabra dhcp en la entrada correspondiente a la interfaz que se
desea que funcione bajo el cliente dhcp (p.e. /etc/network/interfaces debe te-
ner iface eth0 inet dhcp...).
La configuracin del servidor requiere un poco ms de atencin, pero no pre-
senta complicaciones. Primero, para que el servidor pueda servir a todos los
clientes DHCP (incluido Windows), deben realizarse algunas cuestiones pre-
vias relacionadas con las direcciones de broadcast. Para ello, primero el servi-
dor debe poder enviar mensajes a la direccin 255.255.255.255, lo cual no es
vlido en GNU/Linux. Para probarlo, ejectese:
route add -host 255.255.255.255 dev eth0
Si aparece el siguiente mensaje 255.255.255.255: Unknown host, debe aadirse
la siguiente entrada en /etc/hosts: 255.255.255.255 dhcp e intentar nuevamen-
te:
route add -host dhcp dev eth0
La configuracin de dhcpd se puede realizar con la interfaz grfica de linuxconf
o bien editar /etc/dhcpd.conf. Un ejemplo de este archivo es:
# Ejemplo de /etc/dhcpd.conf:
default-lease-time 1200;
max-lease-time 9200;
option domain-name "remix.com";
deny unknown-clients;
deny bootp;
option broadcast-address 192.168.11.255;
option routers 192.168.11.254;
option domain-name-servers 192.168.11.1, 192.168.168.11.2;
subnet 192.168.11.0 netmask 255.255.255.0
{ not authoritative;
GNUFDL PID_00167544 35 Administracin de red
range 192.168.11.1 192.168.11.254
host marte {
hardware ethernet 00:00:95:C7:06:4C;
fixed address 192.168.11.146;
option host-name "marte";
}
host saturno {
hardware ethernet 00:00:95:C7:06:44;
fixed address 192.168.11.147;
option host-name "saturno";
}
}
Esto permitir al servidor asignar el rango de direcciones 192.168.11.1 al
192.168.11.254 tal y como se describe cada nodo. Si no existe el segmento host
{ ... } correspondiente, se asignan aleatoriamente. Las IP son asignadas por un
tiempo mnimo de 1.200 segundos y mximo de 9.200 (en caso de no existir
estos parmetros, se asignan indefinidamente).
Antes de ejecutar el servidor, debe verificarse si existe el fichero /var/state/dhcp/
dhcpd.leases (en caso contrario, habr que crearlo con touch /var/state/dhcp/
dhcpd.leases). Para ejecutar el servidor: /usr/sbin/dhcpd (o bien ponerlo en los
scripts de inicializacin). Con /usr/sbin/dhcpd -d -f se podr ver la actividad
del servidor sobre la consola del sistema [Mou01, Rid00, KD00, Dra99].
GNUFDL PID_00167544 36 Administracin de red
6. IP Aliasing
Existen algunas aplicaciones donde es til configurar mltiples direcciones IP
a un nico dispositivo de red. Los ISP
27
utilizan frecuentemente esta caracters-
tica para proveer de caractersticas personalizadas (por ejemplo, de World Wi-
de Web y FTP) a sus usuarios. Para ello, el kernel debe estar compilado con las
opciones de Network Aliasing e IP (aliasing support). Despus de instalado el
nuevo kernel, la configuracin es muy fcil. Los alias son anexados a disposi-
tivos de red virtuales asociados al nuevo dispositivo con un formato tal como:
dispositivo: nmero virtual
Por ejemplo:
eth0:0, ppp0:8
Consideremos que tenemos una red Ethernet que soporta dos diferentes subre-
des IP simultneamente y que nuestra mquina desea tener acceso directo a
ellas. Un ejemplo de configuracin sera:
ifconfig eth0 192.168.110.23 netmask 255.255.255.0 up
route add -net 192.168.110.0 netmask 255.255.255.0 eth0
ifconfig eth0:0 192.168.10.23 netmask 255.255.255.0 up
route add -net 192.168.10.0 netmask 255.255.255.0 eth0:0
Lo cual significa que tendremos dos IP 192.168.110.23 y 192.168.10.23 para
la misma NIC. Para borrar un alias, agregar un '-' al final del nombre (por
ejemplo, ifconfig eth0:0- 0) [Mou01, Ran05].
Un caso tpico es que se desee configurar una nica tarjeta Ethernet para que
sea la interfaz de distintas subredes IP. Por ejemplo, supongamos que se tiene
una mquina que se encuentra en una red LAN 192.168.0.x/24, y se desea
conectar la mquina a Internet usando una direccin IP pblica proporcionada
con DHCP usando su tarjeta Ethernet existente. Por ejemplo, se puede hacer
como en el ejemplo anterior o tambin editar el archivo /etc/network/interfaces,
de modo que incluya una seccin similar a la siguiente:
iface eth0 inet static
address 192.168.0.1
netmask 255.255.255.0
(27)
Del ingls internet service provi-
ders
GNUFDL PID_00167544 37 Administracin de red
network 192.168.0.0
broadcast 192.168.0.255
iface eth0:0 inet dhcp
La interfaz eth0:0 es una interfaz virtual y al activarse, tambin lo har su
padre eth0.
GNUFDL PID_00167544 38 Administracin de red
7. IP Masquerade
El IP Masquerade es un recurso para que un conjunto de mquinas pue-
dan utilizar una nica direccin IP. Esto permite que los nodos ocultos
puedan salir hacia Internet (son los que utilizan una IP privada, por
ejemplo, 198.162.10.1); pero no pueden aceptar llamadas o servicios del
exterior directamente, sino a travs de la mquina que tiene la IP real.
Esto significa que algunos servicios no funcionan (por ejemplo, talk) y otros
deben ser configurados en modo PASV (pasivo) para que funcionen (por ejem-
plo, FTP). Sin embargo, WWW, telnet o irc funcionan adecuadamente. El
kernel debe estar configurado con las siguientes opciones: Network firewalls,
TCP/IP networking, IP:forwarding/gatewaying, IP: masquerading. Normalmente,
la configuracin ms comn es disponer de una mquina con una conexin
SLIP o PPP y tener otro dispositivo de red (por ejemplo, una tarjeta Ethernet)
con una direccin de red reservada. Como vimos, y de acuerdo a la RFC 1918,
se pueden utilizar como IP privadas los siguientes rangos de direcciones (IP/
Mask):
10.0.0.0/255.0.0.0
172.16.0.0/255.240.0.0
192.168.0.0/255.255.0.0
Los nodos que deben ser ocultados (masqueraded) estarn dentro de esta se-
gunda red. Cada una de estas mquinas debera tener la direccin de la m-
quina que realiza el masquerade, como default gateway o router. Sobre dicha
mquina podemos configurar:
Network route para Ethernet considerando que la red tiene un
IP=192.168.1.0/255.255.255.0:
route add -net 192.168.1.0 netmask 255.255.255.0 eth0
Default route para el resto de Internet:
route add default ppp0
GNUFDL PID_00167544 39 Administracin de red
Todos los nodos sobre la red 192.168.1/24 sern masqueraded:
ipchains -A forward -s 192.168.1.0/24 -j MASQ
Si se utiliza iptables sobre un kernel 2.4 o superior:
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
Consultar las referencias y la unidad que trata sobre la seguridad de la infor-
macin de ipchains e iptables. [Ran05, KD00].
GNUFDL PID_00167544 40 Administracin de red
8. NAT con el kernel 2.2 o superiores
El IP Network Address Translation NAT es el reemplazo que deja obso-
leto las prestaciones de GNU/Linux IP Masquerade y que aporta nue-
vas prestaciones al servicio. Dentro de las mejoras introducidas en la pi-
la de TCP/IP del ncleo 2.2 de GNU/Linux tenemos que el NAT for-
ma parte del kernel. Para utilizarlo, es necesario que el kernel se compi-
le con: CONFIG_IP_ADVANCED_ROUTER, CONFIG_IP_MULTIPLE_TABLES y
CONFIG_IP_ROUTE_NAT. Y si se necesita control exhaustivo de las reglas
NAT (por ejemplo, para activar el cortafuegos firewalling) debe estar tambin
CONFIG_IP_FIREWALL y CONFIG_IP_ROUTE_FWMARK. Para trabajar con es-
tas nuevas caractersticas, es necesario usar el programa ip (incluido en las
distribuciones ms importantes a partir de la versin 2.4 del kernel http:/
/es.wikipedia.org/wiki/Iproute2). Entonces, para trasladar direcciones de pa-
quetes de entrada se puede utilizar:
ip route add nat <extaddr>[/<masklen>] via <intaddr>
Esto har que un paquete de entrada destinado a ext-addr (la direccin visi-
ble desde fuera de Internet) se transcribe su direccin destino a int-addr (la
direccin de su red interna por medio de su gateway/firewall). El paquete se
encamina de acuerdo a la tabla local de route. Se pueden trasladar direcciones
simples o bloques. Por ejemplo:
ip route add nat 240.0.11.34 via 192.109.0.2
ip route add nat 240.0.11.32/27 via 192.109.0.0
El primero hace que la direccin interna 192.109.0.2 sea accesible co-
mo 240.0.11.34. El segundo reubica (remapping) el block 192.109.0.0-31 a
240.0.11.32-63. En este caso se han utilizado como ejemplo traslaciones a di-
recciones de la clase DE tal como 240.0.*.* con el fin de no utilizar ninguna
direccin pblica. El usuario deber reemplazar estas direcciones (240.0.11.34
y 240.0.11.32-63) por las correspondientes direcciones pblicas a las que desee
realizar la traslacin [Ran05].
GNUFDL PID_00167544 41 Administracin de red
9. Cmo configurar una conexin DialUP y PPP?
Si bien hoy en da es poco habitual trabajar con mdem, ya que se tienen so-
luciones de ASDL a mejores precios y ancho de banda, se realizar una peque-
a introduccin sobre la configuracin de una conexin dial-up sobre PPP en
GNU/Linux que es muy simple.
PPP
28
que permite realizar IP-Links entre dos ordenadores con un mdem (con-
siderar que debe ser un mdem soportado por GNU/Linux, ya que no todos,
especialmente los internos o los conocidos como Winmodems, se pueden con-
figurar, puesto que muchos de ellos necesitan software adicional para estable-
cer la comunicacin) [Vas00, Law07, Sec00].
Como pasos previos se debe disponer de la siguiente informacin: el init-string
del mdem (normalmente no es necesario pero si la necesita y no la tiene
disponible, se puede utilizar ATZ, que funciona en la mayora de los mdems,
o consultar listas especializadas de init-string).
Adems, necesitar los datos del ISP: identificacin de conexin (login name),
clave (password) y nmero de telfono. Direcciones de DNS seran aconseja-
bles, pero es opcional en las versiones actuales de pppd. Verificar adems que
su mdem est correctamente conectado. Con un mdem externo se debe eje-
cutar echo > /dev/ttyS0 y mirar las luces del mdem por si tienen actividad. En
caso contrario, intentar con ttyS1 por si el mdem est conectado al 2. puerto
serie. Con un mdem interno consultar el manual de hardware soportado para
ver si este mdem puede ser reconocido por GNU/Linux, y en caso afirmativo,
podra tener que reconfigurar el kernel para utilizarlo. Tambin puede utilizar
cat /proc/pci por si se encuentra en el bus PCI [PPP00].
La forma ms fcil de configurar ahora el mdem es a travs del paquete kppp
(debe instalar los paquetes kdenetwork-ppp* y ppp*). Sobre un terminal, eje-
ctese /usr/bin/kppp. Sobre la ventana, compltense las opciones siguientes:
Accounts -> New Connection
Dial -> Authentication -> 'PAP/CHAP'
Store Password -> yes
IP -> Dynamic IP Address
Autoconfigure hostname -> No
Gateway -> Default Gateway -> Assign the Default Route
DNS -> Configuration Automatic -> Disable existing DNS
Device -> ttyS1(com1) o ttyS2 (com2)
Modem -> Query Modem para ver los resultados (si no obtiene resultados,
cambie el dispositivo ttySx).
(28)
Del ingls point to point proto-
col.
GNUFDL PID_00167544 42 Administracin de red
Entraremos login y password, y estaremos conectados a Internet (para verificar
la conexin se puede ejecutar ping www.google.com, por ejemplo). Aqu se
ha utilizado el paquete kppp, pero igualmente podra utilizarse linuxconf o
gnomeppp indistintamente.
Una manera rpida de configurar pppd en Debian consiste en usar el programa
pppconfig, que viene con el paquete del mismo nombre. pppconfig configura
los archivos como los anteriores despus de formular preguntas al usuario a
travs de una interfaz de mens. Otra opcin diferente para usar pppd consiste
en ejecutarlo desde wvdial, que viene con el paquete wvdial. En vez de hacer
que pppd ejecute chat para marcar y negociar la conexin, wvdial realiza el
marcado, la negociacin inicial y luego inicia pppd para que haga el resto. En
la mayora de los casos dando solamente el nmero telefnico, el nombre de
usuario y la contrasea, wvdial logra establecer la conexin.
Una vez configurado PPP para que funcione por ejemplo con mi_isp, se de-
be editar /etc/network/interfaces, de modo que incluya una seccin como la si-
guiente (los comandos ifup, ifdown utilizan los comandos pon y poff para con-
figurar interfaces PPP):
iface ppp0 inet ppp
provider mi_isp
con esta seccin, ifup ppp0 hace:
pon mi_isp
Actualmente no es posible usar ifup-down para realizar una configuracin au-
xiliar de las interfaces PPP. Como pon desaparece antes que pppd haya termi-
nado de establecer la conexin, ifup ejecuta los scripts up antes que la interfaz
PPP est lista para usar. Hasta que se solucione este fallo sigue siendo necesario
realizar una configuracin posterior en /etc/ppp/ip-up o /etc/ppp/ip-up.d/.
Muchos proveedores de servicios de internet (ISPs) de banda ancha utilizan
PPP para negociar las conexiones incluso cuando las mquinas de los clien-
tes estn conectados mediante Ethernet y/o redes ATM. Esto se logra median-
te PPP sobre Ethernet (PPPoE), que es una tcnica para el encapsulamiento
del flujo PPP dentro de las tramas Ethernet. Supongamos que el ISP se llama
mi_isp. Primero hay que configurar PPP y PPPoE para mi_isp. La manera ms
fcil de hacerlo consiste en instalar el paquete pppoeconf y ejecutar pppoe-
conf desde la consola. A continuacin, editar /etc/network/interfaces de modo
que incluya un fragmento como el siguiente:
iface eth0 inet ppp
provider mi_isp
GNUFDL PID_00167544 43 Administracin de red
A veces surgen problemas con PPPoE relativos a la unidad de transmisin m-
xima (MTU
29
) en lneas DSL
30
; se puede consultar el DSL-HOWTO para ms
detalles. Tambin debe tenerse en cuenta si su mdem posee un router, porque
el mdem/router maneja por s mismo la conexin PPPoE y aparece del lado
de la LAN como una simple puerta de enlace Ethernet a Internet.
(29)
Del ingls maximum transmit
unit.
(30)
Del ingls digital subscriber line.
GNUFDL PID_00167544 44 Administracin de red
10. Configuracin de la red mediante hotplug
El paquete hotplug permite el soporte de arranque en caliente (se debe tener
instalado el paquete del mismo nombre). El hardware de red se puede conec-
tar en caliente ya sea durante el arranque, tras haber insertado la tarjeta en la
mquina (una tarjeta PCMCIA, por ejemplo), o despus de que una utilidad
como discover se haya ejecutado y cargado los mdulos necesarios. Cuando
el kernel detecta nuevo hardware, inicializa el controlador para este hardware
y luego ejecuta el programa hotplug para configurarlo. Si ms tarde se elimi-
na el hardware, ejecuta nuevamente hotplug con parmetros diferentes. En De-
bian, cuando se llama a hotplug ste ejecuta los scripts de /etc/hotplug/ y /etc/
hotplug.d/. El hardware de red recientemente conectado es configurado por el
/etc/hotplug/net.agent. Supongamos que la tarjeta de red PCMCIA ha sido co-
nectada lo que implica que la interfaz eth0 esta lista para usar.
/etc/hotplug/net.agent hace lo siguiente:
ifup eth0=hotplug
A menos que haya aadido una interfaz lgica llamada hotplug en /etc/net-
work/interfaces, este comando no har nada. Para que este comando configure
eth0, se debe aadir las siguientes lneas al /etc/network/interfaces:
mapping hotplug
script echo
Si slo desea que eth0 se active en caliente y no otras interfaces, utilizar grep
en vez de echo como se muestra a continuacin:
mapping hotplug
script grep
map eth0
ifplugd activa o desactiva una interfaz segn si el hardware subyacente est o
no conectado a la red. El programa puede detectar un cable conectado a una
interfaz Ethernet o un punto de acceso asociado a una interfaz Wi-Fi. Cuando
ifplugd ve que el estado del enlace ha cambiado ejecuta un script que por de-
fecto ejecuta ifup o ifdown para la interfaz. ifplugd funciona en combinacin
con hotplug. Al insertar una tarjeta, lo que significa que la interfaz est lista
GNUFDL PID_00167544 45 Administracin de red
para usar, /etc/hotplug.d/net/ifplugd.hotplug inicia una instancia de ifplugd para
dicha interfaz. Cuando ifplugd detecta que la tarjeta es conectada a una red,
ejecuta ifup para esta interfaz.
Para asociar una tarjeta Wi-Fi con un punto de acceso, puede que necesite
programarla con una clave de cifrado WEP adecuada. Si est utilizando ifplugd
para controlar ifup como se explic anteriormente, entonces, evidentemente,
no podr configurar la clave de cifrado usando ifup, ya que ste slo es llamado
despus de que la tarjeta ha sido asociada. La solucin ms simple es usar
waproamd, que configura la clave de cifrado WEP segn los puntos de acceso
disponibles, que se descubren mediante la bsqueda de la redes WiFi. Para ms
informacin consultar man waproamd y la informacin del paquete.
GNUFDL PID_00167544 46 Administracin de red
11. Virtual private network (VPN)
Una VPN
31
es una red que utiliza Internet como transporte de datos,
pero impide que stos puedan ser accedidos por miembros externos a
ella.
Tener una red con VPN significa tener nodos unidos a travs de un tnel por
donde viaja el trfico y donde nadie puede interactuar con l. Se utiliza cuando
se tienen usuarios remotos que acceden a una red corporativa para mantener
la seguridad y privacidad de los datos. Para configurar una VPN, se pueden
utilizar diversos mtodos SSH (SSL), CIPE, IPSec, PPTP, que pueden consultarse
en las referencias (se recomienda consultar VPN PPP-SSH HOWTO, por Scott
Bronson, VPN-HOWTO de Matthew D. Wilson) [Bro01, Wil02].
Para realizar las pruebas de configuracin, en este apartado se utilizar la
OpenVPN, que es una solucin basada en SSL VPN, y se puede usar para un
amplio rango de soluciones, por ejemplo, acceso remoto, VPN punto a punto,
redes WiFi seguras o redes distribuidas empresariales. OpenVPN implementa
OSI layer 2 o 3 utilizando protocolos SSL/TLS y soporta autentificacin ba-
sada en certificados, tarjetas (smart cards), y otros mtodos de certificacin.
OpenVPN no es un servidor proxy de aplicaciones ni opera a travs de un web
browser.
(31)
Del ingls virtual private net-
work.
Para analizar este servicio utilizaremos una opcin de la OpenVPN llamada
OpenVPN for Static key configurations, que ofrece una forma simple de confi-
gurar una VPN ideal para pruebas o para conexiones punto a punto. Sus ven-
tajas son simplicidad, y no es necesario un certificado X509 PKI
32
para man-
tener la VPN. Las desventajas son que slo permite 1 cliente y un servidor. Al
no utilizar llave pblica y llave privada, puede haber igualdad de claves con
sesiones anteriores, debe existir, pues, una llave en modo texto en cada peer, y
la llave secreta debe ser intercambiada anteriormente por un canal seguro.
11.1. Ejemplo simple
En este ejemplo se configurar un tnel VPN sobre un servidor con IP=10.8.0.1
y un cliente con IP=10.8.0.2. La comunicacin ser encriptada entre el cliente
y el servidor sobre UDP port 1194, que es el puerto por defecto de OpenVPN.
Despus de instalar el paquete se deber generar la llave esttica:
openvpn --genkey --secret static.key
(32)
Del ingls public key infrastructu-
re.
GNUFDL PID_00167544 47 Administracin de red
Despus se debe copiar el archivo static.key en el otro peer sobre un canal seguro
(por ejemplo, utilizando ssh o scp). El archivo de configuracin del servidor
openVPN_server por ejemplo:
dev tun
ifconfig 10.8.0.1 10.8.0.2
secret static.key
El archivo de configuracin del cliente, por ejemplo, openVPN_client:
remote myremote.mydomain
dev tun
ifconfig 10.8.0.2 10.8.0.1
secret static.key
Antes de verificar el funcionamiento de la VPN, debe asegurarse en el firewall
que el puerto 1194 UDP est abierto sobre el servidor y que la interfaz virtual
tun0 usada por OpenVPN no est bloqueada ni sobre el cliente ni sobre el ser-
vidor. Tenga en mente que el 90% de los problemas de conexin encontrados
por usuarios nuevos de OpenVPN estn relacionados con el firewall.
Para verificar la OpenVPN entre dos mquinas, deber cambiar las IP por las
reales y el dominio por el que tenga y luego ejecutar del lado servidor:
openvpn [server config file]
El cual dar una salida como:
Sun Feb 6 20:46:38 2005 OpenVPN 2.0_rc12 i686-suse-linux [SSL] [LZO] [EPOLL]
built on Feb 5 2005
Sun Feb 6 20:46:38 2005 Diffie-Hellman initialized with 1024 bit key
Sun Feb 6 20:46:38 2005 TLS-Auth MTU parms [ L:1542 D:138 EF:38 EB:0 ET:0 EL:0 ]
Sun Feb 6 20:46:38 2005 TUN/TAP device tun1 opened
Sun Feb 6 20:46:38 2005 /sbin/ifconfig tun1 10.8.0.1 pointopoint 10.8.0.2 mtu 1500
Sun Feb 6 20:46:38 2005 /sbin/route add -net 10.8.0.0 netmask 255.255.255.0 gw 10.8.0.2
Sun Feb 6 20:46:38 2005 Data Channel MTU parms [ L:1542 D:1450 EF:42 EB:23
ET:0 EL:0 AF:3/1 ]
Sun Feb 6 20:46:38 2005 UDPv4 link local (bound): [undef]:1194
Sun Feb 6 20:46:38 2005 UDPv4 link remote: [undef]
Sun Feb 6 20:46:38 2005 MULTI: multi_init called, r=256 v=256
Sun Feb 6 20:46:38 2005 IFCONFIG POOL: base=10.8.0.4 size=62
Sun Feb 6 20:46:38 2005 IFCONFIG POOL LIST
GNUFDL PID_00167544 48 Administracin de red
Sun Feb 6 20:46:38 2005 Initialization Sequence Completed
Y del lado cliente:
openvpn [client config file]
Para verificar que funciona, se puede hacer ping 10.8.0.2 desde el server y ping
10.8.0.1 desde el cliente.
Para agregar compresin sobre el link, debe aadirse la siguiente lnea a los
dos archivos de configuracin:
comp-lzo
Para proteger la conexin a travs de un NAT router/firewall alive, y seguir los
cambios de IP a travs de un DNS, si uno de los peers cambia, agregar a los dos
archivos de configuracin:
keepalive 10 60
ping-timer-rem
persist-tun
persist-key
Para ejecutarse como daemon con los privilegios de user/group nobody, agre-
gar a los archivos de configuracin:
user nobody
group nobody
daemon
11.2. Configuracin (manual) de un cliente Debian para acceder
a un VPN sobre un tnel pptp
Nota
Para ms informacin podis
consultar la web de OpenVPN:
http://openvpn.net/
howto.html
En primer lugar se debe instalar el cliente PPTP
33
y no es necesario tener so-
porte MPPE al kernel.
Para ello haremos:
apt-get update
apt-get install pptp-linux
apt-get install resolvconf
(33)
Del ingls point-to-point tunne-
ling protocol.
GNUFDL PID_00167544 49 Administracin de red
Contestar SI si sale el mensaje: Append original file to dynamic file?
Despus, reiniciar las interfaces con:
/etc/init.d/ifupdown restart
O con:
/etc/init.d/networking restart
Tambin es necesario tener instalado el paquete iproute:
apt-get install iproute
Para la configuracin del cliente crearemos en su directorio (por defecto
/etc/ppp/) el fichero /etc/ppp/options.pptp (este contendr opciones comunes a
todos los tneles que se creen en el equipo):
lock noauth nobsdcomp nodeflate
Agregamos la siguiente lnea al archivo/etc/ppp/chap-secrets:
usuario PPTP passwd *
Donde dice usuario se debe poner el nombre del usuario del servidor de VPN
y en passwd la palabra clave de acceso acabando la lnea con un "*".
Se debe crear el archivo /etc/ppp/peers/uoc con los parmetros de configuracin
del tnel:
pty "pptp nombre.dominio --nolaunchpppd"
name usuario
remotename PPTP
usepeerdns
defaultroute replacedefaultroute
file /etc/ppp/options.pptp
ipparam uoc
connect "route add nombre.dominio gw `ip route | \
grep default | cut -f3 -d' '`"
GNUFDL PID_00167544 50 Administracin de red
Donde dice usuario se debe poner el nombre del usuario, nombre.dominio
es el nombre del servidor VPN, por ejemplo, vpngw.uoc.es VPN y uoc es el
nombre del tunel que crearemos y que se referir al archivo /etc/ppp/peers/uoc.
Antes de finalizar debemos crear un par de scripts que encaminarn los paque-
tes por el tnel hacia Internet y lo cerrarn cuando se haya terminado.
Creamos el archivo /etc/ppp/ip-up.d/uoc con permisos de ejecucin y el siguien-
te contenido:
#!/bin/sh
cat /etc/ppp/resolv.conf | resolvconf -a tun0
Le cambiamos los atributos de ejecucin:
chmod +x /etc/ppp/ip-up.d/uoc
Finalmente, creamos el archivo /etc/ppp/ip-down.d/uoc con el siguiente conte-
nido:
#!/bin/sh
route del nombre.dominio
# cambiar por el servidor, por ejemplo, vpngw.uoc.es
resolvconf -d tun0
Y tambin con permisos de ejecucin:
chmod +x /etc/ppp/ip-down.d/uoc
Ahora slo falta poner en marcha el tnel con pon uoc. Despus de poner en
marcha el tnel y de hacer ifconfig, veremos una nueva interfaz de red con el
nombre de ppp0. Para finalizar la utilizacin del tnel, solo deberemos hacer
poff uoc, con lo cual desaparecer la interfaz ppp0.
Existe una interfaz grfica llamada kvpnc para configurar diferentes clientes
de VPN. En esta aplicacin no es necesario crear los scripts y no hay ningn
problema en instalar un cliente VPN pptp o de cualquier otro tipo siguiendo
las instrucciones. Tambin es posible configurar fcilmente un cliente desde
Gnome a travs del Gnome Network Manager para pptp:
sudo apt-get install network-manager-pptp pptp-linux
GNUFDL PID_00167544 51 Administracin de red
Nota
Podis consultar los detalles de la interfaz grfica kvpnc en su pgina web: http://
home.gna.org/kvpnc/en/index.html.
Otra web interesante donde encontraris informacin sobre VPN es la pgina de Net-
workManager: http://projects.gnome.org/NetworkManager/admins/.
GNUFDL PID_00167544 52 Administracin de red
12. Configuraciones avanzadas y herramientas
Existe un conjunto de paquetes complementarios (o que sustituyen a los con-
vencionales) y herramientas que o bien mejoran la seguridad de la mquina
(recomendados en ambientes hostiles), o bien ayudan en la configuracin de
red (y del sistema en general) de modo ms amigable.
Estos paquetes pueden ser de gran ayuda al administrador de red para
evitar intrusos o usuarios locales que se exceden de sus atribuciones (ge-
neralmente, no por el usuario local, sino a travs de una suplantacin de
identidad) o bien ayudar al usuario novel a configurar adecuadamente
los servicios.
En este sentido, es necesario contemplar:
1) Configuracin avanzada de TCP/IP: a travs del comando sysctl es posible
modificar los parmetros del kernel durante su ejecucin o en el inicio para
ajustarlos a las necesidades del sistema. Los parmetros susceptibles de modi-
ficar son los que se encuentran en el directorio /proc/sys/ y se pueden consultar
con sysctl -a. La forma ms simple de modificar estos parmetros es a travs
del archivo de configuracin /etc/syscntl.conf.
Despus de la modificacin, se debe volver a arrancar la red:
/etc/init.d/networking restart
En este apartado veremos algunas modificaciones para mejorar las prestacio-
nes de la red (mejoras segn condiciones) o la seguridad del sistema (consultar
las referencias para ms detalles) [Mou01]:
net.ipv4.icmp_echo_ignore_all = 1
2) No responde paquetes ICMP, como por ejemplo el comando ping, que podra
significar un ataque DoS (Denial-of-Service).
net.ipv4.icmp_echo_ignore_broadcasts = 1
3) Evita congestiones de red no respondiendo el broadcast.
GNUFDL PID_00167544 53 Administracin de red
net.ipv4.conf.all.accept_source_route = 0
net.ipv4.conf.lo.accept_source_route = 0
net.ipv4.conf.eth0.accept_source_route = 0
net.ipv4.conf.default.accept_source_route = 0
4) Inhibe los paquetes de IP Source routing que podran representar un problema
de seguridad (en todas las interfaces).
net.ipv4.tcp_syncookies = 1
net.ipv4.conf.all.accept_redirects = 0
5) Permite rechazar un ataque DoS por paquetes SYNC que consumira todos
los recursos del sistema forzando a hacer un reboot de la mquina.
net.ipv4.conf.lo.accept_redirects = 0
net.ipv4.conf.eth0.accept_redirects = 0
net.ipv4.conf.default.accept_redirects = 0
6) til para evitar ataques con CMP Redirect Acceptance (estos paquetes son uti-
lizados cuando el routing no tiene una ruta adecuada) en todas las interfaces.
net.ipv4.icmp_ignore_bogus_error_responses = 1
7) Enva alertas sobre todos los mensajes errneos en la red.
net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.lo.rp_filter = 1
net.ipv4.conf.eth0.rp_filter = 1
net.ipv4.conf.default.rp_filter = 1
8) Habilita la proteccin contra el IP Spoofing en todas las interfaces.
net.ipv4.conf.all.log_martians = 1
net.ipv4.conf.lo.log_martians = 1
net.ipv4.conf.eth0.log_martians = 1
net.ipv4.conf.default.log_martians = 1
9) Generar log sobre todos los Spoofed Packets, Source Routed Packets y Redirect
Packets.
GNUFDL PID_00167544 54 Administracin de red
10) Los siguientes parmetros permitirn que el sistema pueda atender mejor
y ms rpidos las conexiones TCP.
net.ipv4.tcp_fin_timeout = 40, Por defecto, 60.
net.ipv4.tcp_keepalive_time = 3600, Por defecto, 7.200.
net.ipv4.tcp_window_scaling = 0
net.ipv4.tcp_sack = 0
net.ipv4.tcp_timestamps = 0, Por defecto, todos a 1 (habilitados).
11) Iptables: las ltimas versiones de GNU/Linux (kernel 2.4 o superiores) in-
cluyen nuevos mecanismos para construir filtros de paquetes llamado netfilter
[Mou01]. Esta nueva funcionalidad es gestionada por una herramienta deno-
minada iptables, que presenta mejores caractersticas que su predecesor (ip-
chains). Como se ver en el mdulo correspondiente a seguridad, es sumamen-
te fcil construir un firewall con esta herramienta para detectar y hacer frente
a los ataques ms comunes scans, DoS, IPMAC Spoofing, etc. Su activacin pasa
primero por verificar que el kernel es 2.4 o superior, que el mismo est configu-
rado para dar soporte de ipfilter (lo cual significar que se deber recompilar el
kernel para activar la opcin Network packet filtering [CONFIG_NETFILTER],
y todas las subopciones especficas). Las reglas especficas se deben activar du-
rante el arranque (por ejemplo, a travs del /etc/init.d y el enlace adecuado al
directorio rc adecuado) y tiene un formato similar (consultar las referencias
sobre las capacidades y la sintaxis completa) a:
iptables -A Type -i Interface -p protocol -s SourceIP --source-port Port -d
DestinationIP --destination-port Port -j Action
12) GnuPG: esta herramienta permite encriptar datos para su posterior envo
(por ejemplo, correo electrnico) o almacenamiento, y tambin para generar
firmas digitales (cumple con el estndar de la RFC2440) y no utiliza algoritmos
patentados, lo cual significa ms libertad en el Open Source pero prdida de
compatibilidad con otras herramientas (por ejemplo, PGP 2.0) que utilizan
algoritmos como el IDEA y RSA. Para su compilacin y/o instalacin, seguir
las indicaciones de sus autores. En primer lugar, se debe crear una par de claves
(pblica y privada) ejecutando como root el comando gpg --gen-key dos veces y
contestando las preguntas realizadas por el mismo. Generalmente, estas claves
se almacenarn en /root. Lo siguiente es exportar (por ejemplo, a una pgina
web) la clave pblica para que otros usuarios la puedan utilizar para encriptar
los correos/informacin que slo podr ver el usuario que ha generado la clave
pblica. Para ello, habr que utilizar gpg --export -ao UID, lo cual generar un
archivo ASCII de la clave pblica del usuario UID.
Para importar una clave pblica de otro usuario, se puede usar gpg --import
filename, y para firmar una clave (significa indicarle al sistema que se est de
acuerdo en que la clave firmada es de quien dice ser), se puede utilizar gpg
GNUFDL PID_00167544 55 Administracin de red
--sign-key UID. Para verificar una clave, se puede utilizar gpg --verify file/data
y para encriptar/desencriptar gpg -sear UID file g, gpg -d file, respectivamente
[Gnu].
13) Logcheck: una de las actividades de un administrador de red es verificar
diariamente (ms de una vez por da) los archivos log para detectar posibles
ataques/intrusiones o eventos que puedan dar indicios sobre estas cuestiones.
Esta herramienta selecciona (de los archivos log) informacin condensada de
problemas y riesgos potenciales y luego enva esta informacin al responsable,
por ejemplo, a travs de un correo. El paquete incluye utilidades para ejecu-
tarse de modo autnomo y recordar la ltima entrada verificada para las sub-
siguientes ejecuciones. Para informacin sobre la configuracin/instalacin,
podis consultar las referencias [Log].
14) PortSentry y Tripwire: estas herramientas ayudan en las funciones del
administrador de red en cuanto a seguridad se refiere. PortSentry permite de-
tectar y responder a acciones de bsqueda de puertos (paso previo a un ataque
o a un spamming) en tiempo real y tomar diversas decisiones respecto a la ac-
cin que se est llevando a cabo. Tripwire es una herramienta que ayudar al
administrador notificando sobre posibles modificaciones y cambios en archi-
vos para evitar posibles daos (mayores). Esta herramienta compara las dife-
rencias entre los archivos actuales y una base de datos generada previamente
para detectar cambios (inserciones y borrado), lo cual es muy til para detectar
posibles modificaciones de archivos vitales como por ejemplo, en archivos de
configuracin. Consultar las referencias sobre la instalacin/configuracin de
estas herramientas [Tri].
15) Xinetd: esta herramienta mejora notablemente la eficiencia y prestaciones
de inetd y tcp -wrappers. Una de las grandes ventajas de xinetd es que puede
hacer frente a ataques de DoA
34
a travs de mecanismos de control para los
servicios basados en la identificacin de direcciones del cliente, en tiempo de
acceso y tiempo de conexin (logging). No se debe pensar que Xinetd es el
ms adecuado para todos los servicios (por ejemplo, FTP y SSH es mejor que
se ejecuten solos como daemons), ya que muchos de ellos generan una gran
sobrecarga al sistema y disponen de mecanismos de acceso seguros que no
crean interrupciones en la seguridad del sistema [Xin].
La compilacin y/o instalacin es simple, slo es necesario configurar dos ar-
chivos: /etc/xinetd.conf (el archivo de configuracin de Xinetd) y /etc/rc.d/init.d/
xinetd (el archivo de inicializacin de Xinetd). El primer archivo contiene dos
secciones: defaults, que es donde se encuentran los parmetros que se aplica-
rn a todos los servicios, y service, que sern los servicios que se pondrn en
marcha a travs de Xinetd. Un ejemplo tpico de la configuracin podra ser:
# xinetd.conf
# Las opciones de configuracin por defecto que se aplican a todos los
(34)
Del ingls denial-of-access.
GNUFDL PID_00167544 56 Administracin de red
# servidores pueden modificarse para cada servicio
defaults
{
instances = 10
log_type = FILE /var/log/service.log
log_on_success = HOST PID
log_on_failure = HOST RECORD
}
# El nombre del servicio debe encontrarse en /etc/services para obtener
# el puerto correcto
# Si se trata de un servidor/puerto no estndar, usa "port = X"
service ftp
{
socket_type = stream
protocol = tcp
wait = no
user = root
server = /usr/sbin/proftpd
}
#service telnet
#{
# socket_type = stream
# protocol = tcp
# wait = no
# user = root
# no_access = 0.0.0.0
# only_from = 127.0.0.1
# banner_fail = /etc/telnet_fail
# server = /usr/sbin/in.telnetd
#}
service ssh
{
socket_type = stream
protocol = tcp
wait = no
user = root
port = 22
server = /usr/sbin/sshd
server_args = -i
}
service http
{
socket_type = stream
protocol = tcp
wait = no
user = root
server = /usr/local/apache/bin/httpd
GNUFDL PID_00167544 57 Administracin de red
}
#service finger
#{
# socket_type = stream
# protocol = tcp
# wait = no
# user = root
# no_access = 0.0.0.0
# only_from = 127.0.0.1
# banner_fail = /etc/finger_fail
# server = /usr/sbin/in.fingerd
# server_args = -l
#}
# Fin de /etc/xinetd.conf
Los servicios comentados (#) no estarn disponibles. En la seccin defaults
se pueden insertar parmetros tales como el nmero mximo de peticiones
simultneas de un servicio, el tipo de registro (log) que se desea tener, desde qu
nodos se recibirn peticiones por defecto, el nmero mximo de peticiones
por IP que se atendern, o servicios que se ejecutarn como superservidores
(imapd o popd), como por ejemplo:
default {
instances = 20
log_type = SYSLOG
authpriv log_on_success = HOST
log_on_failure = HOST
only_from = 192.168.0.0/16
per_source = 3
enabled = imaps
}
La seccin service, una por cada servicio, como por ejemplo:
service imapd {
socket_type = stream
wait = no
user = root
server = /usr/sbin/imapd
only_from = 0.0.0.0/0 #allows every client
no_access = 192.168.0.1
instances = 30
log_on_success += DURATION USERID
log_on_failure += USERID
nice = 2
GNUFDL PID_00167544 58 Administracin de red
redirect = 192.168.1.1 993
#Permite redireccionar el trfico del port 993
#hacia el nodo 192.168.1.1
bind = 192.168.10.4
#Permite indicar a qu interfaz est asociado el servicio para evitar
# problemas de suplantacin de servicio.
}
El archivo /etc/init.d/xinetd permitir poner en marcha el servidor (con el enlace
adecuado, segn el nivel de ejecucin seleccionado, por ejemplo, 3, 4 y 5). Es
conveniente cambiar los atributos de ambos archivos para garantizar que no
son modificados o desactivados con: chmod 700 /etc/init.d/xinetd;
chown 0.0 /etc/init.d/xconfig; chmod 400 /etc/xinetd.conf;
chattr +i /etc/xinetd.conf.
16) Linuxconf: es una herramienta de configuracin y administracin de un
sistema GNU/Linux pero que ha quedado obsoleta, si bien se puede encontrar
todava en algunas distribuciones.
17) Webmin: es otra herramienta (paquetes webmin-core, webmin-dhcp,
webmin-inetd, webmin-sshd...) que permite a travs de una interfaz web (es
necesario tener por ejemplo el servidor Apache instalado), configurar y aadir
aspectos relacionados con la red. Si bien se contina su desarrollo en muchas
distribuciones, no se incluye por defecto. Para ejecutarla, una vez instalada
desde un navegador hay que llamar a la URL https://localhost:10000, que so-
licitar la aceptacin del certificado SSL y el usuario (inicialmente root) y su
clave (passwd).
18) System-config-*: en Fedora existe una variedad de herramientas grficas
que se llaman system-config-"algunacosa" y donde "alguna-cosa" es para lo
cual estn diseadas. En general, si se est en un entorno grfico, se puede
llegar a cada una de ellas por medio de un men; sin embargo, cada una de
estas herramientas implica un men a recordar. Una herramienta que centra-
liza todas las system config es system-config-control en una sola entrada de
men y en una nica interfaz grfica, desde la cual se puede seleccionar de
acuerdo a una organizacin de iconos Para ello, es necesario Applications ->
Add/Remove Software, y en este se arranca como root el gestor grfico de soft-
ware Pirut (y se debe tener habilitados el repositorio Fedora Extras). En la in-
terfaz de Pirut, se usa, por ejemplo, la bsqueda de paquetes disponibles con
el patrn system-config-* haga su seleccin de system-config-control* y haga
un clic en Apply. Entre otras opciones, all se podrn configurar casi todos los
aspectos de red y servicios.
19) Networkmanager: es una herramienta que permite manejar fcilmente
redes inalmbricas y por cable en forma simple y sin grandes complicacio-
nes, pero no es indicado para servidores (solo para mquinas de escritorio). Su
instalacin es muy fcil: apt-get install network-manager-xx, donde xx es
Nota
Ms informacin en Solucorp:
http://www.solucorp.qc.ca/li-
nuxconf/.
Nota
Ms informacin en la p-
gina de Webmin: http://
www.webmin.com/.
GNUFDL PID_00167544 59 Administracin de red
gnome o kde, segn el escritorio instalado. Para configurarlo se deben comen-
tar todas las entradas en (Debian) /etc/network/interfaces, excepto la interfaz de
loopback interface, por ejemplo dejando solo:
auto lo
iface lo inet loopback
Este paso no es obligatorio pero acelera el descubrimiento de las redes/inter-
faces. Sobre Debian se debe tambin agregar un paso extra y es que el usuario
debe integrarse dentro del grupo netdev por una cuestin de permisos. Para
hacerlo, hay que ejecutar (como root o si no con el comando sudo por delante)
adduser usuario_actual netdev y hacer un reboot (o tambin reiniciar la red
con /etc/init.d/networking restart y hacer un logout-login -salir y entrar- para
que el usuario actual se quede incluido en el grupo netdev).
20) Otras herramientas:
Nmap: explorar y auditar con fines de seguridad una red.
Nessus: evaluar la seguridad de una red de forma remota.
Wireshark (ex-Ethereal): analizador de protocolos de red.
Snort: sistema de deteccin de intrusos, IDS.
Netcat: utilidad simple y potente para depurar y explorar una red.
TCPDump: monitorizacin de redes y adquisicin de informacin.
Hping2: genera y enva paquetes de ICMP/UDP/TCP para analizar el fun-
cionamiento de una red.
Ved tambin
Algunas de estas herramientas
sern tratadas en el mdulo de
administracin de seguridad
en la asignatura Administracin
avanzada de sistemas GNU-Li-
nux.
GNUFDL PID_00167544 61 Administracin de red
Actividades
1. Definid los siguientes escenarios de red:
a. Mquina aislada.
b. Pequea red local (4 mquinas, 1 gateway).
c. 2 redes locales segmentadas (2 conjuntos de 2 mquinas, un router cada una y un gateway
general).
d. 2 redes locales interconectadas (dos conjuntos de 2 mquinas + gateway cada una).
e. 2 mquinas conectadas a travs de una red privada virtual. Indicar la ventajas/desventajas
de cada configuracin, para qu tipo de infraestructura son adecuadas y qu parmetros
relevantes se necesitan.
2. Configurad la red de la opcin a, b y d del punto.
GNUFDL PID_00167544 62 Administracin de red
Bibliografa
[Bro01] Scott Bronson. "VPN PPP-SSH". The Linux Documentation Project, 2001.
[Cis00] Cisco. "TCP/IP White Paper", 2000. http://www.cisco.com
[Com01] Douglas Comer. TCP/IP Principios bsicos, protocolos y arquitectura. Prentice Hall,
2001.
[Dra99] Joshua Drake. "Linux Networking". The Linux Documentation Project, 1999.
[Gar98] Bdale Garbee (1998). TCP/IP Tutorial. N3EUA Inc.
[Gnu] Gnupg.org. GnuPG Web Site.http://www.gnupg.org/
[IET] IETF. "Repositorio de Request For Comment desarrollado por Internet Engineering Task
Force (IETF) en el Network Information Center (NIC)".
[KD00] Olaf Kirch; Terry Dawson (2000). Linux Network Administrator's Guide.
O'Reilly Associates. Y como e-book (free) en Free Software Foundation, Inc. http://
www.tldp.org/guides.html
[Law07] David Lawyer. "Linux Mdem". The Linux Documentation Project, 2007.
[Log] LogCheck. http://logcheck.org/
[Mal96] Fred Mallett. TCP/IP Tutorial. FAME Computer Education, 1996.
[Mou01] Gerhard Mourani (2001). Securing and Optimizing Linux: The Ultimate Solution.
Open Network Architecture, Inc.
[PPP00] Corwin Williams, Joshua Drake; Robert Hart (2000). "Linux PPP". The Linux
Documentation Project.
[Ran05] David Ranch (2005). "Linux IP Masquerade" y John Tapsell. Masquerading Made
Simple. The Linux Documentation Project.
[Rid00] Daniel Lpez Ridruejo (2000). "The Linux Networking Overview". The Linux
Documentation Project.
[Sec00] Andrs Seco (2000). "Diald". The Linux Documentation Project.
[Tri] Tripwire.com. Tripwire Web Site. http://www.tripwire.com/
[Vas00] Alavoor Vasudevan (2000). "Modem-Dialup-NT". The Linux Documentation Pro-
ject.
[Wil02] Matthew D. Wilson (2002). "VPN". The Linux Documentation Project.
[Xin] Xinetd Web Site. http://www.xinetd.org/
GNUFDL PID_00167544 63 Administracin de red
Anexo
Controlando los servicios vinculados a red en FCx
Un aspecto importante de todos los servicios es cmo se ponen en marcha. Fcx
(desde la FC6) incluye una serie de utilidades para gestionar los servicios -dae-
mons- (incluidos los de red). Como ya se ha visto en el apartado de adminis-
tracin local, el runlevel es el modo de operacin que especifica que daemons
se ejecutarn. En FC podemos encontrar: runlevel 1 (monousuario), runlevel
2 (multiusuario), runlevel 3 (multiusuario con red), runlevel 5 (X11 ms (run-
level 3). Tpicamente se ejecuta el nivel 5 o 3 si no se necesitan interfaces gr-
ficas. Para determinar qu nivel se est ejecutando, se puede utilizar /sbin/run-
level y para saber qu nivel es el que se arranca por defecto cat /etc/inittab |
grep :initdefault: que nos dar informacin como id:5:initdefault: (tambien se
puede editar el /etc/inittab para cambiar el valor por defecto).
Para visualizar los servicios que se estn ejecutando, podemos utilizar /sbin/
chkconfig list y para gestionarlos podemos utilizar system-config-services
en modo grfico o ntsysv en la lnea de comandos. Para habilitar servicios indi-
viduales podemos utilizar chkconfig. Por ejemplo, el siguiente comando habi-
lita el servicio crond para los niveles 3 y 5: /sbin/chkconfig --level 35 crond on.
Independientemente de cmo se hayan puesto en marcha los servicios, se
puede utilizar /sbin/service status-all o individualmente /sbin/service crond
status para saber cmo est cada servicio. Y tambin gestionarlo (start, stop,
status, reload, restart); por ejemplo, service crond stop para pararlo o service
crond restart para reiniciarlo.
Es importante no deshabilitar los siguientes servicios (a no ser que se sepa
lo que se est haciendo): acpid, haldaemon, messagebus, klogd, network, sys-
logd. Los servicios ms importantes vinculados a la red (aunque no se recogen
todos, s la mayora de ellos en esta lista no exhaustiva) son:
NetworkManager, NetworkManagerDispatcher: es un daemon que per-
mite cambiar entre redes fcilmente (Wifi y Ethernet bsicamente). Si slo
tiene una red no es necesario que se ejecute.
Avahi-daemon, avahi-dnsconfd: es una implementacin de zeroconf y es
til para detectar dispositivos y servicios sobre redes locales sin DNS (es
lo mismo que mDNS).
GNUFDL PID_00167544 64 Administracin de red
Bluetooth, hcid, hidd, sdpd, dund, pand: Bluetooth red inalmbrica es
para dispositivos porttiles (NO ES wifi, 802.11). Por ejemplo, teclados,
mouse, telfonos, altavoces/auriculares, etc.