Upload
uab
View
2
Download
0
Embed Size (px)
Citation preview
GNUFDL • PID_00157327 Administració de sistemes GNU/Linux
Josep Jorba Esteve Remo Suppi Boldrito
Enginyer superior d’Informàtica.Doctor enginyer d’Informàticaper la UAB. Professor dels Estudisd’Informàtica, Multimèdia i Teleco-municacions de la UOC, Barcelona.
Enginyer de Telecomunicaci-ons. Doctor en Informàtica per laUAB. Professor del Departamentd'Arquitectura de Computadorsi Sistemes Operatius, UniversitatAutònoma de Barcelona, Espanya.
Primera edició: setembre 2010© Josep Jorba Esteve, Remo Suppi BoldritoTots els drets reservats© d'aquesta edició, FUOC, 2010Av. Tibidabo, 39-43, 08035 BarcelonaDisseny: Manel AndreuRealització editorial: Eureca Media, SLDipòsit legal: B-33.176-2010
© 2010, FUOC. Es garanteix el permís per a copiar, distribuir i modificar aquest document segons els termes de la GNU FreeDocumentation License, Version 1.2 o qualsevol altra de posterior publicada per la Free Software Foundation, sense seccionsinvariants ni textos de la coberta anterior o posterior. Hi ha una còpia de la llicència en l'apartat "GNU Free DocumentationLicense" d'aquest document.
GNUFDL • PID_00157327 Administració de sistemes GNU/Linux
Els autors agraeixen a la Fundació per a la Universitat
Oberta de Catalunya el finançament de la primera edició
d'aquesta obra, emmarcada en el màster internacional de
Programari lliure ofert per la institució citada.
GNUFDL • PID_00157327 5 Administració de sistemes GNU/Linux
Introducció
Els sistemes GNU/Linux han aconseguit un grau de maduresa significativa,
que els fan perfectament vàlids per a integrar-los en qualsevol ambient de tre-
ball, tant a l'escriptori del PC personal, com al servidor d'una gran organitza-
ció.
L'objectiu principal que ens proposem en aquest curs és la introducció al món
de l'administració dels sistemes GNU/Linux.
Aprendrem com podem proporcionar des de GNU/Linux els serveis necessaris
a diferents ambients d'usuaris i màquines. El camp d'estudi de l'administració
de sistemes és de dimensions molt àmplies i variat pel que fa als coneixements
que són necessaris. Hi ha moltes tasques diferents per fer, amplis problemes
per tractar, i hem de disposar de grans coneixements de maquinari i progra-
mari; així mateix, tampoc hi sobra una mica de psicologia per a tractar amb
els usuaris finals dels sistemes.
El curs no pretén abordar una distribució GNU/Linux particular, però se n'han
escollit un parell de significatives, pel seu ampli ús, per a tractar els exemples
de tasques: Debian i Fedora.
Pel que fa al camp de l'administració, s'intentarà gestionar des del nivell més
baix possible, normalment des de la línia d'ordres i els fitxers de configuració.
Es comentaran, si escau, eines de més alt nivell, però cal anar amb compte
amb aquestes últimes, ja que solen ser fortament dependents de la distribució
utilitzada i fins i tot de la versió; a més, aquestes eines solen variar funciona-
litats entre versions. L'administració de baix nivell sol ser molt més dura, però
coneixem amb què estem operant i on podem obtenir els resultats; a més, ens
aporta molts més coneixements extra, i un control precís sobre les diferents
tecnologies utilitzades.
Les distribucions escollides han estat les últimes disponibles de Debian (o com-
patibles, com les variants d'Ubuntu) i Fedora (o compatibles, com diferents
versions comercials de Red Hat, o de comunitat com CentOS); aquestes (Debi-
an i Fedora) són les més utilitzades en el moment de confeccionar aquests ma-
terials. La distribució Debian és un paradigma dins del moviment open sour-
ce, perquè no pertany a cap empresa i està confeccionada bàsicament per les
aportacions dels voluntaris distribuïts per tot el món. Debian, a més, integra
gairebé exclusivament programari lliure (se'n poden afegir d'altres a part). A
més, un gran nombre de distribucions amb èxit important (com les variants
d'Ubuntu, que de fet han superat Debian com a ús en escriptori) tenen Debian
com a distribució base.
GNUFDL • PID_00157327 6 Administració de sistemes GNU/Linux
Nota
Principals distribucions i empreses comentades en el text:
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 és una de les empreses més solvents en el panorama comercial, i per
això és potser la que atorga més suport a escala empresarial (mitjançant serveis
de pagament), mitjançant les seves distribucions comercials de Red Hat En-
terprise Linux (també hi ha variants lliures alternatives com CentOS). D'altra
banda, la seva entrada com a patrocinador ha permès ampliar els resultats del
projecte Fedora (i la consegüent distribució GNU/Linux), com a conjunt de
tests per a les seves distribucions posteriors, i un desenvolupament d'una àm-
plia comunitat que ha crescut al voltant seu. Aquest cas forma una interessant
experiència combinada de comunitat i empresa en el desenvolupament de la
distribució (com després s'ha vist amb l'ampliació a altres casos com Novell,
amb la seva versió comercial SUSE Linux i el seu projecte de comunitat Open-
SUSE). Per contra, en Debian el suport depèn dels voluntaris i del coneixement
compartit dels usuaris, i se centra en la seva comunitat, encara que en els úl-
tims temps també ha rebut el suport (no sense certs problemes en el procés)
de Canonical, desenvolupador d'Ubuntu.
Com que l'administració de sistemes és un camp tan ampli, aquest manual
només ens pretén introduir en aquest apassionant (i com no, també de vegades
frustrant) món. Veurem algunes de les tasques típiques, i com podem tractar
les problemàtiques que ens apareixen. Però l'administració és un camp que
s'aprèn dia a dia, amb el treball diari. I des d'aquí advertim que aquest manual
és un treball obert, que amb els seus encerts i els errors més que probables es
pot veure complementat amb els comentaris dels seus (sofridors) usuaris. De
manera que són benvinguts, per part dels autors, qualsevol tipus de comentaris
i suggeriments de millora d'aquests materials.
Comentem, finalment, que el contingut reflecteix l'estat de les distribucions
i de les eines d'administració en el moment de la seva confecció, o de les cor-
responents revisions o reedicions.
GNUFDL • PID_00157327 7 Administració de sistemes GNU/Linux
Continguts
Mòdul didàctic 1Introducció al sistema operatiu GNU/LinuxJosep Jorba Esteve
1. Programari lliure i open source
2. UNIX. Una mica d'història
3. Sistemes GNU/Linux
4. El perfil de l'administrador de sistemes
5. Tasques de l'administrador
6. Distribucions de GNU/Linux
7. Què veurem...
Mòdul didàctic 2Nivell d'usuariRemo Suppi Boldrito
1. Introducció al sistema GNU/Linux
2. Conceptes i ordres bàsiques
3. Instal·lació i arrencada de GNU/Linux (conceptes bàsics)
4. Configuracions bàsiques
5. L'entorn gràfic
Mòdul didàctic 3Programació d'ordres combinades (shell scripts)Remo Suppi Boldrito
1. Introducció: l'intèrpret d'ordres
2. Elements bàsics d'un shell script
Mòdul didàctic 4Migració i coexistència amb sistemes no LinuxJosep Jorba Esteve
1. Sistemes informàtics: ambients
2. Serveis en GNU/Linux
3. Tipologies d'ús
4. Migrar o coexistir
5. Taller de migració: anàlisi de casos d'estudi
Mòdul didàctic 5Administració localJosep Jorba Esteve
1. Eines bàsiques per a l'administrador
2. Distribucions: particularitats
3. Nivells d'arrencada i serveis
4. Observar l'estat del sistema
5. Sistema de fitxers
GNUFDL • PID_00157327 8 Administració de sistemes GNU/Linux
6. Usuaris i grups
7. Servidors d'impressió
8. Discos i gestió de filesystems
9. Programari: actualització
10. Feines no interactives
11. Taller: pràctiques combinades dels apartats
Mòdul didàctic 6Administració de xarxaRemo Suppi Boldrito
1. Introducció a TCP/IP (paquet TCP/IP)
2. Conceptes en TCP/IP
3. Com s'assigna una adreça d'Internet?
4. Com s'ha de configurar la xarxa?
5. Configuració del DHCP
6. Aliàsing d'IP
7. IP masquerade
8. NAT amb el nucli 2.2 o superiors
9. Com cal configurar una connexió DialUP i PPP?
10. Configuració de la xarxa mitjançant hotplug
11. Xarxa privada virtual (VPN)
12. Configuracions avançades i eines
GNUFDL • PID_00157327 9 Administració de sistemes 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
software.
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_00157327 10 Administració de sistemes 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, repre-
sented 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 drawings)
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 in-
put 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_00157327 11 Administració de sistemes 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_00157327 12 Administració de sistemes 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 Modifi-
ed 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.
• 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.
GNUFDL • PID_00157327 13 Administració de sistemes GNU/Linux
• 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", Preser-
ve the Title of the section, and preserve in the section all the substance
and tone of each of the contributor acknowledgements and/or dedicati-
ons given 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.
• 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 parties–for example,
statements of peer review or that the text has been approved by an organiza-
tion as the authoritative definition of a standard.
GNUFDL • PID_00157327 14 Administració de sistemes GNU/Linux
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.
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.
GNUFDL • PID_00157327 15 Administració de sistemes GNU/Linux
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 compilati-
on 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
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.
GNUFDL • PID_00157327 16 Administració de sistemes GNU/Linux
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
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.
GNUFDL • PID_00157327 17 Administració de sistemes GNU/Linux
"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
"GNU Free Documentation License".
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.
GNUFDL • PID_00157327 18 Administració de sistemes GNU/Linux
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_00157327 19 Administració de sistemes GNU/Linux
Bibliografia
[Bai03] Bailey, E. C. (2003). RedHat Maximum RPM. Ofereix una àmplia vi-
sió dels sistemes de paquets de programari de les distribucions Debian i Fedo-
ra/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. Notícies open source. <http://barrapunto.com>.
[Bas] Mike, G. "BASH Programming - Introduction HOWTO". The Li-
nux Documentation Project.http://es.tldp.org/COMO-INSFLUG/COMOs/Bash-
Prog-Intro-COMO/. Ofereix una àmplia introducció (i conceptes avançats) a
la programació de shell scripts en Bash, i també nombrosos exemples.
Barnett, Bruce. "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. "VPN PPP-SSH". The Linux Documentation Project,
2001.
[Bul] Bulma Linux User Group. Documentació general i comunitats d'usuaris.
http://bulmalug.net
[Cen] The Comunity ENTerprise Operatyng System. http://www.centos.org
[Cis00] Cisco. "TCP/IP White Paper", 2000. http://www.cisco.com
[Com01] Douglas Comer. TCP/IP Principios básicos, protocolos y arquitectura.
Prentice Hall, 2001.
[Coo] Cooper, M. (2006). "Advanced bash Scripting Guide". The Linux Do-
cumentation Project (guies). http://tldp.org/LDP/abs/html/index.html. Ofereix
una àmplia introducció (i conceptes avançats) a la programació de shell scripts
en Bash, i també nombrosos exemples.
[Debb] Comunitat Debian. "Distribució Debian". http://www.debian.org
[Deb] Debian. "Lloc de Seguretat de Debian". http://www.debian.org/secu-
rity/
[Debba] Debian. "Software Libre vs Software Abierto". http://
www.debian.org/intro/free.es.html
[Dis] Distrowatch. Distribucions Linux disponibles. Seguiment de les distri-
bucions GNU/Linux i novetats dels paquets de programari. I enllaços als llocs
de descàrrega de les imatges ISO dels CD/DVD de les distribucions GNU/Li-
nux. http://www.distrowatch.com
GNUFDL • PID_00157327 20 Administració de sistemes GNU/Linux
[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. Llista de projectes open source. http://freshmeat.org
[Fri02] Frisch, A. (2002). Essential System Administration. O'Reilly. Ad-
ministració de GNU/Linux i UNIX. Comenta de manera àmplia aspectes
d'administració local i gestió de sistemes d'impressió.
[FSF] FSF. Free Software Foundation i Projecte GNU. http://www.gnu.org
[Gar98] Bdale Garbee. TCP/IP Tutorial. N3EUA Inc., 1998.
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 Do-
cumentation Project. Ofereix informació actualitzada dels sistemes d'impressió
i la seva configuració, i també detalls d'algunes impressores. Per a detalls
concrets de models d'impressora i controladors, us podeu dirigir a: http://
www.linuxprinting.org/
[Hin00] Hinner, M. "Filesystems HOWTO". The Linux Documentation Project.
Informació sobre els diferents sistemes de fitxers disponibles i els esquemes de
creació de particions per a la instal·lació del sistema.
[His] HispaLinux. "Comunidad Hispana de Linux". Documentación general
y comunidades de usuarios. http://www.hispalinux.es
[IET] IETF. "Repositori de Request For Comment desenvolupats per la 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] Distribución Knoppix. http://knoppix.org
GNUFDL • PID_00157327 21 Administració de sistemes GNU/Linux
[Koe] Koehntopp, K. "Linux Partition HOWTO". The Linux Documentation
Project. Informació sobre els diferents sistemes de fitxers disponibles i els es-
quemes de creació de particions per a la instal·lació del sistema.
[Law07] David Lawyer (2007). "Linux Módem". The Linux Documentation
Project.
[Lev] Levenez, Eric. "UNIX History". http://www.levenez.com/unix
Linux Journal. http://www.linuxjournal.com
Linux Magazine. 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] The Linux Documentation Project (LDP). Col·lecció de guies i manuals
que cobreixen qualsevol dels aspectes de GNU/Linux. Documentació general
i comunitats d'usuaris. http://www.tldp.org
[Mal96] Fred Mallett (1996). TCP/IP Tutorial. FAME Computer Education.
Mike G. "Programación en BASH - COMO de introducción".http://
es.tldp.org/COMO-INSFLUG/COMOs/Bash-Prog-Intro-COMO/
[Mon] Monit. http://www.tildeslash.com/monit/
[Mor 03] Morill, D. (2003). Configuración de sistemas Linux. Anaya Multi-
media. Bona referència de configuració de sistemes Linux, amb alguns casos
d'estudi en diferents entorns; comenta diferents distribucions Debian i Red
Hat.
[Mou01] Gerhard Mourani (2001). Securing and Optimizing Linux: The Ulti-
mate Solution. Open Network Architecture, Inc.
[Mor03] Morill, D. (2003). Configuración de sistemas Linux. Anaya Multime-
dia.
[Nem06] Nemeth, E.; Snyder, G.; Hein, T. R. (2006). Linux Administra-
tion Handbook (2a. ed.). Prentice Hall. Tracta de manera àmplia la majoria
d'aspectes d'administració i és una bona guia genèrica per a qualsevol distri-
bució.
[New] Newsforge. Notícies 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 Foundati-
on, Inc. http://www.tldp.org/guides.html
GNUFDL • PID_00157327 22 Administració de sistemes GNU/Linux
[OSDb] OSDN. Open Source Development Network. Comunitat de llocs web,
notícies, desenvolupaments, projectes, etc. http://osdn.com
[OSIa] OSI. Llista de llicències open source. http://www.opensource.org/licen-
ses/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. "Corwin Williams, Joshua Drake and Robert Hart". The
Linux Documentation Project, 2000.
[Pri] Pritchard, S. "Linux Hardware HOWTO". The Linux Documentation Pro-
ject.
[PS02] Enríquez, Ricardo; Sierra, Pío (2002). Open Source. Anaya Multi-
media.
[Qui01] Quigley, E. (2001). Linux shells by Example. Prentice Hall. Comenta
els diferents intèrprets de programació en GNU/Linux, i també les seves sem-
blances i diferències.
[Ran05] David Ranch. "Linux IP Masquerade" i John Tapsell. Masquera-
ding Made Simple . The Linux Documentation Project, 2005.
[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.
[Rayb] Raymond, E. S. "The Linux Installation HOWTO". The Linux Docu-
mentation Project.
Red Hat Inc. "Distribución Red Hat". http://www.redhat.com
[Rid00] Daniel López Ridruejo. "The Linux Networking Overview". The
Linux Documentation Project, 2000.
Robbins, Arnold. "UNIX in a Nutshell" (3a. 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, novembre). "25 aniversario de UNIX". Byte
España (núm. 1).
Scientific Linux. http://www.scientificlinux.org
GNUFDL • PID_00157327 23 Administració de sistemes GNU/Linux
[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] Andrés Seco (2000). "Diald". The Linux Documentation Project.
[Skob] Skoric, M. "Linux+WindowsNT mini-HOWTO". The Linux Documen-
tation Project.
[Sla] Slashdot. Lloc de notícies generals de la comunitat Open Source, informà-
tica i Internet. http://slashdot.org.
[SM02] Schwartz, M. i altes (2002). Multitool Linux - Practical Uses for Open
Source Software. Addison Wesley.
[Smb] Entrada Server Message Block a la Wikipedia. http://en.wikipedia.org/
wiki/Server_Message_Block
[Smi02] Smith, R. (2002). Advanced Linux Networking.
Addison Wesley. Administració de GNU/Linux i UNIX. Comenta de manera
àmplia aspectes d'administració local i gestió de sistemes d'impressió.
[Sob10] Sobell, M. G. (2010). A Practical Guide to Fedora and Red Hat Enterprise
Linux. Prentice Hall. És una bona guia d'administració local per a distribucions
Red Hat i Fedora.
[Sou] Sourceforge. Llista de projectes open source. http://sourceforge.org
[Sta02] Stallman, Richard (2002). "Discusión por Richard Stallman sobre
la relación 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 (guies). És una àmplia introducció a les
eines disponibles en GNU/Linux.
[Sun 02] Sundaram, R. (2002). "The dosemu HOWTO". The Linux Docu-
mentation Project.
[Tan87] Tanenbaum, Andrew (1987). Sistemas operativos: diseño e imple-
mentación. Prentice Hall.
[Tan06] Tanenbaum, Andrew; Woodhull, Albert S. (2006). The Minix
Book: Operating Systems Design and Implementation (3a. ed.). Prentice Hall.
GNUFDL • PID_00157327 24 Administració de sistemes GNU/Linux
[Tri] Tripwire.com. Tripwire Web Site. http://www.tripwire.com/
[Ubn] Distribució Ubuntu. http://www.ubuntu.com
[Vas00] Alavoor Vasudevan (2000). "Modem-Dialup-NT". The Linux Docu-
mentation Project.
[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. i altres (2002). Running Linux 4th edition. O'Reilly.
Administració de GNU/Linux i UNIX. Comenta de manera àmplia aspectes
d'administració local i gestió de sistemes d'impressió.
[Woo] Wood, D. "SMB HOWTO". The Linux Documentation Project.
[Xin] Xinetd Web Site. http://www.xinetd.org/
GNUFDL • PID_00167521 Introducció al sistema operatiu GNU/Linux
© 2010, FUOC. Es garanteix el permís per a copiar, distribuir i modificar aquest document segons els termes de la GNU FreeDocumentation License, Version 1.2 o qualsevol altra de posterior publicada per la Free Software Foundation, sense seccionsinvariants ni textos de la coberta anterior o posterior. Hi ha una còpia de la llicència en l'apartat "GNU Free DocumentationLicense" d'aquest document.
GNUFDL • PID_00167521 Introducció al sistema operatiu GNU/Linux
Índex
Introducció.................................................................................................. 5
1. Programari lliure i open source..................................................... 7
2. UNIX. Una mica d'història............................................................... 13
3. Sistemes GNU/Linux.......................................................................... 22
4. El perfil de l'administrador de sistemes...................................... 26
5. Tasques de l'administrador............................................................. 31
5.1. Tasques d'administració local del sistema .................................. 31
5.2. Tasques d'administració de xarxa ............................................... 33
6. Distribucions de GNU/Linux........................................................... 36
6.1. Debian ......................................................................................... 41
6.2. Fedora .......................................................................................... 45
7. Què veurem.......................................................................................... 50
Activitats...................................................................................................... 53
Bibliografia................................................................................................. 54
GNUFDL • PID_00167521 5 Introducció al sistema operatiu GNU/Linux
Introducció
Els sistemes GNU/Linux [Joh98] ja no són una novetat; tenen una àmplia va-
rietat d'usuaris i d'àmbits de treball on són utilitzats.
El seu origen es remunta al mes d'agost de 1991, quan un estudiant finlandès
anomenat Linus Torvalds va anunciar, en el newsgroup comp.os.minix que ha-
via creat el seu propi nucli de sistema operatiu i el va oferir a la comunitat
de desenvolupadors perquè el provessin i suggerissin millores per a fer-lo més
utilitzable. Aquest seria l'origen del nucli (o kernel) del sistema operatiu que,
més tard, es diria Linux.
D'altra banda, l'FSF (Free Software Foundation), mitjançant el seu projecte
GNU, produïa des de 1984 programari que podia ser utilitzat lliurement, se-
gons el que Richard Stallman (membre de l'FSF) considerava programari lliure:
aquell del qual podem aconseguir les fonts (codi), estudiar-les i modificar-les,
i també redistribuir-lo sense que ens obliguin a pagar-hi. En aquest model, el
negoci no es troba en l'ocultació del codi, sinó en el programari complemen-
tari afegit, en l'adequació del programari als clients i en els serveis afegits, com
el manteniment i la formació d'usuaris (el suport que els oferim), ja sigui en
forma de material, llibres i manuals, o en cursos de formació.
La combinació (o suma) del programari GNU i del nucli Linux és la que ens
ha portat als actuals sistemes GNU/Linux. Actualment, tant els moviments
open source, des de diferents organitzacions (com l'FSF) i empreses com les que
generen les diferents distribucions Linux (Red Hat, Canonical Ubuntu, Man-
drake, Novell SUSE, etc.), passant per grans empreses (com HP, IBM o Sun,
que proporcionen suports o patrocinis), han donat una empenta molt gran
als sistemes GNU/Linux fins a situar-los al nivell de poder competir, i superar,
moltes de les solucions de propietat tancades existents.
Els sistemes GNU/Linux no són ja una novetat. El programari GNU es va
iniciar a mitjan dècada dels vuitanta, i el nucli Linux a començaments
dels noranta. Linux es recolza en tecnologia provada de UNIX, amb més
de quaranta anys d'història.
En aquest mòdul introductori veurem algunes idees generals dels movi-
ments open source i free software, i també una mica d'història de Linux i dels
seus orígens compartits amb UNIX, d'on ha heretat més de quaranta anys
d'investigació en sistemes operatius.
Nota
Podeu veure una còpia delmissatge de Linus i les re-accions inicials a http://groups.google.com/group/comp.os.minix/browse_thread/thread/76536d1fb451ac60/b813d52cbc5a044b.
GNUFDL • PID_00167521 7 Introducció al sistema operatiu GNU/Linux
1. Programari lliure i open source
Sota la idea dels moviments (o filosofies) del programari lliure i open source
[OSIc] [OSIb] (també anomenat de codi obert o programari obert), es troben di-
verses formes de programari que, encara que no són totes del mateix tipus, sí
que comparteixen moltes idees comunes.
La denominació d'un producte de programari com a codi obert compor-
ta, com a idea més important, la possibilitat d'accedir al seu codi font, i
la possibilitat de modificar-lo i redistribuir-lo de la manera que es con-
sideri convenient, subjectes a una determinada llicència de codi obert,
que ens dóna el marc legal.
Davant un codi de propietat, en el qual un fabricant (empresa de programari)
el tanca, ocultant-lo i restringint-se els drets a si mateix, sense donar possibili-
tat de fer cap adaptació ni canvis que no hagi fet ell prèviament, el codi obert
ofereix, entre altres consideracions:
1)�Accés�al�codi�font: ja sigui per estudiar-lo (ideal per a educació) o modifi-
car-lo, per corregir errors, adaptar-lo o afegir més prestacions.
2)�Gratuïtat (d'ús i possiblement de preu): normalment, el programari, ja sigui
en forma binària o en la forma de codi font, es pot obtenir lliurement o per
una mòdica quantitat en concepte de despeses d'empaquetament, distribució
i valors afegits. Això no treu que el programari no pugui ser distribuït comer-
cialment a un determinat preu fixat.
3)�Evitar�monopolis�de�programari�de�propietat: no dependre d'una única
opció o únic fabricant del nostre programari. Això és més important quan es
tracta d'una gran organització, ja sigui una empresa o un estat, que no pot (o
no li convindria) posar-se a les mans d'una única solució i passar a dependre'n
exclusivament.
4)�Un�model�d'avenç: no basat en l'ocultació d'informació, sinó en la com-
partició del coneixement (semblant al de la comunitat científica), per a acon-
seguir progressos de manera més ràpida, amb més qualitat, ja que les elecci-
ons preses estan basades en el consens de la comunitat, i no en els capricis
d'empreses desenvolupadores de programari de propietat.
Nota
[OSIc] OSI (2003). Open Sour-ce Iniciative.http://www.opensource.org[OSIb] OSI (2003). Open Sour-ce Definition.http://www.opensource.org/docs/definition.php
GNUFDL • PID_00167521 8 Introducció al sistema operatiu GNU/Linux
Crear programes i distribuir-los al costat del codi font no és nou. Ja des dels
inicis de la informàtica i en els inicis de la xarxa Internet s'havia fet així. Tan-
mateix, el concepte de codi obert com a tal, la definició i la redacció de les
condicions que havia de complir, daten de mitjan 1997.
Eric Raymond i Bruce Perens van ser els que van divulgar la idea. Raymond
[Ray98] va ser l'autor de l'assaig titulat La catedral i el basar, que parlava sobre
les tècniques de desenvolupament de programari utilitzades per la comunitat
Linux, encapçalada per Linus Torvalds, i la comunitat GNU de la Free Software
Foundation (FSF), encapçalada per Richard Stallman. Per la seva part, Bruce
Perens era en aquell moment el cap del projecte Debian, que treballava en la
creació d'una distribució de GNU/Linux integrada únicament amb programari
lliure.
Dues de les comunitats més importants són l'FSF, amb el seu projecte
de programari GNU, i la comunitat open source, el màxim exponent de
projecte del qual és Linux. GNU/Linux és el resultat de la unió dels seus
treballs.
Una distinció important entre les comunitats FSF i open source són les definici-
ons de codi obert (open source) i programari lliure (free software). [Deba] [PS02]
El programari�lliure (free software) [FSF] és un moviment que parteix de les
idees de Richard Stallman, que considera que cal garantir que els programes
estiguin a l'abast de tothom de manera gratuïta, que s'hi tingui accés lliure i
es puguin utilitzar segons el desig de cadascú. Una distinció important, que
va causar certes reticències a les empreses, és el terme free. En anglès, aquesta
paraula té el doble significat de 'gratuït' i 'lliure'. La gent de l'FSF buscava les
dues coses, però era difícil vendre tots dos conceptes a les empreses. La pre-
gunta típica era: com es podia guanyar diners amb això? La resposta va venir
de la comunitat Linux (amb Linus Torvalds al capdavant), quan va aconseguir
tenir un producte que encara no havia aconseguit la comunitat GNU i l'FSF en
aquells moments: un sistema operatiu complet lliure amb codi font disponi-
ble. En aquest moment va ser quan a una part de la comunitat se li va ocórrer
ajuntar les diferents activitats que hi havia en la filosofia del programari lliure
sota la nova denominació de codi obert (open source).
Open�source es va registrar com una marca de certificació, a la qual es podien
adherir els productes de programari que en respectessin les especificacions.
Això no va agradar a tothom; de fet, hi sol haver certa separació i controvèrsies
entre els dos grups de l'open source i l'FSF (amb GNU), encara que són més les
coses que els uneixen que les que els separen.
Nota
Podeu veure la versió espa-nyola de [Ray98] a http://es.tldp.org/Otros/catedral-ba-zar/cathedral-es-paper-00.html
GNUFDL • PID_00167521 9 Introducció al sistema operatiu GNU/Linux
En certa manera, per als partidaris del programari lliure (com l'FSF), el codi
obert (o open source) constitueix un pas en fals, ja que representa una certa
"venda" al mercat dels seus ideals, i deixa la porta oberta perquè es vagi fent
de propietat el programari que era lliure. Els partidaris de l'open source veuen
l'oportunitat de promocionar el programari que, d'una altra manera, estaria en
una utilització minoritària, mentre que amb la divulgació i la posada en comú
per a tothom, incloent-hi les empreses que vulguin participar en el codi obert,
es pot entrar amb suficient força per a plantar cara al programari de propietat.
La idea que persegueixen tant l'FSF com l'open source és la d'augmentar
la utilitat del programari lliure, oferint així una alternativa a les soluci-
ons úniques que volen imposar les grans empreses. Les diferències entre
totes dues filosofies són més ideològiques que pràctiques.
Una vegada establertes les idees bàsiques de la comunitat del codi obert, ar-
ribem al punt en què calia concretar de manera clara quins criteris havia de
complir un producte de programari per a considerar-se de codi obert. Calia te-
nir una definició de codi obert [OSIb], que inicialment va escriure Bruce Perens
el juny de 1997 com a resultat de comentaris dels desenvolupadors de la distri-
bució Debian Linux, i que posteriorment va ser reeditada (amb modificacions
menors) per l'organització OSI (Open Source Initiative). Aquesta organització
és l'encarregada de regular la definició i controlar les llicències de codi obert.
El codi obert està regulat per una definició pública, que s'utilitza com a
base de la redacció de les seves llicències de programari.
Un petit resum (interpretació) de la definició: un open source software [OSIb],
o programari de codi font obert, ha de complir els requisits següents:
1)�Es�pot�copiar,�regalar�o�vendre�a�tercers�el�programari, sense haver de
pagar-hi. Es permet copiar el programa.
2)�El�programa�ha�d'incloure�el�codi�font i n'ha de permetre la distribució
tant en forma compilada com en font. O, en tot cas, cal facilitar alguna manera
d'obtenir els codis font (per exemple, descàrrega des d'Internet). No és permès
ocultar el codi, o donar-lo en representacions intermèdies. Garanteix que es
poden fer modificacions.
3)�La�llicència�del�programari�ha�de�permetre�que�es�puguin�fer�modifi-
cacions i treballs que se'n derivin, i que llavors es puguin distribuir sota la
mateixa llicència que l'original. Permet reutilitzar el codi original.
GNUFDL • PID_00167521 10 Introducció al sistema operatiu GNU/Linux
4)�Es�pot�requerir�la�integritat�del�codi�de�l'autor, és a dir, les modificaci-
ons es poden presentar en forma de pegats (patchs) al codi original, o es pot
demanar que tinguin noms o números diferents dels originals. Això protegeix
l'autor de quines modificacions es puguin considerar com a seves. Aquest punt
depèn del que digui la llicència del programari.
5)�La�llicència�no�ha�de�discriminar�cap�persona�o�grup. No s'ha de restringir
l'accés al programari. Un cas a part són les restriccions per llei, com les de
les exportacions tecnològiques fora dels Estats Units a tercers països. Si hi ha
restriccions d'aquest tipus, cal esmentar-les.
6)�No�ha�de�discriminar�camps�laborals. El programari es pot utilitzar en
qualsevol ambient de treball, encara que no hi hagi estat pensat. Una altra
lectura és permetre finalitats comercials; ningú no pot impedir que el progra-
mari s'utilitzi amb finalitats comercials.
7)�La�llicència�és�aplicable�a�tothom que rebi el programa.
8)�Si�el�programari�forma�part�d'un�producte�més�gran,�ha�de�romandre
amb�la�mateixa�llicència. Això controla que no se separin parts per a formar
programari de propietat (de manera no controlada). En el cas del programari
de propietat, cal informar que hi ha parts de programari de codi obert (i quines
són).
9)�La�llicència�no�ha�de�restringir�cap�programari�incorporat�o�distribuït
conjuntament, és a dir, incorporar-lo no ha de representar cap barrera per a
un altre producte de programari distribuït conjuntament. Aquest és un punt
"polèmic", ja que sembla contradir-se amb l'anterior. Bàsicament, diu que qual-
sevol pot agafar programari de codi obert i afegir-lo al seu sense que afecti
les condicions de la llicència (per exemple, de propietat), encara que sí que,
segons el punt anterior, hauria d'informar que hi ha parts de codi obert.
10)�La�llicència�ha�de�ser�tecnològicament�neutra. No s'han d'esmentar mit-
jans de distribució únics, o excloure's possibilitats. Per exemple, no es pot li-
mitar (per llicència) que es faci la distribució en forma de CD, FTP o mitjançant
web.
La llicència que porti el programa ha de complir les especificacions anteriors
perquè el programa es consideri de codi obert. L'organització OSI s'encarrega
de comprovar que les llicències compleixen les especificacions. A la pàgina
web Open Source Licenses es pot trobar la llista de les llicències [OSIa]; unes
de les més famoses i utilitzades són les GPL (GNU public licenses).
Sota la GPL, el programari pot ser copiat i modificat, però les modificacions
s'han de fer públiques sota la mateixa llicència. I s'impedeix que el codi es
barregi amb codi de propietat, per a evitar així que el codi de propietat es faci
amb parts obertes. Hi ha una llicència LGPL que és pràcticament igual, però
Nota
Aquesta definició de codiobert no és per si mateixa unallicència de programari, sinómés aviat una especificació dequins requisits hauria de com-plir una llicència de programa-ri de codi obert.
Nota
[OSIa] OSI. Llista de llicènciesopen source.http://www.opensource.org/li-censes/index.html
GNUFDL • PID_00167521 11 Introducció al sistema operatiu GNU/Linux
permet que el programari amb aquesta llicència sigui integrat a programari de
propietat. Un exemple clàssic és la biblioteca (library) C de Linux (amb llicència
LGPL). Si fos GPL, només es podria fer servir per a desenvolupar programari
lliure, però amb la LGPL es permet usar-la per a desenvolupar programari de
propietat.
Molts projectes de programari lliure, o amb part de codi obert i part de propi-
etat, tenen la seva pròpia llicència: Apache (basada en la BSD), Mozilla (MPL i
NPL de Netscape), etc. Bàsicament, a l'hora de posar el programari com a open
source podem posar la nostra pròpia llicència que compleixi la definició ante-
rior (de codi obert), o podem escollir llicenciar sota una llicència ja establerta
o, com en el cas de la GPL, ens obliga que la nostra llicència també sigui GPL.
Una vegada vist el concepte de codi obert i les seves llicències, ens queda per
tractar fins�a�quin�punt�és�rendible�per�a�una�empresa�treballar�o�produir
codi�obert. Si no fos atraient per a les empreses, perdríem alhora tant un client
potencial com un dels principals productors de programari.
El codi obert és també atraient per a les empreses, amb un model de
negoci en què preval el valor afegit al producte.
En el codi obert hi ha diferents rendibilitats atraients amb vista a les empreses:
a) Per a les empreses desenvolupadores de programari, es crea un problema:
com és possible guanyar diners sense vendre un producte? Es gasten molts di-
ners per a desenvolupar un programa i després és necessari obtenir beneficis.
Bé, la resposta no és simple: no es pot aconseguir amb qualsevol programa-
ri, la rendibilitat es troba en el tipus de programari que pot generar beneficis
més enllà de la simple venda. Normalment, cal fer un estudi de si l'aplicació
es tornarà rendible en desenvolupar-la com a programari obert (la majoria sí
que ho farà), basant-se en les premisses que tindrem un descens de despesa
en desenvolupament (la comunitat ens ajudarà), reducció de manteniment
o correcció d'errors (la comunitat pot oferir això molt de pressa), i tenir en
compte l'augment del nombre d'usuaris que ens proporcionarà el codi obert,
i també les necessitats que tindran dels nostres serveis de suport o documen-
tació. Si la balança és positiva, llavors serà viable prescindir dels ingressos ge-
nerats per les vendes.
b) Augmentar la quota d'usuaris.
c) Obtenir més flexibilitat de desenvolupament; com més persones hi inter-
vinguin, més gent hi haurà per a detectar errors.
GNUFDL • PID_00167521 12 Introducció al sistema operatiu GNU/Linux
d) Els ingressos majoritàriament vindran pel costat del suport, la formació
d'usuaris i el manteniment.
e) En empreses que utilitzen programari cal considerar molts paràmetres a
l'hora d'escollir el programari per al desenvolupament de les tasques; es poden
tenir en compte coses com el rendiment, la fiabilitat, la seguretat, l'escalabilitat
i el cost monetari. I encara que sembla que el codi obert ja representa per si
mateix una elecció pel cost econòmic, cal dir que hi ha programari obert que
pot competir amb el de propietat en qualsevol dels altres paràmetres (o fins i
tot superar-lo). A més, cal vigilar molt amb les opcions o sistemes de propietat
d'un únic fabricant; no en podem dependre únicament (podem recordar casos,
en altres àmbits, com els vídeos Beta de Sony enfront el VHS, o en els PC
l'arquitectura MicroChannel d'IBM). Hem d'evitar l'ús de monopolis, amb el
que representen: falta de competència en els preus, serveis cars, manteniment
car, poca (o nul·la) varietat d'opcions, etc.
f) Per als usuaris particulars ofereix gran varietat de programari adaptat a tas-
ques comunes, ja que bona part del programari ha estat pensat i ha estat im-
plementat per persones que volien fer aquestes mateixes tasques però no tro-
baven el programari adequat. En el cas de l'usuari particular, un paràmetre
molt important és el cost del programari, però la paradoxa és que en l'usuari
domèstic és on es fa més ús de programari de propietat. Normalment, els usu-
aris domèstics fan ús de productes de programari amb còpies il·legals. Algunes
estadístiques recents indiquen índexs del 60-70% de còpies il·legals domèsti-
ques en alguns països. L'usuari sent que només per tenir l'ordinador domès-
tic PC ja té "dret" de disposar de programari per a usar-lo. En aquests casos
estem sota situacions "il·legals" que, encara que no han estat perseguides àm-
pliament, ho podrien ser, o bé s'intenten controlar per sistemes de llicències
(o activacions de productes). A més, això té uns efectes perjudicials indirectes
sobre el programari lliure, ja que si els usuaris fan un ús ampli de programari
de propietat, això obliga qui es vulgui comunicar amb ells, ja siguin bancs,
empreses o administracions públiques, a fer ús del mateix programari de pro-
pietat, i aquests sí que abonen les llicències dels productes. Una de les "bata-
lles" més importants per al programari lliure és la possibilitat que capti els usu-
aris domèstics, el que es denomina mercat desktop (o escriptori), referit a l'ús
domèstic o d'oficina en les empreses.
g) Finalment, els estats, com a cas particular, poden obtenir beneficis impor-
tants del programari de codi obert, ja que poden disposar de programari de
qualitat a preus "ridículs" comparats amb l'enorme despesa de llicències de
programari de propietat (milers o desenes de milers). A més que el programari
de codi obert permet integrar fàcilment les aplicacions, cal tenir en compte
qüestions culturals (de cada país) com, per exemple, la llengua. Aquest últim
cas és bastant problemàtic, ja que en determinades regions, estats petits amb
llengua pròpia, els fabricants de programari de propietat es neguen a adaptar
les seves aplicacions, o insten que els paguin per fer-ho.
Nota
Les còpies il·legals domèsti-ques també són denominadesde vegades còpies pirates.
GNUFDL • PID_00167521 13 Introducció al sistema operatiu GNU/Linux
2. UNIX. Una mica d'història
Com a antecessor dels nostres sistemes GNU/Linux [Sta], recordarem una mica
la història de UNIX [Sal94] [Lev]. En origen, Linux es va pensar com un clon
de Minix (una implementació acadèmica de UNIX per a PC) i d'algunes idees
desenvolupades en els UNIX de propietat. Però al seu torn, es va desenvolupar
en codi obert, i amb orientació als PC domèstics. Veurem, en aquest apartat
dedicat a UNIX, i en el següent, dedicat a GNU/Linux, com aquesta evolució
ens ha portat fins als sistemes GNU/Linux actuals, que poden competir amb
qualsevol UNIX de propietat i que estan disponibles per a un ampli nombre
d'arquitectures de maquinari, des del simple PC fins als supercomputadors.
Linux pot ser utilitzat en un ampli rang de màquines. En la llista
TOP500 dels supercomputadors més ràpids es poden trobar diversos
supercomputadors amb GNU/Linux: per exemple, el MareNostrum, al
Barcelona Supercomputing Center, un clúster dissenyat per IBM, amb
10.240 CPU PowerPC/Cell amb sistema operatiu GNU/Linux (adaptat
per als requisits d'aquestes màquines). En les estadístiques de la llista
podem observar que els supercomputadors amb GNU/Linux ocupen, en
general, més d'un 75% de la llista.
El UNIX es va iniciar cap a l'any 1969 als laboratoris BTL (Bell Telephone Labs)
d'AT&T. Aquests laboratoris s'acabaven de retirar de la participació d'un pro-
jecte anomenat MULTICS , l'objectiu del qual era crear un sistema operatiu amb
el qual un gran ordinador pogués donar cabuda a un miler d'usuaris simulta-
nis. En aquest projecte participaven els BTL, General Electric i el MIT. Però va
fallar, en part, per ser massa ambiciós per a la seva època.
Mentre es desenvolupava aquest projecte, dos enginyers dels BTL que partici-
paven en MULTICS, Ken�Thompson i Dennis�Ritchie, van trobar un ordina-
dor que no estava utilitzant ningú, un DEC PDP7, que només tenia un assem-
blador i un programa carregador. Thompson i Ritchie van desenvolupar com a
prova (i sovint en el seu temps lliure) parts de UNIX, un programa assembla-
dor (del codi màquina) i el nucli rudimentari del sistema operatiu.
Aquell mateix any, 1969, Thompson va tenir la idea d'escriure un sistema de
fitxers per al nucli creat, de manera que es poguessin emmagatzemar fitxers de
manera ordenada en un sistema de directoris jeràrquics. Després d'unes quan-
tes discussions teòriques (que es van allargar uns dos mesos) es va implemen-
tar el sistema en un parell de dies. A mesura que s'avançava en el disseny del
sistema, al qual es van incorporar alguns enginyers més dels BTL, la màqui-
na original es va quedar petita, i van pensar a demanar-ne una de nova (en
Nota
Podem veure la llista TOP500dels supercomputadors mésràpids a:http://www.top500.org
GNUFDL • PID_00167521 14 Introducció al sistema operatiu GNU/Linux
aquells dies costaven prop de 100.000 dòlars, i era una bona inversió). Es van
haver d'inventar una excusa (ja que el sistema UNIX era un desenvolupament
en temps lliure) i van dir que la volien per a crear un nou processador de text
(aplicació que donava diners en aquells temps). Els van aprovar la compra
d'una PDP11.
El UNIX es remunta a l'any 1969, de manera que té més de quaranta
anys de tecnologies desenvolupades i utilitzades en tot tipus de siste-
mes.
Quan els va arribar la màquina, només hi havia la CPU i la memòria, però
no el disc ni el sistema operatiu. Thompson, sense poder esperar, va dissenyar
un disc RAM en memòria i va utilitzar la meitat de la memòria com a disc i
l'altra per al sistema operatiu que estava dissenyant. Una vegada va arribar el
disc, es va continuar treballant tant en UNIX com en el processador de textos
promès (l'excusa). El processador de textos va ser un èxit (es tractava de Troff,
un llenguatge d'edició que posteriorment va ser utilitzat per a crear les pàgines
man de UNIX), i els BTL van començar a utilitzar el rudimentari UNIX amb el
nou processador de text, de manera que es van convertir en el primer usuari
de UNIX.
En aquells moments es van començar a presentar diversos principis filosòfics
de UNIX [Ray02a]:
• Escriure programes per a fer una cosa i fer-la bé.
• Escriure programes perquè treballin junts.
• Escriure programes perquè manegin fluxos de text.
Una altra idea molt important és que UNIX va ser un dels primers sistemes
pensats�per�a�ser�independents�de�l'arquitectura�de�maquinari, i això ha
permès portar-lo amb èxit a un gran nombre d'arquitectures de maquinari
diferents.
La necessitat de documentar el que s'estava fent, ja que hi havia usuaris ex-
terns, va donar lloc el novembre de 1971 al UNIX Programmer's Manual, que
van firmar Thompson i Richie. En la segona edició (juny de 1972), denomi-
nada V2 (es feia correspondre l'edició dels manuals amb el número de versió
UNIX), es deia que el nombre d'instal·lacions de UNIX ja arribava a les deu. I
aquest nombre va continuar creixent fins a cinquanta en la V5.
Llavors es va decidir (final del 1973) presentar els resultats en un congrés de
sistemes operatius. I com a resultat, diversos centres informàtics i universitats
van demanar còpies de UNIX. AT&T no donava suport ni manteniment de
UNIX, la qual cosa va fer que els usuaris necessitessin unir-se i compartir els
seus coneixements per a formar comunitats d'usuaris de UNIX. AT&T va deci-
Nota
Vegeu: http://www.usenix.org
GNUFDL • PID_00167521 15 Introducció al sistema operatiu GNU/Linux
dir cedir UNIX a les universitats, però tampoc no els donava suport ni correc-
ció d'errors. Els usuaris van començar a compartir les seves idees, informació,
programes, errades, etc. Es va crear una associació denominada USENIX com
a agrupació d'usuaris de UNIX. La seva primera reunió (maig de 1974) va tenir
una dotzena d'assistents.
Una de les universitats que havia obtingut una llicència de UNIX va ser la
Universitat de Califòrnia a Berkeley, on havia estudiat Ken Thompson. El 1975,
Thompson va tornar com a professor allà, i hi va portar l'última versió de
UNIX. Dos estudiants graduats acabats d'incorporar, Chuck Haley i Bill Joy
(que posteriorment va cofundar Sun Microsystems) van començar a treballar
en una implementació de UNIX.
Una de les primeres coses que els va decebre van ser els editors. Joy va perfec-
cionar un editor anomenat ex, fins a transformar-lo en el vi, un editor visual de
pantalla completa. I els dos van escriure un compilador de llenguatge Pascal,
que van afegir al UNIX. Hi va haver certa demanda d'aquesta implementació
de UNIX, i Joy el va començar a produir com el BSD, Berkeley Software Distri-
bution (o UNIX BSD).
El BSD (el 1978) tenia una llicència particular sobre el preu: deia que estava
d'acord amb el cost dels mitjans i la distribució que es tenia en aquell moment.
Així, els nous usuaris acabaven fent alguns canvis o incorporant coses, venent
les seves còpies "refetes" i, al cap d'un temps, els canvis s'incorporaven en la
versió següent del BSD.
Joy també va afegir al seu treball de l'editor vi algunes aportacions més, com
el tractament dels terminals de text, de manera que l'editor fos independent
del terminal en el qual s'utilitzés. Va crear el sistema termcap com a interfície
genèrica de terminals amb controladors per a cada terminal concret, de ma-
nera que en la realització dels programes ja ens podíem oblidar dels terminals
concrets i utilitzar la interfície genèrica.
El pas següent va ser adaptar-lo a diferents arquitectures. Fins a l'any 1977
només es podia executar en màquines PDP; aquell any es van començar a fer
adaptacions per a màquines del moment, com les Interdata i IBM. La versió
7 (V7, el juny de 1979) de UNIX va ser la primera portable. Aquesta versió
va portar molts avenços, ja que contenia awk, lint, make i uucp. El manual
ja tenia 400 pàgines (més dos apèndixs de 400 pàgines cada un). S'hi incloïa
també el compilador de C dissenyat en els BTL per Kernighan i Ritchie, que
s'havia creat per reescriure la major part de UNIX, inicialment en assemblador
i després passat a C amb les parts d'assemblador que fossin només dependents
de l'arquitectura. S'hi va incloure també un intèrpret d'ordres millorada (shell
de Bourne) i instruccions com find, cpio i expr.
GNUFDL • PID_00167521 16 Introducció al sistema operatiu GNU/Linux
La indústria UNIX va començar també a créixer; van començar a aparèixer
versions (implementacions) de UNIX de companyies, com Xenix; hi va haver
una col·laboració entre Microsoft (en els orígens també va treballar amb ver-
sions de UNIX) i SCO per a màquines Intel 8086 (el primer PC d'IBM); van
aparèixer noves versions BSD de Berkeley...
Però va sorgir un nou problema quan AT&T es va adonar que el UNIX era
un producte comercial valuós. En la llicència de la V7 es va prohibir l'estudi
en centres acadèmics, per protegir el secret comercial. Moltes universitats uti-
litzaven fins al moment el codi font de UNIX per a la docència de sistemes
operatius, i van deixar d'usar-lo per a donar només teoria.
En qualsevol cas, cadascú va solucionar el problema a la seva manera. A Ams-
terdam, Andrew�Tanenbaum (autor de prestigi de llibres de teoria de sistemes
operatius) va decidir escriure des del principi un nou sistema operatiu compa-
tible amb UNIX sense utilitzar una sola línia de codi d'AT&T; va anomenar
aquest nou sistema operatiu Minix. Aquest seria el que, posteriorment, servi-
ria el 1991 a un estudiant finlandès per a crear la seva pròpia versió de UNIX,
que va anomenar Linux.
Bill Joy, que continuava a Berkeley desenvolupant el BSD (ja estava en la versió
4.1), va decidir marxar a una nova empresa anomenada Sun Microsystems, en
la qual va acabar els treballs del 4.2 BSD, que després acabaria modificant per a
crear el UNIX de Sun, el SunOS (entorn del 1983). Cada empresa va començar
a desenvolupar les seves versions: IBM amb AIX, DEC amb Ultrix, HP amb
HPUX, Microsoft/SCO amb Xenix, etc. El UNIX va començar (des de 1980)
la seva etapa comercial, i AT&T en va treure una ultima versió anomenada
UNIX System V (SV), de la qual deriven, juntament amb els 4.xBSD, els UNIX
actuals, ja sigui de la branca BSD o de la System V. La SV va tenir diverses
revisions; per exemple, la SV Release 4 va ser una de les més importants. La
conseqüència d'aquestes últimes versions és que més o menys tots els UNIX
existents es van adaptar l'un a l'altre; en la pràctica són versions del System
V R4 d'AT&T o del BSD de Berkeley, adaptades per cada fabricant. Alguns fa-
bricants ho especifiquen i diuen que el seu UNIX és de tipus BSD o System V,
però la realitat és que tots tenen una mica de totes dues, ja que posteriorment
es van fer diversos estàndards de UNIX per a intentar uniformitzar-les. Entre
aquests estàndards trobem els IEEE POSIX, UNIX97, FHS, etc.
Amb el temps, el UNIX es va dividir en diverses branques de sistema; les
dues principals eren que derivava de l'AT&T UNIX o System V, i la de la
Universitat de Califòrnia, el BSD. La majoria dels UNIX actuals deriva
de l'un o de l'altre, o són una barreja de tots dos.
GNUFDL • PID_00167521 17 Introducció al sistema operatiu GNU/Linux
Però AT&T en aquells moments (SVR4) va passar per un procés judicial per
monopoli telefònic (era la principal, si no l'única, companyia telefònica als
Estats Units), que va fer que es dividís en múltiples empreses més petites, i
els drets de UNIX originals van començar un ball de propietaris important:
el 1990 els tenien a mitges l'Open Software Foundation (OSF) i UNIX Inter-
national (UI); després, UNIX Systems Laboratories (USL), que va denunciar la
Universitat de Berkeley per les seves còpies del BSD, però va perdre, ja que la
llicència original no imposava drets de propietat al codi de UNIX. Més tard,
els drets UNIX es van vendre a l'empresa Novell; aquesta en va cedir part a
SCO (que ja en disposava d'alguns cedits per Microsoft des dels seus productes
Xenix), i avui dia encara no està molt clar qui els té finalment: per diferents
fronts els reclamen Novell, l'OSF i SCO.
Un exemple d'aquest problema va ser el cas (octubre de 2003) de la companyia
SCO, que va posar una demanda legal a IBM perquè aquesta, segons SCO, ha-
via cedit part del codi UNIX a versions del nucli Linux, que suposadament in-
clouen algun codi UNIX original. El resultat avui dia és que l'assumpte encara
continua amb certa vigència en els tribunals, amb SCO convertida en un "pà-
ria" de la indústria informàtica que amenaça els usuaris de Linux, IBM i d'altres
UNIX de propietat amb l'afirmació que tenen els drets de UNIX originals i
que els altres hi han de pagar. Encara que, en els últims moviments judicials,
sembla que finalment Novell és el que té els drets de propietat intel·lectual de
UNIX. Caldrà veure com evoluciona aquest cas, i el tema dels drets de UNIX
amb aquest.
Nota
Podeu veure l'opinió de l'FSFsobre el cas SCO a http://www.gnu.org/philosophy/sco/sco.html
GNUFDL • PID_00167521 18 Introducció al sistema operatiu GNU/Linux
Figura 1. Resum històric de diverses versions UNIX
El panorama actual de UNIX ha canviat molt des de l'aparició de Linux (1991),
que a partir dels anys 1995-1999 es va començar a convertir en una alternativa
seriosa als UNIX de propietat, per la gran quantitat de plataformes de maqui-
nari que suporta i l'ampli suport de la comunitat internacional i les empreses
en l'avenç. Hi ha diferents versions de UNIX de propietat que continuen so-
brevivint en el mercat, tant per la seva adaptació a entorns industrials o per
ser el millor sistema operatiu existent en el mercat, o perquè hi ha necessitats
que només es poden cobrir amb UNIX i el maquinari adequat. A més, alguns
dels UNIX de propietat encara són millors que el GNU/Linux quant a fiabili-
tat i rendiment, encara que cada cop més s'escurcen les distàncies, ja que les
empreses mateixes que tenen els seus UNIX de propietat s'interessen cada ve-
gada més en GNU/Linux, i aporten part dels seus desenvolupaments per in-
corporar-los a Linux. Cal esperar una mort més o menys lenta de les versions
de propietat de UNIX, per a deixar pas a distribucions basades en Linux dels
fabricants, adaptades als seus equips.
GNUFDL • PID_00167521 19 Introducció al sistema operatiu GNU/Linux
Un panorama general d'aquestes empreses:
• SUN: disposa de la seva implementació de UNIX anomenada Solaris (evo-
lució del SunOS). Va començar com un sistema BSD, però ara és majoritàri-
ament System V i parts de BSD. És molt utilitzat a les màquines Sun amb ar-
quitectura Sparc, i en màquines multiprocessador (fins a 64 processadors).
Promocionen GNU/Linux com a entorn de desenvolupament per a Java,
i van disposar d'una distribució de GNU/Linux denominada Java Desktop
System, que va tenir una àmplia acceptació en alguns països. A més, va co-
mençar a usar el Gnome com a escriptori, i ofereix suport financer a diver-
sos projectes com el Mozilla Firefox, el Gnome i l'OpenOffice. També cal
destacar la iniciativa presa amb la seva última versió del seu UNIX Solaris,
per a alliberar-ne el codi gairebé totalment, en la versió Solaris 10, amb la
creació d'una comunitat per a les arquitectures Intel i Sparc, denominada
OpenSolaris, que ha permès la creació de distribucions lliures de Solaris. A
més, hem d'assenyalar iniciatives (2006) per a alliberar la plataforma Java
sota llicències GPL, com el projecte OpenJDK. Així mateix, l'adquisició de
Sun Microsystems per part d'Oracle (2009) està causant certa incertesa en
alguns d'aquests productes o tecnologies, perquè la companyia no hi ha
definit una estratègia clara.
• IBM: té la seva versió de UNIX propietària denominada AIX, que sobreviu
en alguns segments de gamma alta d'estacions de treball i servidors de la
firma. D'altra banda, dóna suport ferm a la comunitat open source, i promou
entorns de desenvolupament lliures (eclipse.org) i tecnologies Java per a
Linux, incorpora Linux a les seves grans màquines i dissenya campanyes
publicitàries (màrqueting) per a promocionar Linux. A part està tenint una
repercussió important en la comunitat, per l'ambient judicial del seu cas
en què es defensa de la firma SCO, que l'acusa de violació de propietat
intel·lectual de UNIX, per haver integrat, suposadament, components en
el GNU/Linux.
• HP: té el seu UNIX HPUX, però dóna ampli suport a Linux, tant en forma
de codi open source com instal·lant Linux a les seves màquines. Es diu que
és la companyia que ha guanyat més diners amb Linux.
• SGI: Silicon Graphics té un UNIX anomenat IRIX per a les seves màquines
gràfiques basades en arquitectures MIPS. El 2006 va canviar la seva estratè-
gia envers plataformes Intel Xeon/AMD Opteron venent màquines amb
Windows, i últimament la majoria dels sistemes amb versions comercials
de GNU/Linux, com les produïdes per Red Hat i Novell SUSE. A la comu-
nitat Linux ofereix suport d'OpenGL (tecnologia de gràfics 3D) i de dife-
rents sistemes de fitxers (XFS) i control de dispositius perifèrics.
• Apple: es va incorporar recentment (a partir de mitjan anys noranta) al
món UNIX, quan va decidir substituir el seu sistema operatiu per una va-
riant UNIX. El nucli dels seus nous operatius, anomenat XNU (combinat
Nota
Moltes de les empreses quedisposen de UNIX de propietatparticipen en GNU/Linux i ofe-reixen alguns dels seus desen-volupaments a la comunitat.
GNUFDL • PID_00167521 20 Introducció al sistema operatiu GNU/Linux
amb el sistema operatiu Darwin) prové d'una versió 4.4 BSD, combinada
amb el nucli Mach. Aquest nucli open source és el que, sumat a unes in-
terfícies gràfiques molt potents, dóna a Apple el seu sistema operatiu Mac
OS X. Està considerat avui dia com un dels millors UNIX i, com a mínim,
un dels més "bells" des del punt de vista gràfic. També empra gran quan-
titat de programari provinent del projecte GNU, com utilitats de sistema i
biblioteques i compiladors de desenvolupament (GNU GCC).
• Distribuïdors� Linux: tant comercials com organitzacions, esmentarem
empreses com Red Hat, SUSE, Mandriva (prèviament coneguda com a
Mandrake), i organitzacions o comunitats no comercials com Debian, Fe-
dora, OpenSUSE, etc. Entre aquestes (les distribucions amb més desplega-
ment) i les més petites, s'emporten la major part del desenvolupament de
GNU/Linux, i tenen el suport de la comunitat Linux i de l'FSF amb el pro-
gramari GNU, a més de rebre contribucions de les empreses citades.
• BSD: encara que no sigui una empresa com a tal, esmentarem com des de
Berkeley i altres mediadors es continua el desenvolupament de les versions
BSD, i altres projectes lliures, clons de BSD, com els operatius FreeBSD,
NetBSD, OpenBSD (el UNIX considerat més segur), TrustedBSD, etc., que
també, més tard o més aviat, representen millores o incorporacions de
programari a Linux. A més, una aportació important en la línia BSD és el
nucli XNU (usat a Darwin) provinent del BSD 4.4, i que va desenvolupar
Apple com a nucli de codi obert del seu sistema operatiu Mac OS X i el seu
sistema iPhone OS per a mòbils.
• Google: ha tingut una relació bastant important amb la comunitat des dels
seus inicis com a cercador a Internet, ja que tota la seva infraestructura de
clústers en diferents centres de dades, de vegades coneguda com a Google
Cluster, està basada en múltiples servidors que executen GNU/Linux amb
sistemes de fitxers especialment dissenyats per a grans volums de dades.
Així mateix, va entrar amb especial força en el món del desenvolupament
per a plataformes mòbils, amb la plataforma Android, una plataforma amb
el nucli Linux, i capes de programari basades en GNU i Java.
• Microsoft: sempre ha tingut una relació difícil amb el codi obert obert/
lliure, que veu com un competidor i un perill potencial. Normalment, ha
representat per a la comunitat més aviat un destorb en el desenvolupa-
ment de UNIX i GNU/Linux, ja que ha posat traves amb incompatibili-
tats en diferents tecnologies, i no disposa d'una participació directa en el
món UNIX/Linux. Encara que, en els seus orígens, va desenvolupar Xenix
(1980) per a PC, a partir d'una llicència AT&T de UNIX, que no va ven-
dre directament, però sí que ho va fer per mitjà de mediadors, com SCO,
que en va aconseguir el control el 1987 i la va rebatejar com a SCO UNIX
(1989). Com a nota curiosa, posteriorment va comprar part dels drets de la
llicència UNIX a SCO (aquesta els havia obtingut al seu torn per mitjà de
Novell). No són clars els motius de Microsoft a l'hora de fer aquesta adqui-
Nota
Carta oberta de Novell ala comunitat GNU/Linuxa http://www.novell.com/linux/microsoft/community_open_letter.html.
GNUFDL • PID_00167521 21 Introducció al sistema operatiu GNU/Linux
sició, encara que alguns suggereixen que hi ha alguna relació amb el fet de
proporcionar suport a SCO en el seu judici contra IBM. A més, recentment
(2006), Microsoft va arribar a acords amb Novell (proveïdora actual de la
distribució SUSE i la comunitat OpenSUSE), en una sèrie d'acords bilaterals
per a promocionar empresarialment totes dues plataformes. Però part de la
comunitat GNU/Linux es manté escèptica, per les possibles implicacions
sobre la propietat intel·lectual de Linux, i els temes que podrien incloure
problemes judicials per ús de patents.
Una altra anècdota històrica curiosa (2002) és que, juntament amb una empre-
sa anomenada UniSys, Microsoft es va dedicar a fer màrqueting de com es po-
den convertir sistemes UNIX a sistemes Windows. I encara que l'objectiu podia
ser més o menys lloable, el curiós era que el servidor original del web empresa-
rial es trobava en una màquina FreeBSD amb Apache. De vegades, també paga
a algunes empreses "independents" (alguns opinen que bastant poc) perquè
duguin a terme estudis de rendiment comparatius entre UNIX/Linux i Win-
dows –moltes d'aquestes campanyes són vistes com a FUD (fear, uncertainty and
doubt, en català, 'por, incertesa i dubte'), ja que la majoria d'aquestes campanys
no resisteixen una mínima anàlisi tècnica, més enllà del màrqueting emprat.
En els últims anys sembla que a Microsoft hi hagi hagut un cert acostament a
la comunitat open source, amb l'establiment de diferents comunitats open sour-
ce, per a la integració i interrelació amb productes GNU/Linux.
Nota
Alguns portals de Microsoft relacionats amb l'open source són http://port25.technet.com/i http://www.microsoft.com/opensource.
Vegeu també la definició de FUD a la Viquipèdia, http://en.wikipedia.org/wiki/Fear,_uncertainty_and_doubt, i un cas concret de FUD a http://news.cnet.com/2100-1001-872266.html.
Com resumeixen alguns comentaris que solen aparèixer en la biblio-
grafia UNIX, UNIX és, tècnicament, un sistema senzill i coherent dis-
senyat amb bones idees que es van saber portar a la pràctica, però no
s'ha d'oblidar que algunes d'aquestes idees es van aconseguir gràcies al
suport entusiasta que va brindar una gran comunitat d'usuaris i desen-
volupadors que van col·laborar entre ells, compartint una tecnologia i
governant-ne l'evolució.
I com que la història se sol repetir, en aquest moment l'evolució i l'entusiasme
continuen amb els sistemes GNU/Linux.
GNUFDL • PID_00167521 22 Introducció al sistema operatiu GNU/Linux
3. Sistemes GNU/Linux
En els primers anys, els usuaris dels primers ordinadors personals no disposa-
ven de gaires sistemes operatius per a triar.
El mercat dels ordinadors personals el dominava el DOS de Microsoft. Una
altra possibilitat eren els Mac d'Apple, però a uns preus desorbitats (en com-
paració de la resta). L'altra opció important, encara que reservada a grans mà-
quines (i cares), era UNIX.
Una primera opció que va aparèixer va ser MINIX (1984), creat des de zero per
Andrew Tanenbaum, amb�l'objectiu�d'usar-lo�per�a�l'educació, per a ensenyar
disseny i implementació de sistemes operatius [Tan87] [Tan06].
MINIX va ser pensat per a executar-se sobre una plataforma Intel 8086, molt
popular en l'època perquè era la base dels primers IBM PC. El principal avan-
tatge d'aquest operatiu era el seu codi font, accessible a qualsevol (12.000
línies de codi entre assemblador i C), ja que estava inclòs al llibre docent
de sistemes operatius de Tanenbaum [Tan87]. Però MINIX era més una eina
d'ensenyament que un sistema eficaç pensat per al rendiment o per a activitats
professionals.
En els noranta, l'FSF (Free Software Foundation) i el seu projecte GNU va mo-
tivar molts programadors per promoure el programari de qualitat i de distri-
bució lliure. I a part de programari d'utilitats, es treballava en un nucli (kernel)
d'operatiu denominat Hurd, que portaria diversos anys de desenvolupament.
Mentrestant, l'octubre de 1991, un estudiant finlandès anomenat Linus Tor-
valds presentaria la versió 0.0.1 del seu nucli de sistema operatiu, que va de-
nominar Linux, orientat a màquines Intel 386, i el va oferir sota llicència GPL
a fòrums de programadors i a la comunitat d'Internet perquè el provessin i,
si els agradava, l'ajudessin a desenvolupar-lo. L'entusiasme va ser tal que, en
poc temps, hi havia un gran nombre de programadors treballant en el nucli
o en aplicacions.
Algunes de les característiques que van diferenciar Linux dels sistemes del seu
temps i que continuen essent aplicables, i altres d'heretades de UNIX, podrien
ser:
a)� Sistema� operatiu� de� codi� obert: qualsevol en pot disposar de les fonts,
modificar-les i crear noves versions per a poder-les compartir sota la llicència
GPL (que, de fet, el converteix en un programari lliure).
GNUFDL • PID_00167521 23 Introducció al sistema operatiu GNU/Linux
b)�Portabilitat: tal com el UNIX original, Linux està pensat per a dependre
molt poc d'una arquitectura concreta de màquina. Consegüentment, Linux
és, majoritàriament, independent de la màquina de destinació i es pot portar
a gairebé qualsevol arquitectura que disposi d'un compilador C com el GNU
GCC. Només resten algunes petites parts de codi assemblador i d'alguns dis-
positius dependents de la màquina, que han de ser reescrites en cada nova ar-
quitectura. Gràcies a això, GNU/Linux és un dels sistemes operatius que corre
en un nombre més gran d'arquitectures: Intel x86 i IA64, AMD x86 i x86_64,
Sparc de Sun, MIPS de Silicon, PowerPC (Apple), IBM S390, Alpha de Compaq,
m68k de Motorola, Vax, ARM, HPPArisc, etc.
c)�Nucli�de�tipus�monolític: el disseny del nucli està unit en una sola peça,
però és conceptualment modular en les diferents tasques. Una altra escola
de disseny d'operatius proposa els micronuclis (un exemple n'és el projecte
Mach), en què els serveis s'implementen com a processos a part, comunicats
per un micronucli més bàsic. Linux es va decidir com a monolític, perquè és
difícil extreure bon rendiment dels micronuclis (resulta un treball bastant dur
i complex). D'altra banda, el problema dels monolítics és el creixement; quan
es tornen molt grans es tornen intractables en el desenvolupament; això es va
intentar solucionar amb els mòduls de càrrega dinàmica.
d)�Mòduls�carregables�dinàmicament: permeten posar parts del sistema ope-
ratiu, com sistemes d'arxius o controladors de dispositius, com a porcions ex-
ternes que es carreguen (o enllacen) amb el nucli en temps d'execució sota
demanda. Això permet simplificar el nucli i oferir aquestes funcionalitats com
a elements que es poden programar separadament. Amb aquest ús de mòduls,
es podria considerar Linux com un nucli mixt, ja que és monolític, però ofe-
reix una sèrie de mòduls que complementen el nucli (aproximació semblant
a alguns conceptes de micronucli).
e)�Desenvolupament�del�sistema�per�part�d'una�comunitat�vinculada�per
Internet: els sistemes operatius mai no havien tingut un desenvolupament
tan ampli i dispers; no solen sortir de la companyia que els elabora (en el cas
dels de propietat) o d'un petit conjunt d'institucions acadèmiques i laboratoris
que col·laboren per crear-ne un. El fenomen de la comunitat Linux permet
que cadascú col·labori en la mesura que el temps i els coneixements propis li
ho permetin. El resultat són milers de desenvolupadors per a Linux. A més, per
la seva naturalesa de sistema de codi font obert, Linux és un laboratori ideal
per a provar idees de sistemes operatius al mínim cost; es pot implementar,
provar, prendre mesures i, si funciona, afegir la idea al nucli.
Els projectes es van succeir i –en l'inici de Linus amb el nucli– a la gent de
l'FSF, amb el programari d'utilitat GNU i, sobretot, amb el seu compilador de C
(GCC), es van unir altres projectes importants com les XFree/Xorg (una versió
PC de les X Window), i projectes d'escriptori com KDE i Gnome. I el desenvo-
lupament d'Internet amb projectes com el servidor web Apache, el navegador
Mozilla Firefox, o les bases de dades MySQL i PostgreSQL, van acabar donant
Nota
Projecte original Mach: http://www.cs.cmu.edu/afs/cs/project/mach/public/www/mach.html
GNUFDL • PID_00167521 24 Introducció al sistema operatiu GNU/Linux
al nucli inicial Linux el recobriment d'aplicacions suficient per a construir els
sistemes GNU/Linux i competir en igualtat de condicions amb els sistemes de
propietat. I tot això va convertir els sistemes GNU/Linux en el paradigma del
programari de font oberta (open source).
Els sistemes GNU/Linux s'han convertit en la punta de llança de la co-
munitat open source, per la quantitat de projectes que s'han pogut aglu-
tinar i portar a bon terme.
El naixement de noves empreses, que van crear distribucions GNU/Linux
(agrupacions de nucli + aplicacions) i li van donar suport, com Red Hat, Man-
drake, SUSE, va contribuir a introduir GNU/Linux en les empreses que en dub-
taven, i a començar l'imparable creixement que vivim actualment.
Comentarem també la discussió�sobre�la�denominació�dels�sistemes�com�a
GNU/Linux. El terme Linux per a identificar el sistema operatiu amb què es
treballa és d'ús comú (per simplificar-ne el nom), encara que segons l'opinió
d'alguns desmereix el treball de l'FSF amb el projecte GNU, el qual ha propor-
cionat les principals eines del sistema. Tot i així, el terme Linux, per a referir-se
al sistema operatiu complet, és àmpliament usat comercialment.
En general, per a seguir una denominació més concorde a la participació de
la comunitat, s'utilitza el terme Linux quan ens estem referint només al nucli
(kernel) del sistema operatiu. Això crea certa confusió, ja que hi ha gent que
parla de sistemes Linux o del sistema operatiu Linux per abreujar. Quan es tre-
balla amb un sistema operatiu GNU/Linux, s'està treballant sobre una sèrie
de programari d'utilitats, en gran part fruit del projecte GNU, sobre el nucli
Linux. Per tant, el sistema és bàsicament GNU amb un nucli Linux.
El projecte GNU de l'FSF tenia per objectiu crear un sistema operatiu de pro-
gramari lliure a l'estil UNIX denominat GNU [Sta02].
Linus Torvalds va aconseguir, el 1991, ajuntar el seu nucli Linux amb les uti-
litats GNU, quan l'FSF encara no disposava de nucli propi. El nucli de GNU
es denomina Hurd, i avui dia s'hi treballa bastant, i ja hi ha algunes versions
beta de distribucions de GNU/Hurd.
Es calcula que, en una distribució GNU/Linux, hi ha un 28% de codi
GNU i un 3% que correspon al codi del nucli Linux; el percentatge res-
tant correspon a codi de tercers, ja sigui d'aplicacions o d'utilitats.
Per destacar la contribució de GNU [FSF], podem veure algunes de les seves
aportacions incloses en els sistemes GNU/Linux:
Nota
Podeu llegir un article de Ric-hard Stallman sobre GNU i Li-nux a http://www.gnu.org/gnu/linux-and-gnu.html.
GNUFDL • PID_00167521 25 Introducció al sistema operatiu GNU/Linux
• El compilador de C i C++ (GCC)
• L'intèrpret d'ordres bash
• L'editor Emacs (GNU Emacs)
• L'intèrpret PostScript (GNU Ghostscript)
• La biblioteca C estàndard (GNU C library, o també glibc)
• El depurador (GNU gdb)
• Makefile (GNU make)
• L'assemblador (GNU Assembler o gas)
• L'enllaçador (GNU Linker o gld)
Els sistemes GNU/Linux no són els únics que utilitzen programari GNU. Els
sistemes BSD, per exemple, incorporen també utilitats GNU. I alguns opera-
tius de propietat, com Mac OS X (d'Apple), també usen programari GNU. El
projecte GNU ha produït programari d'alta qualitat, que s'ha anat incorporant
a la major part de les distribucions de sistemes basades en UNIX, tant lliures
com propietàries.
És just per a tothom reconèixer el treball de cadascú denominant GNU/
Linux els sistemes que tractarem.
GNUFDL • PID_00167521 26 Introducció al sistema operatiu GNU/Linux
4. El perfil de l'administrador de sistemes
Les grans empreses i organitzacions depenen cada vegada més dels seus recur-
sos de computació i de com aquests són administrats per a adequar-los a les
tasques. El gran increment de les xarxes distribuïdes, amb els seus equips ser-
vidors i clients, ha creat una gran demanda d'un nou perfil laboral: l'anomenat
administrador de sistemes.
L'administrador de sistemes té una àmplia varietat de tasques importants.
Els millors administradors de sistema solen ser bastant generalistes, tant teò-
ricament com pràcticament. Es poden enfrontar a tasques com fer cablat-
ges d'instal·lacions o reparar cables, instal·lar sistemes operatius o programari
d'aplicacions, corregir problemes i errors en els sistemes, tant de maquinari
com de programari, formar els usuaris, oferir trucs o tècniques per a millorar
la productivitat en àrees que poden anar des d'aplicacions de processament de
textos fins a àrees complexes de sistemes CAD o simuladors, avaluar econò-
micament compres d'equipament de maquinari i programari, automatitzar un
gran nombre de tasques comunes, i incrementar el rendiment general del tre-
ball en la seva organització.
Es pot considerar l'administrador com un perfil d'empleat que ajuda els
altres empleats de l'organització a aprofitar millor els recursos disponi-
bles, de manera que millori tota l'organització.
La relació amb els usuaris finals de l'organització es pot establir de diferents
maneres: mitjançant la formació d'usuaris o amb ajuda directa en cas que es
presentin problemes (incidències). L'administrador és la persona encarregada
que les tecnologies utilitzades pels usuaris funcionin adequadament, o en al-
tres paraules, que els sistemes compleixin les expectatives dels usuaris, i també
les tasques que vulguin dur a terme.
Fa anys, i encara actualment, en moltes empreses o organitzacions no hi havia
una perspectiva clara del paper de l'administrador de sistemes. En els inicis de
la informàtica en l'empresa (anys vuitanta i noranta), l'administrador era vist
al principi com la persona "entesa" en ordinadors (el "guru"), que s'encarregava
de les instal·lacions de les màquines i que les vigilava o reparava en cas de
problemes. Era una espècie d'informàtic polivalent que havia de solucionar els
problemes que anessin apareixent. El seu perfil de currículum no era clar, ja
que no necessitava tenir amplis coneixements sinó només coneixements bà-
sics d'una desena (a tot estirar) d'aplicacions (el processador de text, el full de
càlcul, la base de dades, etc.), i alguns coneixements bàsics de maquinari eren
suficients per a les tasques diàries. Així, qualsevol simple "entès" en el tema es
GNUFDL • PID_00167521 27 Introducció al sistema operatiu GNU/Linux
podia dedicar a aquest treball, de manera que no solien ser informàtics tradi-
cionals, i moltes vegades fins i tot s'arribava a una transmissió oral dels conei-
xements entre algun "administrador" més antic a l'empresa i el nou aprenent.
En aquella situació, ens trobàvem d'alguna manera en la prehistòria de
l'administració de sistemes (encara que hi ha persones que continuen pensant
que bàsicament es tracta de la mateixa feina).
Avui dia, en l'època d'Internet i dels serveis distribuïts, un administrador de
sistemes és un professional (amb dedicació pròpia i exclusiva) que proporciona
serveis en l'"arena" del programari i el maquinari de sistemes. L'administrador
ha de dur a terme diverses tasques, que tindran com a destinació múltiples
sistemes informàtics, la majoria heterogenis, per tal de fer-los operatius per a
una sèrie de tasques.
Així les coses, els administradors necessiten tenir uns coneixements generals
(teòrics i pràctics) d'àrees molt diferents, des de tecnologies de xarxes, sistemes
operatius, aplicacions d'àmbits diferents, programació bàsica en una àmplia
varietat de llenguatges de programació, coneixements amplis de maquinari
–tant de l'ordinador com dels perifèrics usats– i tecnologies Internet, disseny
de pàgines web, bases de dades, etc. I normalment també és buscat amb el
perfil de coneixements bàsics sobre l'àrea de treball de l'empresa, ja sigui quí-
mica, física, matemàtiques, etc. No és estrany, llavors, que en una empresa de
mida mitjana a gran s'hagi passat del "noi/a que ho arregla tot" a un petit grup
de professionals amb amplis coneixements, la majoria amb nivell acadèmic
universitari, amb diferents tasques assignades dins de l'organització.
L'administrador ha de dominar un rang ampli de tecnologies per a po-
der-se adaptar a una multitud de tasques variades, que poden sorgir dins
de l'organització.
A causa de la gran quantitat de coneixements que ha de tenir, no és estrany
que apareguin al seu torn diferents subperfils de la tasca de l'administrador.
En una gran organització pot ser habitual trobar els administradors de siste-
mes operatius (UNIX, Mac OS o Windows), que solen ser diferents dels orien-
tats a administrador de bases de dades, l'administrador de còpies de seguretat,
els administradors de seguretat informàtica, els administradors encarregats de
l'atenció als usuaris, etc.
En una organització més petita, diverses o totes les tasques poden estar assig-
nades a un o a pocs administradors. Els administradors de sistemes UNIX (o de
GNU/Linux) serien una part d'aquests administradors (si no l'administrador,
que haurà de fer totes les tasques). La seva plataforma de treball és UNIX (o
GNU/Linux en el nostre cas), i requereix bastants elements específics que fan
aquest treball únic. UNIX (i les variants) és un sistema operatiu obert i molt po-
GNUFDL • PID_00167521 28 Introducció al sistema operatiu GNU/Linux
tent i, com qualsevol sistema de programari, exigeix un cert nivell d'adequació,
configuració i manteniment en les tasques per a les quals s'hagi d'usar. Confi-
gurar i mantenir un sistema operatiu és una tasca àmplia i seriosa, i en el cas
de UNIX i els nostres GNU/Linux pot arribar a ser bastant frustrant.
Algunes àrees importants per tractar són:
a) Que el sistema sigui molt potent també indica que hi haurà bastants pos-
sibilitats d'adaptar-lo (configurar-lo) a les tasques que volem fer. Caldrà ava-
luar les possibilitats que se'ns ofereixen i com són d'adequades per al nostre
objectiu final.
b) Un sistema obert i un exemple clar d'això és el nostre GNU/Linux, que ens
oferirà actualitzacions permanents, tant en la correcció d'errors del sistema
com en la incorporació de noves prestacions. I, evidentment, tot això té un
impacte directe en costos de manteniment de les tasques d'administració.
c) Els sistemes es poden utilitzar per a tasques de cost crític, o en punts crítics
de l'organització, en què no es poden permetre errors importants, o que alen-
teixin o parin la marxa de l'organització.
d) Les xarxes són actualment un punt molt important (si no el que més), però
també és una àrea de problemes potencials molt crítica, tant per la seva natu-
ralesa distribuïda pròpia com per la complexitat del sistema per a trobar, de-
purar i solucionar els problemes que es puguin presentar.
e) En el cas particular dels sistemes UNIX, i en els nostres GNU/Linux,
l'abundància, tant de versions com de distribucions diferents del sistema, in-
corpora problemes addicionals a l'administració, ja que és necessari conèixer
les problemàtiques i diferències de cada versió i distribució.
En particular, les tasques d'administració del sistema i de la xarxa solen pre-
sentar particularitats diferents, i de vegades es tracten separadament (o ho fan
administradors diferents). Encara que també es poden veure com les dues ca-
res del mateix treball, amb el sistema pròpiament dit (màquina i programari),
d'una banda, i l'ambient on el sistema (l'entorn de xarxa) conviu, de l'altra.
Per administració de la xarxa s'entén la gestió del sistema com a part de la
xarxa, i fa referència als serveis o dispositius propers necessaris perquè la
màquina funcioni en un entorn de xarxa; no cobreix dispositius com els
commutadors, ponts o concentradors o altres dispositius de xarxa, però
uns coneixements bàsics són imprescindibles per a facilitar les tasques
d'administració.
GNUFDL • PID_00167521 29 Introducció al sistema operatiu GNU/Linux
En aquests materials i els següents, corresponents a l'assignatura més avança-
da d'administració, cobrirem primer aquells aspectes locals del sistema i els
bàsics de xarxa, i en una segona assignatura (Administració avançada) veurem
les tasques d'administració de xarxa i el desplegament de serveis.
Ja hem apuntat el problema de determinar què és exactament un administra-
dor de sistemes, ja que en el mercat laboral informàtic no queda gaire clar. Era
comú demanar administradors de sistemes segons categories (establertes a les
empreses) de programador o enginyers de programari, les quals no s'adeqüen
correctament.
Un programador és, bàsicament, un productor de codi. En aquest cas, un ad-
ministrador obtindria poca producció, ja que en algunes tasques pot ser ne-
cessari, però en d'altres no. Normalment, serà desitjable que l'administrador
tingui més o menys coneixements, depenent de la categoria laboral:
a) Alguna carrera o diplomatura universitària, preferiblement en informàtica,
o en algun camp directament relacionat amb l'empresa o organització.
b) Se sol demanar d'un a tres anys d'experiència com a administrador (tret
que el lloc sigui per a ajudant d'un de ja existent). L'experiència també es pot
ampliar de tres a cinc anys.
c) Familiaritat o coneixements amplis d'entorns de xarxa i serveis. Protocols
TCP/IP, serveis d'FTP, telnet, ssh, http, nfs, nis, ldap, etc.
d) Coneixements de llenguatges de script per a prototipatge d'eines o automa-
tització ràpida de tasques (per exemple, shell scripts, Perl, Tcl, Python, etc.) i
experiència en programació d'un ampli rang de llenguatges (C, C++, Java, as-
semblador, etc.).
e) Es pot demanar experiència en desenvolupament d'aplicacions grans en
qualsevol d'aquests llenguatges.
f) Coneixements amplis de mercat informàtic, tant de maquinari com de pro-
gramari, en el cas que calgui avaluar compres de material o muntar nous sis-
temes o instal·lacions completes.
g) Experiència en més d'una versió de UNIX (o sistemes GNU/Linux), com
Solaris, AIX, AT&T, System V, BSD, etc.
h) Experiència en sistemes operatius que no siguin UNIX, sistemes comple-
mentaris que es poden trobar en l'organització: Windows 9x/NT/2000/XP/Vis-
ta/7, MacOS, VMS, sistemes IBM, etc.
Nota
Per a ser administrador es re-quereixen generalment es-tudis informàtics o afins al'organització, juntament ambexperiència demostrada en elcamp i coneixements amplisde sistemes heterogenis i tec-nologies de xarxa.
GNUFDL • PID_00167521 30 Introducció al sistema operatiu GNU/Linux
i) Coneixements sòlids del disseny i implementació de UNIX, mecanismes
de pàgines, intercanvi, comunicació entre processos, controladors, etc.; per
exemple, si les tasques d'administració inclouen optimització dels sistemes
(tuning) o plataformes arquitecturals de maquinari.
j) Coneixements i experiència en seguretat informàtica: construcció de talla-
focs (firewalls), sistemes d'autenticació, aplicacions de xifratge (criptografia),
seguretat del sistema de fitxers, eines de seguiment de seguretat, etc.
k) Experiència en bases de dades, coneixements de SQL, etc.
l) Instal·lació i reparació de maquinari o cablatges de xarxa i dispositius.
GNUFDL • PID_00167521 31 Introducció al sistema operatiu GNU/Linux
5. Tasques de l'administrador
Segons hem descrit, podríem separar les tasques d'un administrador GNU/Li-
nux (o UNIX en general) [Lev] en dues parts principals: administració del sis-
tema i administració de xarxa. En els subapartats següents, mostrem de ma-
nera resumida en què consisteixen en general aquestes tasques en els sistemes
GNU/Linux (o UNIX). Tractarem la major part del contingut amb cert detall en
aquests mòduls i en els associats d'administració avançada. Una altra part de
les tasques, per qüestions d'espai o complexitat, l'explicarem superficialment
o no l'analitzarem.
Les tasques d'administració engloben una sèrie de coneixements i tècniques,
dels quals aquí només podem veure la "punta de l'iceberg". En la bibliografia
adjunta a cada mòdul aportem referències per ampliar tots els temes per trac-
tar. Com veureu, hi ha una àmplia bibliografia per a gairebé qualsevol punt
en el qual vulgueu aprofundir.
5.1. Tasques d'administració local del sistema
• Arrencada�i�apagada�del�sistema: qualsevol sistema basat en UNIX té uns
sistemes d'arrencada i apagada ajustables, de manera que podem configu-
rar quins serveis oferim en l'arrencada de la màquina i quan cal parar-los,
o programar l'apagada del sistema per al manteniment.
• Gestió�d'usuaris�i�grups: donar cabuda als usuaris és una de les principals
tasques de qualsevol administrador. Caldrà decidir quins usuaris podran
accedir al sistema, de quina manera i sota quins permisos, i establir comu-
nitats mitjançant els grups. Un cas particular serà el dels usuaris de siste-
ma, pseudousuaris dedicats a tasques del sistema.
• Gestió�de�recursos�del�sistema: què oferim, com ho oferim i a qui donem
accés.
• Gestió�dels�sistemes�de�fitxers: l'ordinador pot disposar de diferents recur-
sos d'arxivament de dades i dispositius (disquets, discos durs, òptics, etc.)
amb diferents sistemes d'accés als fitxers. Poden ser permanents, extraïbles
o temporals, amb la qual cosa caldrà modelar i gestionar els processos de
muntatge i desmuntatge dels sistemes de fitxers que ofereixin els discos
o dispositius afins.
• Quotes� del� sistema: qualsevol recurs que s'hagi de compartir ha de ser
administrat, i segons la quantitat d'usuaris, caldrà establir un sistema de
quotes per a evitar l'abús dels recursos per part dels usuaris o establir classes
(o grups) d'usuaris diferenciats per l'ús de recursos més o menys important.
GNUFDL • PID_00167521 32 Introducció al sistema operatiu GNU/Linux
Solen ser habituals sistemes de quotes d'espai de disc, o d'impressió, o d'ús
de CPU (temps de computació usat).
• Seguretat�del�sistema: seguretat local, sobreproteccions als recursos da-
vant usos indeguts, accessos no permesos a dades del sistema, o a dades
d'altres usuaris o grups.
• Còpies�de�seguretat�i�restauració�del�sistema: és necessari establir políti-
ques periòdiques (segons la importància de les dades) de còpies de segure-
tat dels sistemes. Cal establir períodes de còpia que permetin salvaguardar
les nostres dades d'errors del sistema (o factors externs) que puguin pro-
vocar pèrdues o corrupció de dades.
• Automatització�de�tasques�rutinàries: moltes de les tasques freqüents de
l'administració o de l'ús habitual de la màquina poden ser automatitzades
fàcilment, ja a causa de la seva simplicitat (i per tant, de la facilitat de repe-
tir-les), com de la temporalització, que fa que s'hagin de repetir en períodes
concrets. Aquestes automatitzacions se solen fer bé mitjançant programa-
ció amb llenguatges interpretats de tipus script (intèrprets d'ordres, Perl,
etc.), o bé per la inclusió en sistemes de temporalització (cron, at, etc.).
• Gestió�d'impressió�i�cues: els sistemes UNIX es poden utilitzar com a sis-
temes d'impressió per a controlar una o més impressores connectades al
sistema, i també per a gestionar les cues de treball que els usuaris o aplica-
cions hi puguin enviar.
• Gestió�de�mòdems�i�terminals: aquests dispositius solen ser habituals en
entorns no connectats a xarxa local ni a banda ampla:
– Els mòdems permeten una connexió a la Xarxa per mitjà d'un media-
dor (l'ISP o proveïdor d'accés), o bé la possibilitat de connectar el nos-
tre sistema des de l'exterior per accés telefònic des de qualsevol punt
de la xarxa telefònica.
– En el cas dels terminals, abans de la introducció de les xarxes solia ser
habitual que la màquina UNIX fos l'element central de còmput, amb
una sèrie de terminals "passius", que únicament es dedicaven a visua-
litzar la informació o a permetre l'entrada d'informació per mitjà de
teclats externs. Se solia tractar de terminals de tipus sèrie o paral·lel.
Avui dia, encara solen ser habituals en entorns industrials, i en el nos-
tre sistema GNU/Linux d'escriptori tenim un tipus particular, que són
els terminals de text "virtuals", als quals s'accedeix mitjançant les te-
cles Alt+Fxx.
• Registres�(o�log)�de�sistema: per a poder verificar el funcionament correc-
te del nostre sistema, és necessari portar polítiques de registre que ens pu-
guin informar dels possibles errors del sistema o del rendiment que s'obté
d'una aplicació, servei o recurs de maquinari. O bé permetre resumir els
GNUFDL • PID_00167521 33 Introducció al sistema operatiu GNU/Linux
recursos emprats, els usos duts a terme o la productivitat del sistema en
forma d'informe.
• System�performance�tunning: tècniques d'optimització del sistema per a
una finalitat concreta. Sol ser habitual que un sistema estigui pensat per
a una tasca concreta i que en puguem verificar el funcionament adequat
(per exemple, mitjançant registres), per a examinar-ne els paràmetres i ade-
quar-los a les prestacions que se n'esperen.
• Personalització� del� sistema: reconfiguració del nucli. Els nuclis, per
exemple en GNU/Linux, són altament personalitzables, segons les carac-
terístiques que vulguem incloure i el tipus de dispositius que tinguem o
esperem tenir a la nostra màquina, i també els paràmetres que afectin el
rendiment del sistema o les aplicacions.
5.2. Tasques d'administració de xarxa
• Interfície�de�xarxa�i�connectivitat: el tipus d'interfície de xarxa que uti-
litzem, ja sigui l'accés a una xarxa local, la connexió a una xarxa major,
o connexions del tipus banda ampla amb tecnologies ADSL, l'XDSI, o òp-
tiques per cable. A més, el tipus de connectivitats que tindrem en forma
de serveis o peticions.
• Encaminament� de� dades: les dades que circularan, d'on o cap a on es
dirigiran, depenent dels dispositius de xarxa disponibles i de les funcions
de la màquina en xarxa; possiblement, serà necessari redirigir el trànsit des
d'un o més llocs o cap a altres.
• Seguretat�de�xarxa: una xarxa, sobretot si és oberta a qualsevol punt ex-
terior, és una possible font d'atacs i, per tant, pot comprometre la seguretat
dels nostres sistemes o les dades dels nostres usuaris. Cal protegir, detectar
i impedir possibles atacs amb una política de seguretat clara i eficaç.
• Serveis�de�noms: en una xarxa hi ha infinitat de recursos disponibles. Els
serveis de noms ens permeten anomenar objectes (com màquines i serveis)
per a poder-los localitzar i gestionar. Amb serveis com el DNS, DHCP, LDAP,
etc., podrem localitzar serveis o equips.
• NIS� (network� information� service): les grans organitzacions han de te-
nir mecanismes per a poder organitzar, de manera efectiva, els recursos i
l'accés a aquests recursos. Les formes habituals en UNIX estàndard, com les
entrades d'usuaris amb control mitjançant contrasenyes locals, són efec-
tives amb poques màquines i usuaris, però quan tenim grans organitzaci-
ons, amb estructures jeràrquiques, usuaris que poden accedir a múltiples
recursos de manera unificada o separada amb diferents permisos, etc., els
mètodes UNIX senzills es mostren clarament insuficients o impossibles.
GNUFDL • PID_00167521 34 Introducció al sistema operatiu GNU/Linux
Llavors es necessiten sistemes més eficaços per a controlar tota aquesta es-
tructura. Serveis com NIS, NIS+ i LDAP ens permeten organitzar de manera
adequada tota aquesta complexitat.
• NFS�(network�filesystems): sovint, en les estructures de sistemes en xar-
xa és necessari compartir informacions (com els fitxers mateixos) per part
de tots o alguns dels usuaris. O senzillament, a causa de la distribució físi-
ca dels usuaris, és necessari un accés als fitxers des de qualsevol punt de
la xarxa. Els sistemes de fitxers per xarxa (com NFS) permeten un accés
transparent als fitxers, independentment de la nostra situació a la xarxa.
I en alguns casos, com en Samba/CIFS, ens ofereixen suport per a l'accés
de plataformes de maquinari o programari diferents, i independents de les
configuracions de clients o servidors.
• UNIX�remote�commands: UNIX disposa d'instruccions transparents a la
xarxa, en el sentit que, independentment de la connexió física, és possible
executar ordres que moguin informació per la xarxa o permetin accés a
alguns serveis de les màquines. Les instruccions solen tenir una r al davant,
amb el sentit de 'remot', com per exemple: rcp, rlogin, rsh, rexec, etc., que
permeten les funcionalitats indicades de manera remota a la xarxa.
• Aplicacions�de�xarxa: aplicacions de connexió a serveis de xarxa, com
telnet (accés interactiu), FTP (transmissió de fitxers), en forma d'aplicació
client que es connecta a un servei servit des d'una altra màquina. O bé els
que nosaltres mateixos podem servir amb el servidor adequat: servidor de
telnet, servidor FTP, servidor web, etc.
• Impressió�remota: accés a servidors d'impressió remots, ja sigui directa-
ment a impressores remotes o bé a altres màquines que ofereixen les seves
impressores locals. Impressió en xarxa de forma transparent a l'usuari o
aplicació.
• Correu�electrònic: un dels primers serveis proporcionats per les màquines
UNIX és el servidor de correu, que permet l'emmagatzemament de correu,
o un punt de retransmissió de correu cap a altres servidors, si no anava
dirigit a usuaris propis del seu sistema. Per al cas Web, també de manera
semblant, un sistema UNIX amb el servidor web adequat ofereix una pla-
taforma excel·lent per a Web. UNIX té la major quota de mercat quant a
servidors de correu i Web, i és un dels principals mercats, en què té una
posició dominant. Els sistemes GNU/Linux ofereixen solucions de codi
obert per a correu i Web, i es tracta d'un dels seus usos principals.
• X�Window: un cas particular d'interconnexió és el sistema gràfic dels sis-
temes GNU/Linux (i la major part de UNIX), X Window. Aquest sistema
permet una transparència total de xarxa i funciona sota models client-ser-
vidor; permet que el processament d'una aplicació estigui deslligat de la
visualització i de la interacció per mitjà de dispositius d'entrada, per la qual
GNUFDL • PID_00167521 35 Introducció al sistema operatiu GNU/Linux
cosa aquests se situen en qualsevol part de la xarxa. Per exemple, podem
estar executant una determinada aplicació en una màquina UNIX quan
des d'una altra visualitzem en pantalla els resultats gràfics, i entrem dades
amb el teclat i ratolí locals de manera remota. És més, el client, anomenat
client X, és tan sols un component de programari que es pot portar a altres
sistemes operatius, cosa que permet executar aplicacions en una màquina
UNIX i visualitzar-les en qualsevol altre sistema. Un cas particular són els
anomenats terminals X, que són bàsicament una espècie de terminals grà-
fics "passius" que només permeten visualitzar una aplicació en execució
remota o interactuar-hi (amb teclat i ratolí).
GNUFDL • PID_00167521 36 Introducció al sistema operatiu GNU/Linux
6. Distribucions de GNU/Linux
En parlar dels orígens dels sistemes GNU/Linux, hem comprovat que no hi
havia un únic sistema clarament definit. Per una part, hi ha tres elements de
programari principals que componen un sistema GNU/Linux:
1)�El�nucli�Linux: com hem vist, el nucli és tan sols la peça central del sistema.
Però sense les aplicacions d'utilitat, l'intèrpret d'ordres, compiladors, editors,
etc. no podríem tenir un sistema complet.
2)�Les�aplicacions�GNU: en el desenvolupament de Linux, aquest es va veure
complementat amb el programari de l'FSF existent del projecte GNU, que li va
aportar editors (com l'Emacs), el compilador (GCC) i diferents utilitats.
3)�Programari�de�tercers: majoritàriament de codi obert. Tot sistema GNU/
Linux s'integra a més amb programari de tercers, que permet afegir una sèrie
d'aplicacions d'ús ampli, ja sigui el sistema gràfic X Window mateix, servidors
com l'Apache per a web, navegadors, ofimàtica, etc. Així mateix, pot ser habi-
tual incloure algun programari de propietat (per a àmbits no coberts pel pro-
gramari lliure), depenent del caràcter lliure que en més o menys grau vulguin
establir els creadors de la distribució.
En ser la majoria del programari de tipus de codi obert o lliure, ja sigui el
nucli, programari GNU o de tercers, hi ha una evolució més o menys ràpi-
da de versions, ja sigui per mitjà de correcció d'errors o de noves prestacions
introduïdes. Això obliga que, en el cas de voler crear un sistema GNU/Linux,
hàgim d'escollir quin programari volem instal·lar en el sistema i quines versi-
ons concretes d'aquest programari.
El món GNU/Linux no es limita a una empresa o comunitat particular,
amb la qual cosa ofereix a cadascú la possibilitat de crear el seu sistema
propi, adaptat a les seves necessitats.
Entre el conjunt de les versions dels diferents components, sempre se'n tro-
ben algunes que són estables i d'altres que estan en desenvolupament, en fa-
ses alfa o beta (possiblement, amb errors o funcionalitats no completes o op-
timitzades), i per això caldrà anar amb compte amb l'elecció de les versions a
l'hora de crear un sistema GNU/Linux. Un altre problema afegit és la selecció
d'alternatives; el món de GNU/Linux és prou ric perquè hi hagi més d'una al-
GNUFDL • PID_00167521 37 Introducció al sistema operatiu GNU/Linux
ternativa per a un mateix producte de programari. Cal triar entre les alternati-
ves possibles, i incorporar-ne algunes o totes, si volem oferir a l'usuari llibertat
per a escollir el seu programari.
Un cas pràctic són els gestors d'escriptori d'X Window: hi ha (principalment)
dos entorns d'escriptori diferents, com Gnome i KDE. Els dos tenen caracterís-
tiques semblants i aplicacions semblants o complementàries.
En el cas d'un distribuïdor de sistemes GNU/Linux, ja sigui comercial o bé una
organització o comunitat sense benefici propi, aquest distribuïdor té com a
responsabilitat generar un sistema que funcioni, seleccionant les millors ver-
sions i productes de programari que es puguin aconseguir en el moment.
En aquest cas, una distribució GNU/Linux [Dis] és una col·lecció de programari
que forma un sistema operatiu basat en el nucli Linux.
Una dada important que cal tenir en compte, i que provoca més d'una confu-
sió, és que, com cada un dels paquets de programari de la distribució tindrà
la seva pròpia versió (independent de la distribució en què estigui ubicat), el
número de distribució assignat no manté una relació amb les versions dels
paquets de programari.
L'única funció del número de distribució és comparar les distribucions
que genera un mateix distribuïdor. No permet comparar entre altres
distribucions. Si volem fer comparacions entre distribucions, haurem
d'examinar els paquets de programari principals i les seves versions per
a poder determinar quina distribució aporta més novetats.
Exemple
Posem un exemple d'algunes versions que hem trobat en diferents distribucions GNU/Linux (les versions dependran de la situació actual de les distribucions):
a)�Nucli�Linux: actualment, podem trobar distribucions que ofereixen un o més nuclis,com els de la sèrie antiga 2.4.x (ja obsoleta, però que es pot trobar en algunes màquinesen producció) o generalment els últims 2.6.x en revisions (el número x) de diferent ac-tualitat.
b)� L'opció� en� el� sistema� gràfic� X� Window: en versió de codi obert, que podem tro-bar pràcticament en tots els sistemes GNU/Linux, ja siguin algunes versions residualsd'XFree86 com les que disposen de versions 4.x.y, o bé el projecte Xorg (es tracta d'unaescissió de l'anterior l'any 2003, generada per problemes de llicències en l'XFree), quegaudeix de més popularitat en diferents versions 6.x o 7.x (en algunes distribucions esnumera el paquet del servidor X com a 1.7.x). Actualment, la majoria de distribucionshan migrat des d'XFree a Xorg, per diferents problemes existents amb canvis de llicènciesen XFree, i Xorg és ara la implementació oficial d'X Window en GNU/Linux. El mateixpassa en diverses variants de BSD, UNIX de propietat com Solaris, i també en les últimesversions de Mac OS X.
c)�Gestor�de�finestres�o�escriptori: podem disposar de Gnome o KDE, o tots dos; Gnomeamb versions 2.x/3.x o KDE 3.x.y./4.x.y.
Tenim en un moment determinat, per exemple, una distribució que inclou el nucli 2.4,amb XFree 4.4 i Gnome 2.14; o bé una altra, per exemple, amb nucli 2.6, Xorg 6.8 iKDE 3.1. Quina és millor? És difícil comparar-les, ja que són una barreja d'elements, i
GNUFDL • PID_00167521 38 Introducció al sistema operatiu GNU/Linux
depenent de com es faci la barreja, el producte sortirà millor o pitjor, i més o menysadaptat a les necessitats de l'usuari. Usualment, el distribuïdor manté un compromísentre l'estabilitat del sistema i la novetat de les versions incloses. També proporcionaprogramari d'aplicació atraient per als usuaris de la distribució, ja sigui aquell generalistao l'especialitzat en algun camp concret.
En general, podem fer una anàlisi de distribucions millor a partir dels apartats
següents, que caldria, comprovar en cada una:
a)�Versió�del�nucli�Linux: la versió està indicada per uns números X.Y.Z, en
què X és la versió principal, que representa els canvis importants del nucli; Y és
la versió secundària, i implica millores en les prestacions del nucli (Y és parell
en els nuclis estables i senar en els nuclis en desenvolupament o de prova); i
Z és la versió de construcció, que indica el número de la revisió d'X.Y, quant
a pegats o correccions fetes. Els distribuïdors no solen incloure l'última versió
del nucli, sinó la que ells hagin provat amb més freqüència i poden verificar
que és estable per al programari i els components que ells inclouen. Aquest va
ser l'esquema de numeració clàssic (que es va seguir durant les branques 2.4.x,
fins als inicis de la 2.6), que va tenir algunes modificacions, per a adaptar-se
al fet que el nucli (branca 2.6.x) es va tornar més estable, i cada vegada les
revisions eren menors (per significar un salt de versió dels primers números),
a causa del desenvolupament continu i frenètic. En els últims esquemes de
numeració del nucli, s'arriben a introduir quarts números, per a especificar
canvis menors de Z, o diferents possibilitats de la revisió (amb diferents pegats
afegits). La versió definida així amb quatre números és la que es considera
estable (stable). També són usats altres esquemes per a les versions de test (no
recomanables per a entorns de producció), com sufixos -rc (release candidate),
els -mm, que són nuclis experimentals amb proves de diferents tècniques, o
els -git, que són una espècie de "foto" diària del desenvolupament del nucli.
Aquests esquemes de numeració estan en canvi constant per a adaptar-se a la
manera de treballar de la comunitat del nucli, i a les seves necessitats per a
accelerar-ne el desenvolupament.
b)�Format�d'empaquetament: és el mecanisme emprat per a instal·lar i ad-
ministrar el programari de la distribució. Es coneix pel format dels paquets
de programari suportats. En aquest cas solen estar els formats rpm, deb, tar.gz,
mdk, etc. Encara que cada distribució sol tenir possibilitat d'utilitzar diversos
formats, en té un per defecte. El programari acostuma a venir amb els seus
arxius en un paquet que inclou informació sobre la instal·lació i les possibles
dependències amb altres paquets de programari. L'empaquetament és impor-
tant si s'usa programari de tercers que no vingui amb la distribució, ja que
el programari es pot trobar només en alguns sistemes de paquets, o fins i tot
en un de sol, i en alguns casos està pensat per a versions concretes d'algunes
distribucions de GNU/Linux.
c)�Estructura�del�sistema�d'arxius:�l'estructura�del�sistema�d'arxius�princi-
pal (/) ens indica on podem trobar els nostres arxius (o els propis del sistema)
dins del sistema de fitxers. En GNU/Linux i UNIX hi ha alguns estàndards de
col·locació dels arxius (com veurem en altres mòduls), com per exemple l'FHS
GNUFDL • PID_00167521 39 Introducció al sistema operatiu GNU/Linux
(filesystem hierarchy standard) [Linb]. Així, si tenim una idea de l'estàndard, sa-
brem on podem trobar la major part dels arxius. Després depèn que la distri-
bució el segueixi més o menys i que ens avisin dels canvis que hi hagin fet.
d)�Scripts�d'arrencada�del�sistema: els sistemes UNIX i GNU/Linux incorpo-
ren uns guions d'arrencada (o shell scripts) que indiquen com s'ha d'engegar la
màquina i quin serà el procés (o fases) que se seguiran, i també el que s'haurà de
fer a cada pas. Per a aquesta arrencada hi ha dos models principals, els de SysV
i el de BSD (és una de les diferències de les dues branques de UNIX principals),
i cada distribució en podria escollir un o un altre. Encara que els dos sistemes
tenen la mateixa funcionalitat, són diferents en els detalls, i això serà impor-
tant en els temes d'administració (ho veurem quan tractem de l'administració
local). En el nostre cas, els sistemes que analitzarem, tant Fedora com Debian,
utilitzen el sistema de SysV (serà el que veurem en la unitat local), però hi ha
altres distribucions com Slackware que utilitzen l'altre sistema, propi de BSD.
I actualment hi ha determinades propostes per a noves opcions en aquest as-
pecte de l'arrencada, que han obtingut pes important en les distribucions ac-
tuals, com el sistema upstart utilitzat, entre altres, en la distribució Ubuntu.
e)�Versions�de�la�biblioteca�del�sistema: tots els programes (o aplicacions)
que tenim en el sistema depenen per a executar-los d'un nombre (més gran
o més petit) de biblioteques de sistema. Aquestes biblioteques, normalment
de dos tipus, ja sigui estàtiques, unides al programa (arxius libxxx.a), o dinà-
miques, que es carreguen en temps d'execució (arxius libxxx.so), proporcio-
nen gran quantitat de codi d'utilitat o de sistema que utilitzaran les aplicaci-
ons. L'execució d'una aplicació pot dependre de l'existència d'unes bibliote-
ques adequades i del número de versió concret d'aquestes biblioteques (no és
el més recomanable, però pot succeir). Un cas bastant habitual és la biblioteca
GNU C library, la biblioteca estàndard de C, també coneguda com a glibc. Pot
succeir que una aplicació ens demani que disposem d'una versió concreta de
la glibc per a poder-se executar o compilar. És un cas bastant problemàtic, i per
això un dels paràmetres que es valoren de la distribució és conèixer de quina
versió de la glibc disposa, i els possibles paquets addicionals de versions de
compatibilitat amb versions antigues. El problema apareix en intentar execu-
tar o compilar un producte de programari molt antic en una distribució mo-
derna, o bé un producte de programari molt nou en una distribució antiga.
El canvi més gran va arribar en passar a la glibc 2.0, cas en què calia recompilar
tots els programes per a poder executar-los correctament. En les diferents re-
visions noves de numeració 2.x hi ha hagut alguns canvis menors que podien
afectar alguna aplicació. En molts casos, els paquets de programari comproven
si es té la versió correcta de la glibc, o en el nom mateix esmenten la versió que
cal utilitzar (exemple: paquet-xxx-glibc2.rpm).
f)�Escriptori�X�Window: el sistema X Window és l'estàndard gràfic per a GNU/
Linux per a la visualització d'escriptori. Va ser desenvolupat en el MIT el 1984 i
pràcticament tots els UNIX en tenen una versió. Les distribucions GNU/Linux
GNUFDL • PID_00167521 40 Introducció al sistema operatiu GNU/Linux
disposen de diferents versions com l'XFree86 o l'Xorg (com ja hem dit, aquesta
última és l'estàndard de facto en aquests moments). X Window és una capa
gràfica intermèdia que confia a una altra capa denominada gestor de finestres la
visualització dels seus elements. A més, podem combinar el gestor de finestres
amb utilitats i programes d'aplicació variats per a formar el que es denomina
un entorn d'escriptori.
Linux té, principalment, dos entorns d'escriptori: Gnome i KDE. Cada un té la
particularitat de basar-se en una biblioteca de components propis (els diferents
elements de l'entorn com finestres, botons, llistes, etc.): GTK+ (en Gnome) i
Qt (en KDE), que són les principals biblioteques de components que s'usen per
a programar aplicacions en aquests entorns. Però a més d'aquests entorns, n'hi
ha molts més, ja siguin gestors de finestres o escriptoris: XCFE, FluxBox, Motif,
Enlightenment, BlackIce, FVWM, etc., de manera que la possibilitat d'elecció
és àmplia. A més, cada un permet canviar l'aparença (look & feel) de finestres i
components al gust de l'usuari, o fins i tot crear-ne un de propi.
g)�Programari�d'usuari: programari afegit pel distribuïdor, majoritàriament
de tipus open source, per a les tasques més habituals (o al contrari, per a alguns
camps d'aplicació molt especialitzats).
Les distribucions habituals són tan grans que es poden trobar de centenars a
milers d'aquestes aplicacions (moltes de les distribucions tenen des d'uns pocs
CD a diverses desenes (o unes quantes unitats de DVD), d'aplicacions extra a
part de les de partida. O es poden obtenir a posteriori per Xarxa dels repositoris
oficials (o extres) de programari de les distribucions. Aquestes aplicacions co-
breixen gairebé tots els camps, des de la llar fins a administratius o científics.
I en algunes distribucions s'afegeix programari de propietat de tercers (com,
per exemple, algun paquet ofimàtic del tipus Office), programari de servidor
preparat pel distribuïdor, com per exemple un servidor de correu, un servidor
web segur, etc.
Així és com cada distribuïdor sol produir diferents�versions de la seva distri-
bució; per exemple, de vegades hi ha distincions entre una versió personal,
professional o de tipus servidor. Sol ser més habitual una distinció entre dues
versions: desktop (escriptori) i server (servidor). En moltes distribucions, però,
se sol incloure el programari per a complementar tots dos aspectes, i és l'usuari
final que fa la instal·lació, amb la tria de paquets de programari i la configu-
ració, el que decideix l'àmbit final de la màquina i el seu sistema GNU/Linux.
GNUFDL • PID_00167521 41 Introducció al sistema operatiu GNU/Linux
El sistema GNU/Linux de fons és el mateix; només hi ha diferències (que
es paguen en alguns casos) en el programari afegit (en general, obra de
la casa distribuïdora mateixa). Per exemple, en servidors web o en ser-
vidors de correu, ja siguin desenvolupaments propis, optimitzats o mi-
llorats. Altres diferències poden ser la inclusió d'eines millors, desenvo-
lupades pel fabricant de la distribució, o el suport addicional, en forma
de contractes de manteniment que inclogui el distribuïdor comercial.
Sovint, assumir un cost econòmic extra no té gaire sentit, ja que el progra-
mari estàndard és suficient (amb una mica de treball extra d'administració de
sistemes); però per a les empreses pot ser interessant perquè redueix temps
d'instal·lació i manteniment dels servidors i, a més, optimitza algunes aplica-
cions i servidors crítics per a la gestió informàtica de l'empresa.
6.1. Debian
El cas de la distribució Debian GNU/Linux [Debb] és especial, en el sentit que
és una distribució guiada per una comunitat sense finalitats comercials, a part
de mantenir la seva distribució i promocionar l'ús del programari de codi obert
i lliure.
Debian és una distribució a la qual dóna suport per una comunitat en-
tusiasta d'usuaris i desenvolupadors propis, basada en el compromís de
la utilització de programari lliure.
El projecte Debian es va fundar el 1993 per a crear la distribució Debian GNU/
Linux. Des de llavors, s'ha tornat bastant popular i rivalitza en ús amb altres
distribucions comercials com Red Hat o SUSE. Per ser un projecte comunitari,
el desenvolupament d'aquesta distribució es regeix per una sèrie de normes
o polítiques: hi ha uns documents anomenats Contracte social Debian, que es-
menten la filosofia del projecte en el seu conjunt, i les polítiques Debian, que
especifiquen en detall com s'implementa la seva distribució.
Nota
Els documents Contracte so-cial Debian són consultablesa http://www.debian.org/social_contract.
La distribució Debian està bastant relacionada amb els objectius de l'FSF i el
seu projecte de programari lliure GNU; per aquesta raó, inclouen sempre en
el seu nom Debian GNU/Linux; a més, el seu text del contracte social ha servit
com a base de les definicions de codi obert. Quant a les polítiques, tot aquell
que vulgui participar en el projecte de la distribució les ha de seguir. Encara
que un no sigui un col·laborador, aquestes polítiques poden ser interessants
perquè expliquen com és la distribució Debian.
Es pot esmentar també un aspecte pràctic amb vista als usuaris finals: Debian
ha estat sempre una distribució difícil (encara que aquesta percepció ha canviat
en les últimes versions). Sol ser la distribució que usen els experts (hackers)
Figura�2.�Logotip�de�Debian
GNUFDL • PID_00167521 42 Introducció al sistema operatiu GNU/Linux
de Linux, en el bon sentit dels que s'encarreguen del desenvolupament i test
del nucli, aporten modificacions, programadors de baix nivell, els que volen
estar a l'última moda per a provar programari nou, els que volen provar els
desenvolupaments del nucli que encara no s'ha publicat... És a dir, tot tipus
de fauna d'experts de GNU/Linux.
Les versions anteriors de Debian s'havien fet famoses per la seva dificultat
d'instal·lació. La veritat és que no es feia gaire perquè fos fàcil per als no-ex-
perts. Però les coses amb el temps han millorat. Ara, la instal·lació, no sense
certs coneixements, es pot fer guiada per un instal·lador gràfic (conegut com
a Debian Installer), mentre que abans era una instal·lació purament textual (de
fet, encara es manté, i és molt usada per a la instal·lació en ambients de servi-
dor). Però tot i així, els primers intents poden arribar a ser una mica traumàtics
pel grau de coneixement inicial exigit per a alguns aspectes de la instal·lació.
Debian GNU/Linux no és una única distribució, sinó que se sol diferenciar en
una sèrie de variants, els anomenats sabors de la distribució Debian. En aquest
moment hi ha tres branques (sabors) de la distribució: stable, testing i unsta-
ble. Com els seus noms indiquen, stable és la que està destinada a entorns de
producció (o usuaris que volen estabilitat), testing ofereix programari més nou
que ha estat comprovat mínimament (podríem dir que és una espècie de ver-
sió beta de Debian) i que aviat s'inclourà en la versió stable. I unstable és la que
presenta les últimes novetats de programari, els paquets de les quals canvien
en terminis molt curts; en una setmana, i fins i tot en el dia a dia poden can-
viar diversos paquets. Totes són actualitzables des de diverses fonts (CD, FTP,
web) per un sistema denominat APT que maneja els paquets de programari
deb de Debian. Les tres distribucions tenen noms més comuns assignats (per
exemple, en un determinat moment de producció de Debian):
• Lenny (stable)
• Squeeze (testing)
• Sid (unstable)
La versió prèvia stable es denominava Etch (4.0), anteriorment Sarge (era la
3.1). La més actual és la Debian GNU/Linux Lenny (5.0). Les versions més es-
teses (a més de versions antigues que segueixin en producció) són la Lenny i
la Sid, que són els dos extrems. La Sid no està recomanada per a entorns (de
producció) de treball diari, perquè pot portar característiques a mitges que en-
cara s'estan provant i poden fallar (encara que no és habitual); és la distribució
que solen usar els experts de GNU/Linux. A més, aquesta versió canvia gairebé
cada dia. Sol ser normal que, si es vol actualitzar cada dia, hi hagi de deu a
vint paquets de programari nous per dia (o fins i tot més en alguns moments
puntuals de desenvolupament o canvis importants).
GNUFDL • PID_00167521 43 Introducció al sistema operatiu GNU/Linux
La Lenny és potser la millor elecció per al sistema de treball diari; s'actualitza
periòdicament per a cobrir nou programari o actualitzacions (com les de se-
guretat). No disposa de l'últim programari, i aquest no s'inclou fins que la co-
munitat no l'hagi verificat en un ampli rang de proves.
Comentarem breument algunes característiques d'aquesta distribució; les ver-
sions són les que es troben per defecte en stable (Lenny) i en unstable (Sid)
actualment:
a)�La�distribució�(stable)�actual consta de 28-33 CD (o 4-5 DVD) de l'última
revisió disponible, depenent de l'arquitectura (suporta més de 12 arquitectures
de maquinari diferents). Hi ha diferents possibilitats, depenent del conjunt de
programari que ens trobem en suport físic (CD o DVD), o bé el que vulguem
descarregar posteriorment des de la Xarxa, amb la qual cosa només necessitem
un CD bàsic (netinstall CD), més l'accés a la Xarxa, per a baixar la resta segons la
demanda. Aquesta distribució es pot comprar (a preus simbòlics de suport físic,
i d'aquesta manera contribuïm a mantenir la distribució) o es pot descarregar
des de debian.org o les seves rèpliques.
b)� La� testing� i�unstable no solen tenir CD/DVD oficials estables, sinó que
es pot convertir una Debian stable a testing o unstable mitjançant canvis de
configuració del sistema de paquets APT. En alguns casos, Debian proporciona
imatges de CD/DVD que es generen setmanalment amb el contingut de la
distribució testing.
c)�Nucli�Linux: utilitzaven nuclis de la sèrie 2.6.x per defecte (algunes versions
prèvies de Debian incloïen per defecte nuclis de la sèrie 2.4.x). L'enfocament
de Debian en stable és potenciar l'estabilitat i deixar als usuaris l'opció d'un
altre producte més actualitzat de programari, si ho necessiten (en unstable o
testing). Per exemple, en el moment de "congelar" la versió estable, s'escull la
versió del nucli més estable existent, i en les revisions posteriors se solen cor-
regir si es detecten problemes. Per la seva part, testing i unstable solen incloure
amb poca diferència de temps les últimes versions del nucli a mesura que es
produeixen, amb el temps. Per exemple, en la branca 2.6.x solen transcórrer
diverses subversions del nucli (la numeració x) entre la distribució stable i les
no estables.
d)�Format�d'empaquetament: Debian suporta un dels que més prestacions
ofereix, l'APT. Els paquets de programari tenen un format denominat deb.
L'APT és una eina de més alt nivell per a gestionar-los i mantenir una base de
dades dels instal·lables i els disponibles en el moment. A més, el sistema APT
pot obtenir programari de diverses fonts, ja sigui des de CD, FTP o Web.
GNUFDL • PID_00167521 44 Introducció al sistema operatiu GNU/Linux
e)�El�sistema�amb�APT�és�actualitzable�en�qualsevol�moment, mitjançant
llistes de repositoris de fonts de programari Debian (fonts APT), que poden ser
els llocs Debian per defecte (debian.org) o de tercers. No estem així lligats a
una empresa única ni a cap sistema de pagament per subscripció.
f)�Algunes�de�les�versions�utilitzades, en un exemple de temps concret són:
per a una stable, nucli 2.6.26, Xorg 1.4.1, glibc 2.7, etc.; Debian Sid té nucli
2.6.32, Xorg 1.7.7, glibc 2.10.2, etc.
g)� A� l'escriptori accepta tant el Gnome (per defecte) com el KDE (K Desk-
top Environment). Unstable sol disposar de les últimes versions disponibles
d'aquests entorns.
h)�Quant�a�aplicacions�destacables, inclou la majoria de les que solem trobar
en les distribucions de GNU/Linux: editors com l'Emacs (i l'XEmacs), el com-
pilador GCC i les eines, el servidor web Apache, navegadors web (Firefox), el
programari Samba per a compartir arxius amb Windows, etc.
i)�Inclou�també�paquets�ofimàtics com l'OpenOffice i el KOffice.
j)�Inclou�molts�fitxers�de�configuració�personalitzats per a la seva distribu-
ció en directoris de /etc.
k) Debian usava per defecte el gestor� d'arrencada lilo en versions prèvies,
encara que en les últimes s'ha canviat a Grub.
l)�La�configuració�de�l'escolta�dels�serveis�de�xarxa�TCP/IP, que es fa com en
la majoria de UNIX, amb el servidor inetd (/etc/inetd.conf). Encara que disposa
també opcionalment de xinetd, una opció que pren més pes.
m) Hi ha moltes distribucions�GNU/Linux basades en Debian, ja que el sis-
tema es pot adaptar fàcilment per a fer distribucions més petites o més grans,
o amb més o menys programari adaptat a un segment. Una de molt famosa
és Knoppix (per ser una de les pioneres en el concepte de live CD), una distri-
bució d'un únic CD (o DVD), de tipus live CD (d'execució directa al CD), que
és molt usada per a versions de demostració de GNU/Linux, o per a provar-la
en una màquina sense fer una instal·lació prèvia, ja que arrenca i s'executa
des del CD, encara que també es pot instal·lar el disc dur i convertir-se en
una Debian estàndard. Linex és una altra distribució que ha aconseguit força
fama pel seu desenvolupament al qual ha donat suport una administració, la
de la comunitat autònoma d'Extremadura. D'altra banda, trobem Ubuntu Li-
nux (de l'empresa Canonical), una de les distribucions que ha obtingut una
repercussió més àmplia (i ha superat fins i tot Debian en diversos aspectes),
per les seves facilitats per a construir una alternativa d'escriptori. Ubuntu és
un referent Linux en l'àmbit d'escriptori, i també disposa d'una versió especial
GNUFDL • PID_00167521 45 Introducció al sistema operatiu GNU/Linux
orientada a servidor, Ubuntu Server. D'altra banda, és interessant destacar que
ha anat en augment la col·laboració entre Canonical i la comunitat Debian,
per a reflectir els avenços de cada una en les distribucions respectives.
Debian es pot usar com a base per a altres distribucions; per exemple,
Knoppix és una distribució basada en Debian que es pot executar des
del CD sense necessitat d'instal·lar-se en disc. Linex és una distribució
Debian adaptada per l'Administració de la comunitat d'Extremadura,
en el seu projecte d'adoptar programari de codi obert. I Ubuntu és una
distribució especialment optimitzada per a entorns d'escriptori.
Figura 3. Entorn Debian amb Gnome
6.2. Fedora
Red Hat Inc [Redh] és una de les principals firmes comercials del món GNU/
Linux, amb una de les distribucions amb més èxit. Bob�Young i Marc�Ewing
van crear Red Hat Inc el 1994. Estaven interessats en els models de programari
de codi obert i van pensar que seria una bona manera de fer negoci. El seu
principal producte és la seva distribució Red Hat Linux (que abreujarem com a
Red Hat), que està oberta a diferents segments de mercat, tant a l'usuari indivi-
dual (versions personal i professional), com preferentment envers les mitjanes
o grans empreses (amb la seva versió Enterprise).
GNUFDL • PID_00167521 46 Introducció al sistema operatiu GNU/Linux
Red Hat Linux és la principal distribució comercial de Linux, orientada
tant al mercat d'oficina d'escriptori com a servidors de gamma alta. A
més, Red Hat Inc és una de les empreses que més col·laboren amb el
desenvolupament de Linux, ja que diversos membres importants de la
comunitat hi treballen.
Encara que Red Hat treballa amb un model de codi obert, es tracta d'una em-
presa, i per tant les seves finalitats són comercials; per això sol afegir a la se-
va distribució bàsica valors per mitjà de contractes de suport, subscripcions
d'actualització i altres mètodes. En el cas empresarial, afegeix programari per-
sonalitzat (o propi), per a fer que s'adeqüi més el rendiment a les finalitats de
l'empresa, ja sigui per servidors optimitzats o per programari d'utilitat propi
de Red Hat.
A partir de cert moment (final del 2003), Red Hat Linux (versió 9.x), la seva
versió de GNU/Linux per a escriptori, es dóna per discontinuada, i s'aconsella
els seus clients migrar a les versions empresarials de la firma, que continuaran
essent les úniques versions suportades oficialment per la firma.
Figura�4.�Logotips�de�Red�Hat�Fedora
En aquest moment Red Hat decideix iniciar el projecte obert a la comunitat
denominat Fedora [Fed], amb l'objectiu de fer una distribució guiada per la
comunitat (a l'estil Debian, encara que amb finalitats diferents), que denomi-
narà Fedora Core (més tard, simplement, Fedora). De fet, es persegueix crear
un laboratori de desenvolupament obert a la comunitat que permeti provar la
distribució, i al seu torn guiar els desenvolupaments comercials de l'empresa
en les seves distribucions empresarials.
En certa manera, alguns crítics assenyalen que s'usa la comunitat com a prova-
dors de les tecnologies que s'inclouran en productes comercials. A més, aquest
model és utilitzat posteriorment per altres companyies per a crear models du-
als de distribucions de comunitat alhora que comercials. Llavors apareixen
exemples com OpenSUSE (a partir de la comercial Novell SUSE).
El parell Red Hat i la comunitat Fedora presenten una certa visió conservadora
(menys accentuada en Fedora) dels elements de programari que afegeix a la
seva distribució, ja que el seu principal mercat de destinació és l'empresarial, i
intenta fer la seva distribució el més estable possible, malgrat que no tenen les
últimes versions. El que sí que fa com a valor afegit és depurar extensament el
nucli de Linux amb la seva distribució, i genera correccions i pegats (patchs)
per a millorar-ne l'estabilitat. De vegades, poden arribar a deshabilitar alguna
funcionalitat (controladors) del nucli, si consideren que no són prou estables.
També ofereix moltes utilitats en l'entorn gràfic i programes gràfics propis, in-
cloent-hi unes quantes eines d'administració. Quant als entorns gràfics, utilit-
Nota
Vegeu http://fedoraproject.org/
GNUFDL • PID_00167521 47 Introducció al sistema operatiu GNU/Linux
za tant Gnome (per defecte) com KDE, però mitjançant un entorn modificat
propi mitjançant temes d'escriptori propis, que fa que els dos escriptoris siguin
pràcticament iguals (finestres, menús, etc.).
La versió que utilitzarem serà l'última Fedora Linux disponible, que denomi-
narem simplement Fedora. En general, els desenvolupaments i prestacions que
es mantenen solen ser bastant semblants en les versions que surten a posteriori,
amb la qual cosa la majoria de comentaris serien aplicables a les diferents ver-
sions al llarg del temps. Hem de tenir en compte que la comunitat Fedora [Fed]
intenta complir un calendari d'aproximadament sis mesos per a cada nova
versió, i es produeix un cert consens sobre les prestacions noves per introduir.
Red Hat, per contra, va deixar en gran part el mercat de versions d'escriptori
a les mans de la comunitat Fedora, i se centra en els seus negocis en les ver-
sions empresarials RHEL (Red Hat Enterprise Linux en diverses edicions). Es
pot destacar també l'existència de versions lliures compatibles amb Red Hat
Enterprise, com la distribució CentOS Linux, i en una altra mesura amb ori-
entació a l'àmbit científic, com Scientific Linux.
Comentarem breument algunes característiques d'aquesta distribució Fedora:
a)�La�distribució�actual consisteix o bé en un DVD amb el sistema complet,
o un CD amb una versió live CD instal·lable. També hi ha diferents edicions
(denominades spins) orientades a sectors determinats (jocs, educació, cientí-
fics) o bé a escriptoris concrets (Gnome, KDE, XFCE).
b)�Nucli�Linux: utilitza nuclis de la sèrie 2.6.x, que es poden anar actualitzant
amb el sistema de paquets RPM (per mitjà de la utilitat yum, per exemple).
Red Hat, per la seva part, sotmet el nucli a moltes proves i crea pegats per a
solucionar problemes, que normalment també són integrats a la versió de la
comunitat Linux, ja que bastants dels col·laboradors importants en la comu-
nitat del nucli de Linux treballen per a Red Hat.
c)� Format� d'empaquetament: Red Hat distribueix el seu programari mit-
jançant el sistema de paquets RPM (RPM package manager), els quals es gestio-
nen mitjançant la instrucció rpm o la utilitat yum. RPM és un dels millors sis-
temes d'empaquetament existents (a l'estil del deb de Debian), i alguns UNIX
de propietat l'estan incloent. El sistema RPM manté una petita base de dades
amb els paquets instal·lats, i verifica que el paquet que vulguem instal·lar amb
la instrucció rpm no estigui ja instal·lat o entri en conflicte amb algun altre
paquet de programari o, per contra, falti algun paquet de programari o una
versió d'aquest, necessària per a la instal·lació. El paquet RPM és un conjunt
de fitxers comprimits juntament amb informació de les seves dependències o
del programari que necessita. El sistema de gestió de paquets RPM s'ha imple-
mentat de les versions de Red Hat a Fedora, però també en altres distribucions
com SUSE i Mandriva.
Nota
Distribucions compatibles ambRHEL:http://www.scientificlinux.org/http://centos.org/
GNUFDL • PID_00167521 48 Introducció al sistema operatiu GNU/Linux
d)� Quant� a� l'arrencada,� utilitza�scripts de tipus SysV (sysvinit). En les últi-
mes versions s'ha reemplaçat per upstart (provinent d'Ubuntu), encara que es
manté la seva compatibilitat amb els scripts sysvinit.
e)�En�l'escriptori accepta tant el Gnome (escriptori per defecte) com el KDE,
de manera opcional.
f)�Quant�a�aplicacions�destacables, inclou les que solem trobar en la majoria
de distribucions de GNU/Linux: editors com l'Emacs (i l'XEmacs), el compila-
dor GCC i les eines, el servidor web Apache, navegadors web Firefox/Mozilla,
el programari Samba per a compartir arxius amb Windows, etc.
g)�Inclou�també�paquets�ofimàtics com l'OpenOffice i el KOffice.
h)�El�programari�addicional es pot obtenir pels serveis d'actualització yum
(entre d'altres) de manera semblant al sistema APT en Debian o amb diferents
eines d'actualització incloses, o bé per Internet mitjançant paquets RPM pen-
sats per a la distribució.
i) Fedora usa el carregador�d'arrencada�Grub per a engegar la màquina per
defecte.
j)�La�configuració�d'escolta�dels�serveis�de�xarxa�TCP/IP, que es duu a terme
en la majoria de UNIX amb el servidor inetd (/etc/inetd.conf), a Red Hat ha
estat substituïda per xinetd, que té una configuració més modular (directori
/etc/xinetd.d).
k) Va disposar en arrencada d'un programa denominat Kudzu que
s'encarregava de verificar�canvis�de�maquinari�i�detectar�el�maquinari�nou
instal·lat. En les versions actuals això queda obsolet, a causa de l'existència
d'una nova API denominada HAL que permet fer aquesta funció (que ha estat
integrada progressivament en les distribucions GNU/Linux).
l) Hi ha diverses distribucions�més basades en el Red Hat original, que se-
gueixen moltes de les seves característiques; es pot destacar Mandriva (abans
Mandrake), una distribució francesa que en el seu origen es va basar en Red
Hat i que juntament amb aquesta segueix als primers llocs en les preferències
dels usuaris (sobretot per a treball d'escriptori). Mandriva desenvolupa progra-
mari propi i multitud d'assistents per a ajudar la instal·lació i administració
de les tasques més comunes, i així se separa del seu origen amb base en Red
Hat. D'altra banda, les versions empresarials de Red Hat també han originat
una sèrie de distribucions lliures molt populars en entorns de servidor, com
CentOS [Cen] (que intenta mantenir una compatibilitat 100% amb el Red Hat
empresarial), i Scientific Linux [Sci] (especialitzada en el còmput científic en
projectes d'investigació científica).
GNUFDL • PID_00167521 49 Introducció al sistema operatiu GNU/Linux
Figura 5. Un escriptori Fedora amb Gnome
Pel que fa a la distribució comunitària Fedora i els seus orígens comercials en
Red Hat:
a) És una distribució creada�per�la�comunitat�voluntària de programadors i
usuaris basada en desenvolupament que no té suport ni d'actualitzacions ni
de manteniment per part del fabricant. Aquest aspecte passa a dependre de la
comunitat, de manera semblant al cas de la distribució Debian GNU/Linux.
b)�Les�versions es produeixen amb força rapidesa; s'esperen noves versions de
la distribució aproximadament cada sis mesos.
c)� Per� a� la� gestió� de� paquets, també utilitza el sistema de paquets RPM.
Pel que fa al procés de l'actualització dels paquets de la distribució o a la
instal·lació d'altres de nous, es poden obtenir per diferents eines: amb els ca-
nals d'actualització de Fedora (repositoris de programari), pels nous sistemes
d'actualització yum (basats en el sistema RPM).
d)� Altres� qüestions� més� tècniques (algunes les veurem en els apartats
següents) es poden trobar en les notes de la versió de cada llançament de Fe-
dora.
Nota
Vegeu http://docs.fedoraproject.org/
GNUFDL • PID_00167521 50 Introducció al sistema operatiu GNU/Linux
7. Què veurem...
Una vegada que hem examinat aquesta introducció "filosòfica" al món del
codi obert i la història dels sistemes UNIX i GNU/Linux, i definit quines seran
les tasques de la figura de l'administrador del sistema, passarem a tractar les
diferents tasques típiques que ens trobarem durant l'administració de sistemes
GNU/Linux.
A continuació, examinarem les diferents àrees que implica l'administració de
sistemes GNU/Linux. En cada mòdul, examinarem un mínim dels fonaments
teòrics que ens permetin explicar les tasques per fer i entendre el funciona-
ment de les eines que utilitzarem. Cada mòdul estarà acompanyat d'algun
tipus de taller, en què veurem una petita sessió de treball d'una tasca o l'ús
d'algunes eines. Només recordarem que, com hem dit en la presentació, el te-
ma de l'administració és ampli i qualsevol intent d'incloure'l completament
(com aquest) ha de fallar per les dimensions limitades; per això, en cada tema
trobareu abundant bibliografia (en forma de llibres, llocs web, guies, etc.) amb
la qual podreu ampliar la "petita" introducció que haurem fet de l'assumpte.
Els temes que veurem són els següents:
• En�el�mòdul�de�nivell�d'usuari, donarem una perspectiva dels sistemes
de GNU/Linux des de la perspectiva de l'usuari final. Observarem procedi-
ments bàsics d'arrencada i instal·lació del sistema, i també configuracions
bàsiques de dispositius, entorn gràfic d'escriptori i gestió de programari.
• En� el� mòdul� de� shells� scripts, veurem una eina bàsica per a
l'administrador, que és la possibilitat d'automatitzar tasques mitjançant
llenguatges interpretats proporcionats pel sistema. N'analitzarem la sinta-
xi i les possibilitats bàsiques, i també algunes utilitats de sistema bàsiques
que complementaran la programació dels scripts.
• En�el�mòdul�de�migració, obtindrem una perspectiva del tipus de sistemes
informàtics que s'estan utilitzant i en quins ambients de treball s'usen.
Veurem, així mateix, com els sistemes GNU/Linux s'adapten millor o pitjor
a cada un, i plantejarem una primera alternativa a l'hora d'introduir un
sistema GNU/Linux: canviem el sistema que teníem o ho fem per etapes,
de manera que coexisteixin tots dos?
• En� el� mòdul� d'eines� d'administració� local, estudiarem (bàsicament)
aquell conjunt d'estris amb el qual l'administrador haurà de "viure" cada
dia (i patir), i que podrien formar la "caixa d'eines" de l'administrador. Par-
larem dels estàndards GNU/Linux, que ens permetran conèixer aspectes
comuns a totes les distribucions GNU/Linux, és a dir, què esperem poder
GNUFDL • PID_00167521 51 Introducció al sistema operatiu GNU/Linux
trobar en qualsevol sistema. Altres eines bàsiques seran: els editors simples
(o no tan simples), algunes instruccions bàsiques per a conèixer l'estat del
sistema o obtenir informació filtrada segons ens interessi, processos bàsics
de compilació de programes a partir dels codis font, eines de gestió del pro-
gramari instal·lat (al mateix temps comentarem l'alternativa d'ús d'eines
gràfiques o les de línia d'instruccions). En general, en l'administració lo-
cal, tractarem d'aquells aspectes d'administració que podríem considerar
"locals" en el nostre sistema. Aquests aspectes poden conformar la major
part de les tasques típiques de l'administrador a l'hora de manejar elements
com ara usuaris, impressores, discos, programari, processos, etc.
• Finalment, en�el�mòdul�dedicat�a�xarxa, examinarem totes aquelles tas-
ques d'administració que englobin el nostre sistema amb el seu "veïnat" a
la xarxa, independentment del tipus, i veurem els diferents tipus de con-
nectivitat que podem tenir amb els sistemes veïns, i també els serveis que
els podem oferir o que en podem rebre.
GNUFDL • PID_00167521 53 Introducció al sistema operatiu GNU/Linux
Activitats
1. Llegiu el manifest Debian a:
http://www.debian.org/social_contract
2. Documenteu-vos sobre les diferents distribucions basades en Debian: Knoppix, Linex, vari-etats d'Ubuntu. A part dels llocs de cada distribució, en l'adreça http://www.distrowatch.comhi ha una bona guia de les distribucions i el seu estat, i també del programari que inclouen.En aquest web, o bé accedint a les comunitats o fabricants, podeu obtenir les imatges ISOde les distribucions.
GNUFDL • PID_00167521 54 Introducció al sistema operatiu GNU/Linux
Bibliografia
[Bar] Barrapunto. Notícies open source. <http://barrapunto.com>.
[Bul] Bulma Linux User Group. Documentació general i comunitats d'usuaris. <http://bulmalug.net>.
[Cen] The Comunity Enterprise Operating System. <http://www.centos.org>.
[Debb] Comunitat Debian. "Distribució Debian". <http://www.debian.org>.
[Debba] Debian. "Software Libre vs. Software Abierto". <http://www.debian.org/intro/free.es.html>.
[Dis] Distrowatch. Distribucions Linux disponibles. Seguiment de les distribucions GNU/Li-nux i novetats dels paquets de programari. I enllaços als llocs de descàrrega de les imatgesISO dels CD/DVD de les distribucions GNU/Linux. <http://www.distrowatch.com>.
[Fed] The Fedora Project. <http://fedoraproject.org/>.
[FHS] FHS Standard (2003). <http://www.pathname.com/fhs>.
[Fre] Freshmeat. Llista de projectes open source. <http://freshmeat.org>.
[FSF] FSF. Free Software Foundation i Projecte GNU. <http://www.gnu.org>.
[His] HispaLinux. Comunidad Hispana de Linux. Documentación general y comunidadesde usuarios. <http://www.hispalinux.es>.
[Joh98] Johnson, M. K. (1998). "Linux Information Sheet". The Linux Documentation Pro-ject.
[Lev] Levenez, E. "UNIX History". <http://www.levenez.com/unix>.
Linux Journal. Revista GNU/Linux. <http://www.linuxjournal.com>.
Linux Magazine. Revista GNU/Linux. <http://www.linux-mag.com/>.
[LPD] The Linux Documentation Project (LDP). Col·lecció de guies i manuals que cobrei-xen qualsevol dels aspectes de GNU/Linux. Documentació general i comunitats d'usuaris.<http://www.tldp.org>.
[New] Newsforge. Notícies open source. <http://newsforge.org>.
[OSDb] OSDN. Open Source Development Network. Comunitat de llocs web, notícies,desenvolupaments, projectes, etc. <http://osdn.com>.
[OSIa] OSI. Llista de llicències 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>.
[PS02] Enríquez, R.; Sierra, P. (2002). Open Source. Anaya Multimedia.
[Ray02a] Raymond, E. (2002). "UNIX and Internet Fundamentals". The Linux Documen-tation Project.
[Ray98] Raymond, E. (1998). La catedral y el bazar.
<http://es.tldp.org/Otros/catedral-bazar/cathedral-es-paper-00.html>.
Red Hat Inc. "Distribució Red Hat". <http://www.redhat.com>.
[Sal94] Salus, P. H. (1994, novembre). "25 aniversario de UNIX". Byte España (núm. 1).
Scientific Linux. <http://www.scientificlinux.org>.
GNUFDL • PID_00167521 55 Introducció al sistema operatiu GNU/Linux
[Sla] Slashdot. Lloc de notícies generals de la comunitat Open Source, informàtica i Internet.<http://slashdot.org>.
[Sou] Sourceforge. Llista de projectes open source. <http://sourceforge.org>.
[Sta02] Stallman, R. (2002). "Discusión por Richard Stallman sobre la relación de GNU yLinux". <http://www.gnu.org/gnu/linux-and-gnu.html>.
[Tan06] Tanenbaum, A.; Woodhull, A. S. (2006). The Minix Book: Operating SystemsDesign and Implementation (3a. ed.). Prentice Hall.
[Tan87] Tanenbaum, A. (1987). Sistemas operativos: diseño e implementación. Prentice Hall.
GNUFDL • PID_00167522 Nivell d'usuari
© 2010, FUOC. Es garanteix el permís per a copiar, distribuir i modificar aquest document segons els termes de la GNU FreeDocumentation License, Version 1.2 o qualsevol altra de posterior publicada per la Free Software Foundation, sense seccionsinvariants ni textos de la coberta anterior o posterior. Hi ha una còpia de la llicència en l'apartat "GNU Free DocumentationLicense" d'aquest document.
Part del material està basat en una versió anterior elaborada pels autors següents: Joaquín López Sánchez-Montañés, Sofia Belles Ramos, Roger Baig i Viñas i Francesc Aulí Llinàs, editat sota dipòsit legal B-1.566-2008 i publicat sota la GNU Free Documentation License, versió 1.2.
GNUFDL • PID_00167522 Nivell d'usuari
Índex
Introducció.................................................................................................. 5
1. Introducció al sistema GNU/Linux............................................... 7
2. Conceptes i ordres bàsiques............................................................ 9
2.1. Usuari i grups .............................................................................. 10
2.2. El sistema de fitxers i la jerarquia ............................................... 15
2.3. Directoris del sistema .................................................................. 17
2.4. Enllaços ........................................................................................ 18
2.5. Permisos ....................................................................................... 19
2.6. Manipulació, patrons, cerques i continguts ............................... 20
2.7. Processos ...................................................................................... 22
2.8. Ordres complementàries ............................................................. 23
3. Instal·lació i arrencada de GNU/Linux (conceptes bàsics)...... 26
4. Configuracions bàsiques.................................................................. 31
4.1. El sistema d'entrada .................................................................... 31
4.2. L'intèrpret d'ordres (shell) ........................................................... 33
4.3. El sistema d'arrencada ................................................................. 38
4.4. Accés a particions i dispositius ................................................... 40
4.5. Configuració de dispositius ........................................................ 42
5. L'entorn gràfic.................................................................................... 46
Activitats...................................................................................................... 49
GNUFDL • PID_00167522 5 Nivell d'usuari
Introducció
Com ja s'ha vist en el mòdul anterior, GNU/Linux és un dels termes emprats
per a referir-se a la combinació del nucli (kernel) –equivalent des del punt de
vista de prestacions i funcionalitat (i en alguns casos superior) a Unix– deno-
minat Linux, i d'eines de sistema GNU, tot sota llicència GPL (Llicència Pú-
blica de GNU) i una altra sèrie de llicències lliures.
Malgrat que Linux és, en sentit estricte, el sistema operatiu, part fonamental
de la interacció entre el nucli i l'usuari (o els programes d'aplicació), es ma-
neja usualment amb les eines GNU, com per exemple l'intèrpret d'ordres o
instruccions Bash, que permet la comunicació amb el nucli mitjançant un
conjunt complet d'ordres i instruccions. Hi ha altres nuclis disponibles per al
projecte GNU, com el Hurd, que molts desenvolupadors consideren que és
l'autèntic nucli del projecte GNU. A http://www.linuxdriver.co.il/kernel_map
es pot consultar un mapa interactiu del nucli de Unix, en què es demostra la
complexitat que té un sistema d'aquestes característiques.
En aquest mòdul veurem conceptes de nivell 0 per a aprendre des de l'inici
els diferents conceptes de GNU/Linux, i anirem avançant fins a veure aspectes
d'inicialització i configuracions per a adequar el sistema operatiu a les nostres
necessitats.
GNUFDL • PID_00167522 7 Nivell d'usuari
1. Introducció al sistema GNU/Linux
El sistema GNU/Linux és un sistema multitasca, és a dir, permet l'execució de
centenars de tasques al mateix temps independentment de la quantitat de cors
o processadors o CPU que tingui per a executar-se, i utilitza una característica
comuna de tots els sistemes operatius moderns anomenada multiprogramació.
Aquesta característica permet executar una tasca durant un determinat temps,
suspendre-la, passar a la següent i així successivament, i quan s'arriba al final,
tornar a començar per la primera sense afectar el seu comportament o execu-
ció.
Normalment aquesta execució es denomina round robin, ja que distribueix un
quàntum de temps (que oscil·la entre 15 mil·lisegons i 150 mil·lisegons, depe-
nent de l'operatiu) per a cada tasca en espera, i torna a començar per la primera
quan s'arriba a l'última de la cua. Si el sistema té més d'un core o processador,
GNU/Linux té capacitat per a distribuir aquestes tasques en els diferents ele-
ments de còmput, i obtenir les consegüents millores en les prestacions. Pot
semblar que 15 mil·lisegons (= 0,015 segons) és un temps petit, però qualse-
vol processador actual pot executar com a mínim en aquest temps vora 2,2
milions d'instruccions màquina! A més, GNU/Linux és un sistema operatiu
multiusuari que permet que més d'un usuari alhora pugui estar treballant amb
el sistema, i que aquest amb el seu treball no pugui afectar cap de les tasques
dels altres usuaris en el sistema.
GNU/LINUX és un sistema multitasca i multiusuari que permet (fins i
tot amb un sol processador) atendre les necessitats simultànies de múl-
tiples usuaris, i utilitza una tècnica habitual dels sistemes operatius mo-
derns denominada multiprogramació.
Tots els sistemes Unix, i GNU/Linux no és una excepció, consideren dos tipus
d'usuaris diferenciats: el superusuari (anomenat root), que té tots els permisos
sobre el sistema, i la resta dels usuaris, que disposen d'un directori de treball
(home), del qual tenen tots els permisos, però en la resta del sistema el que po-
den fer està en funció de la seva importància i nivell de seguretat per al sistema
mateix. Generalment, en qualsevol d'aquests sistemes *nix (Unix, Linux...) un
usuari pot "mirar" (i en alguns casos executar) tot allò que no impliqui infor-
mació confidencial, però té generalment restringides la resta d'accions.
El segon concepte interessant en els sistemes *nix és que es pot treballar in-
teractivament amb dos modes diferenciats: en mode text i en mode gràfic (i
en aquest últim es pot obrir una finestra especial anomenada terminal, que
permet treballar en mode text dins del mode gràfic). Normalment, els modes
GNUFDL • PID_00167522 8 Nivell d'usuari
gràfics són els més utilitzats en sistemes d'escriptori o d'usuari domèstic, men-
tre que els de text són adequats per a servidors. No obstant això, com que no
s'imposa cap restricció, es pot canviar fàcilment d'un a l'altre amb una seqüèn-
cia de tecles o fins i tot estar en mode gràfic i desenvolupar codi en mode text
sobre un terminal, o connectat amb un terminal a una altra màquina o al disc
d'una altra màquina.
El tercer concepte interessant és que la interacció entre l'usuari i el nucli es
fa per mitjà d'un intèrpret d'ordres anomenat shell, que pot ser escollit per
l'usuari entre uns quants. Aquests shells permeten l'execució (interpretació,
més ben dit, ja que el codi està escrit en llenguatge text ASCII) de petits pro-
grames anomenats shell scripts, que són molt potents per a executar seqüències
d'instruccions (i que poden arribar a ser molt complexes). Òbviament, igual
com altres sistemes operatius, GNU/Linux en la seva interfície gràfica suporta
la interacció gràfica sobre les diferents accions del sistema, i permet executar
shell scripts com si es tractés d'altres programes.
Dos conceptes interessants més en els sistemes *nix són la idea de tasca d'usuari
o del sistema operatiu i l'estructura del sistema d'arxius. Quant al primer con-
cepte, una tasca és una activitat que ha de fer el sistema operatiu, que pot ser
l'execució d'una instrucció, una ordre, editar un arxiu, etc. Per a això, el siste-
ma operatiu ha d'executar un programa adequat per a fer aquesta tasca, que
normalment es denomina executable, ja que conté les instruccions màquina
per a fer-la. Quan el programa executable es carrega en memòria s'anomena
procés o programa en execució, ja que conté, a més de l'executable, totes les es-
tructures de dades perquè es pugui fer aquesta tasca, i s'allibera tota la memò-
ria quan finalitza l'execució.
Aquest procés es pot suspendre, bloquejar, o se'n pot continuar l'execució
d'acord amb les necessitats de l'usuari i amb el que ordeni el sistema operatiu.
Una derivació d'aquest concepte de procés és que en els processadors moderns
un procés pot ser dividit entre diverses subtasques (anomenats fils d'execució
o threads). Quins avantatges té un programa multifil? Que el codi que executa
cada fil el defineix el programador, i per això es pot tenir un fil atenent una
lectura de disc i un altre fent un refresc d'una imatge en pantalla simultània-
ment dins del mateix procés. Fins i tot tenint un sol processador, aquest tipus
de programació és més eficient que no si fa una subtasca primer i una altra
després.
Finalment, els sistemes *nix disposen d'una estructura d'arxius estàndard en
què s'ubiquen els arxius del sistema amb independència total dels dispositius
físics. És a dir, a partir d'una arrel (anomenada root i definida per la barra /)
s'ubiquen els diferents directoris en funció dels seus objectius, i aquí cada usu-
ari disposa d'un directori de treball propi, generalment en el directori /home/
nom-usuari, en què el propietari té capacitat de decisió total, mentre que no
és així en la resta de l'arbre (el superusuari té el seu directori en /root).
Nota
Els fils d'execució o threadspoden ser executats indepen-dentment per diferents proces-sadors.
GNUFDL • PID_00167522 9 Nivell d'usuari
2. Conceptes i ordres bàsiques
Entrant en una mica més de detall, en aquest apartat discutirem les idees bà-
siques i les instruccions necessàries per a "moure'ns" en el sistema. La mane-
ra més simple és per mitjà d'ordres en l'intèrpret d'ordres (i ja veureu com és
el més eficient quan s'adquireix una mica de pràctica, encara que al principi
pugui semblar antiquat o complicat, o totes dues coses). Aquest mètode de
treball ens permetrà treballar ràpidament amb qualsevol màquina de manera
local o remota, ja que hi ha repetició i text predictiu de les instruccions, i es
poden executar ordres molt complexes o programar shell scripts simplement
amb un terminal de text. S'ha de tenir en compte que una interfície gràfica és
summament útil per a un usuari novell, però extremadament ineficient per
a un usuari avançat.
La majoria de les ordres, o instruccions, que veurem en aquest apartat, for-
men part de l'estàndard (normes IEEE POSIX) i són comunes a tots els sis-
temes GNU/Linux i Unix. Encara que cada distribució té les seves aplicaci-
ons d'administració i gestió pròpies, generalment totes les accions que s'hi fan
també es poden fer amb les ordres que veurem. A partir d'aquestes ordres, po-
drem manipular gairebé tots els aspectes del sistema i moure'ns eficientment.
En aquest apartat tenim per objectiu aprendre a utilitzar correctament aques-
tes ordres i a navegar per qualsevol sistema basat en GNU/Linux independent-
ment de quina distribució usem. Cada una de les ordres del sistema sol tenir
multitud de paràmetres diferents. Amb la utilització dels paràmetres podem,
amb una mateixa ordre, executar accions diferents, encara que totes siguin
d'un mateix estil. En aquest document no especificarem els diferents paràme-
tres de cada una de les ordres que veurem, ja que es pot consultar el manual
inclòs en tot sistema *nix amb l'ordre man�<nom_ordre>. És interessant co-
mentar que si no se sap el nom de l'ordre es pot utilitzar la instrucció apropos
acció, que ens farà una llista de totes les ordres, i en la qual la paraula passada
com a acció surt en l'especificació de l'ordre. Per exemple, si posem apropos
copy ens donarà:
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_00167522 10 Nivell d'usuari
Això indica les instruccions que permeten copiar algun element. El paràmetre
d'una ordre està precedit per un espai o moltes vegades per un guionet, com
per exemple:
cp -dpR /home/juan /usr/local/backup
Això permet fer una còpia de suport dels arxius de /home/juan en /usr/local/
backup, i amb -d indiquem que copiï els enllaços simbòlics tal com són, en lloc
de copiar els arxius als quals apunten; amb -p preserva els permisos, l'usuari i
el grup de l'arxiu per copiar, i amb -R copia els directoris recursivament.
2.1. Usuari i grups
Com hem dit en la introducció, tots els *nix són multiusuari i multitasca.
Per aquest motiu és molt important que el sistema operatiu mateix incorpori
mecanismes per a manipular i controlar correctament els usuaris: el sistema
d'entrada i identificació (login o connexió), els programes que pot executar, els
mecanismes de seguretat per a protegir el maquinari de l'ordinador, protecció
per als fitxers dels usuaris, etc.
Per a identificar els usuaris davant del sistema operatiu, generalment s'utilitza
una política de noms estàndard, que sol ser posar com a nom d'entrada la
primera inicial del nom de l'usuari seguit del seu cognom. Els sistemes *nix
organitzen tota aquesta informació per usuaris i grups i cal recordar que es
diferencien majúscules i minúscules i, per tant, abc és diferent de ABC. Per a
entrar a treballar interactivament amb el sistema, ens demanarà una connexió
i una contrasenya.
L'inici de sessió sol ser un nom que identifica de manera inequívoca l'usuari,
i si bé hi ha altres mètodes d'identificació, per exemple, mitjançant certifi-
cats digitals, el primer és el mètode més habitual. Per a validar la connexió
se sol·licita una paraula que només coneix l'usuari, que s'anomena contrase-
nya (password, en anglès). La contrasenya ha de ser una combinació de lletres,
nombres i caràcters especials, i no ha de ser cap paraula de diccionari o simi-
lars, perquè pot representar un problema de seguretat important.
Exemple
Per exemple, si posem una contrasenya com .MBAqcytvav34 podria semblar impossiblede recordar fàcilment, però és un punt i les primeres lletres del tango Mi Buenos Airesquerido cuando yo te vuelva a ver i l'any que es va escriure, i forma una paraula clau queserà molt més complexa d'esbrinar que una paraula que sigui al diccionari, ja sigui escritaen l'ordre normal o al revés.
Nota
Hi ha diferents tipus d'instal·lacions d'un sistema operatiu en funció de l'objectiu o paperque complirà i les aplicacions que tindrà instal·lades: servidor, escriptori, ofimàtica, lleu-re, passarel·la, tallafocs, etc. Un servidor és aquella màquina que conté programes ques'encarreguen de proporcionar algun tipus de servei (com servir pàgines web, deixar que
GNUFDL • PID_00167522 11 Nivell d'usuari
els usuaris es connectin remotament, etc.), que en la majoria dels casos estan vinculatsa una xarxa de comunicacions, però no necessàriament.
El sistema de contrasenyes és de tipus unidireccional, la qual cosa significa que
la nostra contrasenya no és emmagatzemada com a text, sinó que és xifrada i
guardada. Quan entrem en el sistema i escrivim la nostra contrasenya, es xifra
i es compara amb la que hi ha emmagatzemada. Si coincideixen, la identifi-
cació és positiva, si no coincideixen, és negativa. La seguretat del sistema es
basa en l'algoritme de xifratge, del qual, si és segur, no es podrà aconseguir la
clau original fent el procediment invers. Els programes que intenten trencar
les contrasenyes dels usuaris fan milions de xifratges de paraules a partir de
diccionaris (amb sistemes automàtics per a derivar-les i buscar variants) i pro-
var si coincideixen amb el xifratge d'alguna de les contrasenyes d'usuari. Per
aquest motiu, s'han d'escollir acuradament les contrasenyes, i tenir cura d'on
es desen o apunten (cal intentar no fer-ho).
Actualment, en els sistemes GNU/Linux podem seleccionar dos tipus de xi-
fratge possibles per a les contrasenyes d'usuari. El que s'utilitza des dels ini-
cis de Unix és el 3DES. L'únic inconvenient d'aquest tipus de xifratge és que
només ens permet contrasenyes de 8 lletres (si escrivim més, s'ignoren), a di-
ferència de l'altre tipus de xifratge, denominat MD5, amb el qual podem usar
contrasenyes de la longitud que vulguem (de fet, MD5 és un sistema de funció
resum o hashing, però també es pot utilitzar per a xifrar contrasenyes de ma-
nera unidireccional). Com més llarga sigui la contrasenya, resulta més segura,
i per això es recomana utilitzar el segon tipus de xifratge en sistemes d'alta
seguretat. De tota manera, hem de considerar que, si necessitem usar alguns
programes especials per a la gestió d'usuaris, com el NIS, pot ser que no siguin
compatibles amb MD5.
Els grups d'usuaris són un conjunt d'usuaris amb accés al sistema que compar-
teixen unes mateixes característiques, de manera que ens és útil agrupar-los
per a poder donar-los una sèrie de permisos especials en el sistema. Un usuari
ha de pertànyer, almenys, a un grup, encara que pot ser de més d'un. El siste-
ma també utilitza tot aquest mecanisme d'usuaris i grups per a gestionar els
servidors d'aplicacions instal·lats i altres mecanismes. Per aquesta raó, a més
dels usuaris reals, en un sistema hi haurà usuaris i grups que no tenen accés
interactiu però estan vinculats a altres tasques que s'han de fer en l'operatiu.
Exemple
Per exemple, l'usuari Debian-Exim és un usuari definit per a les funcionalitats del gestorde correu Exim que té ID d'usuari (101) i de grup (105), però que no es pot connectarinteractivament (tal com ho indica el /bin/false de la definició de l'usuari en l'arxiu /etc/passwd).
Debian-exim:x:101:105::/var/spool/exim4:/bin/false.
Com ja hem explicat, en tot sistema operatiu hi ha un superusuari (root) que té
privilegis màxims per a efectuar qualsevol operació sobre el sistema. És neces-
sari que existeixi, ja que serà qui s'encarregarà de tota l'administració i gestió
Nota
NIS són una sèrie d'aplicacionsque ens permeten gestionartots els usuaris d'una mateixaxarxa de manera centralitzadaen un sol servidor.
GNUFDL • PID_00167522 12 Nivell d'usuari
de servidors, grups, etc. Aquest usuari no s'ha d'utilitzar per a treballar normal-
ment en el sistema. Només haurem d'entrar com a root quan sigui realment
necessari (actualment, la majoria de les distribucions no permeten entrar com
a root, sinó entrar com a usuari normal i després "elevar-se" com a root per
mitjà de la instrucció su o executar instruccions amb l'ordre sudo) i utilitza-
rem altres usuaris per al treball normal. D'aquesta manera, mai no podrem
danyar el sistema amb operacions errònies o provant programes que poden
ser maliciosos, etc.
Tota la informació d'usuaris i grups es troba als arxius següents:
• /etc/passwd: informació (nom, directori home, etc.) de l'usuari.
• /etc/group: informació sobre els grups d'usuaris.
• /etc/shadow: contrasenyes xifrades dels usuaris i configuració per a la va-
lidació, canvi, etc.
Utilitzar l'arxiu shadow és opcional però recomanable, ja que és un arxiu que
només pot llegir root; per tant, la resta d'usuaris no tindrà accés a les contra-
senyes xifrades i es redueix així la probabilitat que un usuari normal pugui
utilitzar eines de força bruta per a esbrinar les contrasenyes d'altres usuaris o
de root.
Tots aquests fitxers estan organitzats per línies, cada una de les quals identifica
un usuari o grup (depenent del fitxer). En cada línia hi ha diversos camps
separats pel caràcter ":", i és important saber què són aquests camps, per la qual
cosa els explorarem amb una mica més de detall:
1)�/etc/passwd. Per exemple, games:x:5:60:games:/usr/games:/bin/sh.
• Camp 1. Connexió: el nom de l'usuari. No hi pot haver dos noms iguals,
encara que algun pot coincidir amb un grup del sistema.
• Camp 2. Contrasenya xifrada: si no s'utilitza el fitxer shadow, les contrase-
nyes xifrades s'emmagatzemen en aquest camp. Si utilitzem el fitxer sha-
dow, tots els usuaris existents han d'estar també en el shadow i en aquest
camp s'identifica amb el caràcter x.
• Camp 3. ID d'usuari: número d'identificació de l'usuari. És el número amb
el qual el sistema identifica l'usuari. El 0 és el reservat per al root.
• Camp 4. ID del grup: el número de grup al qual pertany l'usuari. Com que
un usuari pot pertànyer a més d'un grup, aquest grup es denomina primari.
• Camp 5. Comentaris: camp reservat per a introduir els comentaris so-
bre l'usuari. Se sol utilitzar per a posar el nom complet o algun tipus
d'identificació personal.
Nota
Informació d'usuaris i grups:• /etc/passwd: informació
dels usuaris.• /etc/group: informació so-
bre els grups d'usuaris.• /etc/shadow: contrasenyes
xifrades dels usuaris i confi-guració per a la validació,canvi, etc.
GNUFDL • PID_00167522 13 Nivell d'usuari
• Camp 6. Directori d'usuari: el directori de l'usuari, que és on pot deixar
tots els seus fitxers. Se solen posar en una carpeta del sistema (generalment
/home/login-usuari).
• Camp 7. Intèrpret d'ordres: un intèrpret d'ordres (shell) és un programa
que s'encarrega de llegir tot el que escrivim amb el teclat i executar els
programes o ordres que indiquem. En el món GNU/linux el més utilitzat
és el Bash (GNU Bourne again shell), si bé n'hi ha altres (csh, ksh, etc.). Si
en aquest camp escrivim /bin/false, no permetrem que l'usuari executi cap
ordre en el sistema, encara que estigui donat d'alta.
2)�/etc/group. Per exemple, netdev:x:110:Debian.
• Camp 1. Nom del grup.
• Camp 2. Contrasenya xifrada: la contrasenya d'un grup s'utilitza per a per-
metre que els usuaris d'un determinat grup es puguin canviar a un altre
o per a executar alguns programes amb permisos d'un altre grup (sempre
que es disposi de la contrasenya).
• Camp 3. ID de grup: número d'identificació del grup. És el número amb
el qual el sistema identifica internament els grups. El 0 està reservat per al
grup de root (els administradors).
• Camp 4. Llista d'usuaris: els noms dels usuaris que pertanyen al grup, se-
parats per comes. Encara que tots els usuaris han de pertànyer a un grup
determinat (especificat en el quart camp del fitxer passwd), aquest camp
es pot utilitzar perquè usuaris d'altres grups també disposin dels mateixos
permisos que té l'usuari a qui s'està fent referència.
3)�/etc/shadow. Per exemple,
root:$1$oE9iKzko$n9imGERnPDayiyat0XQjm.:14409:0:99999:7:::
• Camp 1. Connexió: ha de ser el mateix nom que s'utilitza en el fitxer /etc/
passwd.
• Camp 2. Contrasenya xifrada.
• Camp 3. Dies que han passat, des de l'1/1/1970, fins que la contrasenya
ha estat canviada per última vegada.
• Camp 4. Dies que han de passar fins que la contrasenya es pugui canviar.
• Camp 5. Dies que han de passar fins que la contrasenya s'hagi de canviar.
• Camp 6. Dies abans que caduqui la contrasenya s'avisarà l'usuari que l'ha
de canviar.
• Camp 7. Dies que poden passar després que la contrasenya caduqui abans
de deshabilitar el compte de l'usuari (si no es canvia la contrasenya).
• Camp 8. Dies, des de l'1/1/1970, que el compte és vàlid, i passats aquests
dies serà deshabilitat.
GNUFDL • PID_00167522 14 Nivell d'usuari
• Camp 9. Reservat.
Quan un usuari entra en el sistema, se situa en el seu directori personal i
s'executa l'intèrpret d'ordres (shell) configurat en /etc/passwd en la línia cor-
responent a l'usuari. D'aquesta manera, ja pot començar a treballar. Només el
root del sistema (o els usuaris del seu grup) tenen permís per a manipular la
informació dels usuaris i grups, donar-los d'alta, de baixa, etc. Cada ordre per
a manejar els usuaris té diversos paràmetres diferents per a gestionar tots els
camps que hem vist anteriorment.
A tall d'exemple, podem esmentar:
• adduser: ens serveix per a afegir un nou usuari al sistema. La manera
com s'afegeix (si no li especifiquem res) es pot configurar en el fitxer /etc/
adduser.conf. Admet un conjunt d'opcions diferents per a especificar el
directori d'usuari, l'intèrpret que utilitzarà, etc.
• useradd: crea un nou usuari o canvia la configuració per defecte. Aquesta
ordre i l'anterior ens poden servir per a fer les mateixes accions, encara que
amb diferents paràmetres.
• usermod: amb aquesta ordre podem modificar la majoria dels camps
que es troben en els fitxers passwd i shadow, com el directori personal,
l'intèrpret, la caducitat de la contrasenya, etc.
• chfn: canvia la informació personal de l'usuari, continguda en el camp de
comentaris del fitxer passwd (campos).
• chsh: canvia l'intèrpret d'ordres de l'usuari.
• deluser: elimina un usuari del sistema, i esborra tots els seus fitxers segons
els paràmetres que li passem, fa còpia de seguretat o no, etc. La configura-
ció que s'utilitzarà per defecte amb aquesta ordre s'especifica en el fitxer
/etc/deluser.conf.
• userdel: ordre amb les mateixes possibilitats que l'anterior.
• passwd: serveix per a canviar la contrasenya d'un usuari, la informació de
caducitat, o per a bloquejar o desbloquejar un determinat compte.
• addgroup: permet afegir un grup al sistema.
• groupadd: el mateix que l'ordre anterior, però amb diferents paràmetres.
• groupmod: permet modificar la informació (nom i GID) d'un grup deter-
minat.
Nota
Ordres bàsiques de gestiód'usuaris i grups:• useradd• usermod• chfn• chsh• deluser• userdel• passwd• addgroup• grouppadd• groupmodd• delgroup• groupdel• gpasswd• groups
GNUFDL • PID_00167522 15 Nivell d'usuari
• delgroup: elimina un grup determinat. Si algun usuari el té com a primari,
no es podrà eliminar.
• groupdel: igual que en el cas anterior.
• gpasswd: serveix per a canviar la contrasenya del grup. Per a saber quin
usuari som, podem utilitzar l'ordre whoami, que ens mostrarà el nostre
nom d'entrada.
• groups: serveix per a saber a quins grups pertanyem, i id ens mostrarà
l'usuari i els grups.
També és interessant poder convertir-nos en un altre usuari sense sortir de la
sessió (ordre login o su) o canviar-nos de grup amb l'ordre newgrp. Aquesta
última ordre s'ha d'utilitzar només quan no es pertany al grup en qüestió i se
sap la seva contrasenya (que ha d'estar activada en el fitxer group). Si només
necessitem els permisos del grup en qüestió per a executar una ordre determi-
nada, també podem utilitzar sg.
Com veiem, en GNU/Linux tenim més d'una manera per a executar
una acció determinada. Aquesta és la tònica general que se segueix en
el sistema: podem editar directament els fitxers i modificar-los, utilitzar
algunes de les ordres que hi ha, crear-les nosaltres mateixos, etc. En
definitiva, tenim la possibilitat de seleccionar quina és l'opció que més
ens satisfà.
D'altra banda, i com dèiem anteriorment, GNU/Linux és un sistema operatiu
multiusuari, per la qual cosa en un mateix moment hi pot haver diversos usu-
aris connectats al sistema de manera simultània. Per a esbrinar qui són, es pot
utilitzar l'ordre who, que ens mostra la llista d'usuaris dins del sistema; w, a
més, ens mostra què és el que estan fent. Ens podem comunicar amb un altre
usuari utilitzant l'ordre write, amb la qual apareix el missatge que hem escrit a
la pantalla de l'usuari indicat o wall, que escriu el contingut del fitxer que hem
especificat en tots els usuaris dins del sistema. Per a activar o desactivar l'opció
de rebre missatges, tenim l'ordre mesg. També podem fer un xat personal amb
algun usuari a partir de l'ordre talk.
2.2. El sistema de fitxers i la jerarquia
Tot sistema operatiu necessita desar multitud d'arxius: configuració del siste-
ma, registre d'activitats, d'usuaris, etc. Hi ha diferents sistemes d'arxius carac-
teritzats per la seva estructura, fiabilitat, arquitectura, rendiment, etc., i GNU/
GNUFDL • PID_00167522 16 Nivell d'usuari
Linux és capaç de llegir i escriure arxius en la gairebé totalitat dels sistemes
d'arxius, encara que té els seus sistemes propis optimitzats per a les seves fun-
cionalitats, com per exemple ext3 o ReiserFS.
L'ext4 és una millora compatible amb ext3 que, al seu torn, és una evolució
de l'ext2 que és el més típic i estès. El seu rendiment és molt bo, incorpora
tot tipus de mecanismes de seguretat i adaptació, és molt fiable i incorpora
una tecnologia denominada journaling, que permet recuperar fàcilment errors
en el sistema quan, per exemple, hi ha un tall de llum o l'ordinador sofreix
una parada no prevista. ext4 suporta volums de fins a 1024 PiB (PiB pebibyte
= 250 bytes ≈ 1.000.000.000.000.000 bytes), millora l'ús de la CPU i el temps
de lectura i escriptura..
ReiserFS és un altre dels sistemes utilitzats en Linux que incorpora noves tec-
nologies de disseny, que li permeten obtenir prestacions i utilització de l'espai
lliure més adequades. Qualsevol d'aquests tipus de sistemes d'arxius pot ser
seleccionat en el procés d'instal·lació, i és recomanable ext3 per a la majoria
de les instal·lacions.
Una característica molt important de tots els sistemes *nix és que tots els dis-
positius del sistema es poden tractar com si fossin arxius (independència del
dispositiu físic). És a dir, hi ha el procediment de "muntar el dispositiu" per
mitjà de l'ordre mount en un directori del sistema i després, accedint a aquest
directori, s'accedeix al dispositiu (fins i tot si el dispositiu és remot), per la qual
cosa no hi ha una identificació del dispositiu físic per a treballar amb els fitxers
com en altres sistemes operatius, com A:, C:, etc.).
El sistema de fitxers ext2/3/4 ha estat dissenyat per a manejar de manera òpti-
ma fitxers petits (els més comuns) i de manera acceptable els fitxers grans (per
exemple, arxius multimèdia) si bé es poden configurar els paràmetres del sis-
tema de fitxers per a optimitzar el treball amb aquest tipus d'arxius. Com hem
esmentat anteriorment, el sistema d'arxius parteix d'una arrel indicada amb
/, i les carpetes (directoris) i subcarpetes (subdirectoris) s'organitzen a partir
d'aquesta, de manera que presenta una organització jeràrquica (visualitzada
amb l'ordre tree -L 1) com:
/
|-- bin
|-- boot
|-- cdrom -> media/cdrom
|-- dev
|-- etc
|-- home
|-- initrd.img -> boot/initrd.img-2.6.26-2-686
|-- lib
|-- lost+found
GNUFDL • PID_00167522 17 Nivell d'usuari
|-- media
|-- mnt
|-- opt
|-- proc
|-- root
|-- sbin
|-- selinux
|-- srv
|-- sys
|-- tmp
|-- usr
|-- var
`-- vmlinuz -> boot/vmlinuz-2.6.26-2-686
Aquí es mostra el primer nivell de directoris a partir del /. Tots són directoris,
excepte els que figuren amb el caràcter "->", que són enllaços a arxius (l'arxiu
original es troba a la dreta de la fletxa).
2.3. Directoris del sistema
En les distribucions GNU/Linux se segueix l'estàndard FHS, i tenim com a
directoris en l'arrel (els més importants):
• /bin: ordres bàsiques per a tots els usuaris del sistema.
• /boot: arxius necessaris per a l'arrencada del sistema.
• /dev: dispositius del sistema.
• /etc: arxius de configuració del sistema i de les aplicacions que hi ha
instal·lades.
• /home: directoris personals dels usuaris.
• /lib: biblioteques essencials per al nucli del sistema i els seus mòduls.
• /mnt: punt de muntatge temporal per a dispositius.
• /proc: processos i variables del nucli del sistema.
• /root: directori personal per al root del sistema.
• /sbin: instruccions especials per al root del sistema.
• /tmp: arxius temporals.
• /usr: segona estructura jeràrquica, utilitzada per a emmagatzemar tot el
programari instal·lat en el sistema.
• /var: directori per als gestors de cues o spoolers d'impressió, arxius de re-
gistre (logs), etc.
No s'han d'esborrar aquests directoris, malgrat que sembli que no s'utilitzen,
per al bon funcionament del sistema (moltes aplicacions poden no instal·lar-se
o donar errors si els directoris estàndard no estan definits).
GNUFDL • PID_00167522 18 Nivell d'usuari
Per a moure'ns per l'estructura de directoris hem d'utilitzar les ordres per a fer
una llista dels continguts i canviar de carpeta. Quan entrem en el sistema, és
usual que la connexió ens situï en el nostre directori personal, que general-
ment se sol indicar amb el caràcter "~". Si volem veure el que hi ha en el di-
rectori en el qual estem situats, podem fer una llista dels continguts utilitzant
l'ordre ls o, en la seva versió més completa, ls�-la, que implica tots els fitxers
(incloent-hi els que comencen per un ".", que no es mostren normalment) amb
-a, i en format llarg amb -l. En tots els directoris hi ha dues entrades indicades
amb "." i ".."; la primera fa referència al directori actual i la segona al directori
superior.
Per a canviar de directori podem utilitzar l'ordre cd, la qual, si no li passem cap
paràmetre, ens situarà en el directori personal de l'usuari que l'ha executada.
Totes les ordres accepten adreces relatives; per exemple, ls ./grub si estem en el
directori /boot ens mostrarà el contingut del directori /boot/grub (forma rela-
tiva) o ls /boot/grub també ens mostrarà el contingut del directori /boot/grub,
però des de qualsevol lloc on estiguem (forma absoluta). Una altra ordre útil
per a saber on estem aturats és pwd, que ens indicarà en quin directori som.
2.4. Enllaços
Un element molt utilitzat en els arxius són els enllaços o vincles. Un
enllaç és un pont a un arxiu o directori i representa una referència que
podem posar en qualsevol lloc que ens interessi, i actua com un accés
directe a qualsevol altre.
Aquest mecanisme ens permet accedir a carpetes o fitxers de manera segura i
còmoda, sense haver-nos de desplaçar per la jerarquia de directoris.
Exemple
Si necessitem accedir freqüentment a l'arxiu /etc/network/if-up/mountnfs, per exem-ple, podem utilitzar un enllaç en el nostre directori amb l'ordre ln -s /etc/network/if-up/mountnfs nfs-conf, i fent un cat nfs-conf tindrem el mateix resultat que fent cat /etc/network/if-up/mountnfs, i així evitem haver d'introduir cada vegada tota la ruta completa.
En aquest cas hem creat un enllaç simbòlic paràmetre (-s) és a dir, que si es-
borrem l'arxiu l'enllaç quedarà apuntant a res i donarà un error quan execu-
tem l'ordre cat nfs-conf, però aquest tipus d'enllaç es pot fer en qualsevol re-
curs i en qualsevol de les particions del disc. L'altra possibilitat és fer un enllaç
fort (hard link), permès només per a recursos en la mateixa partició; en aquest
cas, si esborrem l'arxiu, l'enllaç queda actiu fins que no hi hagi més enllaços
apuntant a aquest arxiu (moment en el qual s'esborrarà l'arxiu de destinació).
Aquest recurs s'ha d'utilitzar amb compte (només el root pot fer enllaços forts a
directoris), ja que permet ocultar a quin arxiu està apuntant, mentre que amb
un enllaç simbòlic es pot veure l'arxiu de destinació.
Exemple
Per exemple, si fem ls�. mos-trarà la llista del directori actu-al i si fem ls�.. mostrarà la llistadel directori immediatamentsuperior.
GNUFDL • PID_00167522 19 Nivell d'usuari
2.5. Permisos
Ja que els sistemes *nix són multiusuari, necessitem que els arxius emmagat-
zemats tinguin una sèrie de propietats que permetin llegir, escriure i executar
(paràmetres r, w, x –read, write, execute). Per a això GNU/Linux pot treballar
amb un mètode simplificat (anomenat access control list reduïdes) en què per a
cada element en el sistema d'arxius es consideren tres bits (que representen els
atributs per a rwx) per al propietari de l'element (owner), tres per al grup i tres
per a la resta d'usuaris. Llavors, per a cada element (arxiu, directori, dispositiu,
enllaç, etc.) hi ha 9 bits a més de la identificació de qui és l'amo de l'element
(uid) i a quin grup pertany (gid). Quan fem ls -l tindrem per a cada element
una sortida com la següent:
-rwxr-xr-x 1 root root 4297 2008-01-18 06:09 mountnfs
Els primers deu caràcters (començant per l'esquerra) ens indiquen els permisos
del fitxer de la manera següent:
• Caràcter 1: indica el tipus d'arxiu; els més comuns són "-" per a un arxiu,
d per a un directori, i l per a un enllaç.
• Caràcters 2, 3, 4: ens indiquen, respectivament, els permisos de lectura,
escriptura i execució per al propietari del fitxer. En cas de no tenir el permís
corresponent activat, hi ha el caràcter "-" i si no, r, w o x. En el tercer caràc-
ter, a més, ens podem trobar una s, que ens indica si l'arxiu és de tipus
SetUserId, que significa que en executar-lo obtindrà els permisos del pro-
pietari del fitxer. Si només té el permís x, quan el programa s'executa ho
fa amb els permisos de qui l'hagi llançat.
• Caràcters 5, 6, 7: aquests caràcters tenen exactament el mateix significat
que els anteriors, però fan referència als permisos concedits als usuaris del
grup a què pertany l'arxiu.
• Caràcters 8, 9, 10: igual que en el cas anterior, però per als altres usuaris
del sistema.
La xifra següent (1, en aquest cas) ens indica el nombre d'enllaços forts que
té l'arxiu. Per als directoris, aquest nombre indica quantes carpetes hi ha en
l'interior, a més dels enllaços forts que té. A continuació es troba el propietari
i el grup de l'arxiu, seguit de la mida (en bytes) que ocupa i la data de l'última
modificació. En tots els arxius es desa la data de creació, de l'últim accés i
de l'última modificació, que podem manipular amb l'ordre touch. Al final es
troba el nom del fitxer, en el qual es diferencien minúscules de majúscules, i
aquí podem tenir tot tipus de caràcters sense cap problema (encara que després
GNUFDL • PID_00167522 20 Nivell d'usuari
serà més complicat executar ordres amb aquests caràcters, ja que s'haurà de
posar entre cometes ("") perquè no s'interpretin). Es recomana utilitzar: a-z A-Z
. - _ 0-9.
El mecanisme de SetUserId és molt útil quan un programa necessita tenir
els permisos del seu propietari per a accedir a certs arxius o fer algun tipus
d'operació en el sistema. S'ha de vigilar aquest tipus d'arxius perquè poden
generar problemes de seguretat en el sistema si són mal utilitzats. Per a canviar
els permisos d'un arxiu determinat podem utilitzar l'ordre chmod, i aquesta
acció només la pot fer el propietari de l'arxiu. Hi ha dues maneres comunes
d'utilitzar chmod. Una és: chmod XXX nom_arxiu, en què XXX està comprès
entre 0 i 7, que corresponen al valor en octal dels permisos rwx per al propie-
tari (primer número), el grup (segon) i públic (tercer). Per a treure el número
hem de considerar que 1 vol dir amb permís concedit, i 0, sense; per exemple, r-x
es tradueix com 101, que en octal (o binari) és 5. Per això, r-x--xr-- es tradueix
com 101001100, que queda com 514.
Proteccions
Per a canviar les proteccionsde file a rwxr--r-:chmod 744 filePer a canviar de propietari igrup:chown user filechgrp group file
L'altra manera d'utilitzar l'ordre és indicar de manera explícita quin permís
volem donar o eliminar en l'arxiu, indicant amb les lletres u, g, o l'usuari, el
grup o la resta, respectivament, un + per a agregar el permís i un − per a treure'l,
i r, w, x o s (aquest últim per al SetUserId) per al permís en concret. Per exemple,
chmod go +r mountfs concediria el permís de lectura al grup i als altres usuaris
per a l'arxiu mountnfs. Perquè canviï el propietari d'un fitxer, s'utilitza l'ordre
chown1, i per a canviar el grup d'un arxiu es pot utilitzar l'ordre chgrp. Els
permisos per defecte per als arxius es poden definir amb l'ordre umask, amb
la mateixa notació que per a la primera forma del chmod però complementat
(és a dir, si volem rw-r- -r-- el valor hauria de ser 133).
2.6. Manipulació, patrons, cerques i continguts
L'ordre rm permet eliminar els arxius, i per a eliminar un directori podem uti-
litzar l'ordre rmdir, encara que només l'esborrarà quan sigui buit (si volgués-
sim esborrar completament un directori i tot el seu contingut, podem utilitzar
rm -r, que funciona de manera recursiva). Per a copiar arxius d'un lloc a un
altre tenim l'ordre cp, indicant el fitxer o directori origen i el lloc o nom de
destinació, encara que sigui en el directori actual (si volem moure un arxiu o
directori, es pot utilitzar l'ordre mv).
(1)Aquesta ordre només la pot uti-litzar el root, ja que un usuari po-dria fer una acció maliciosa i des-prés canviar el propietari de l'arxiui responsabilitzar un altre usuari del'acció feta.
Podem utilitzar modificadors en els noms dels arxius o directoris, com per
exemple "*", per a referir-nos a qualsevol cadena, i "?" per a indicar un caràcter
qualsevol. Per exemple, si volem mostrar tots els arxius que comencin per a
i acabin per x caldrà executar ls a*x, però si volem mostrar tots els arxius de
tres lletres que comencin per a i acabin per x, serà ls a?x. Es pot utilitzar "[]"
per a una selecció de caràcters; per exemple ls [Yy]* indicaria tots els arxius
que comencin per Y o per y, i després qualsevol cosa. Podem agregar també
Caràcters modificadors
*: qualsevol cosa,?: un caràcter[Yy]: un o l'altre[A-Z]: un rang[:classe:]: una classe
GNUFDL • PID_00167522 21 Nivell d'usuari
"!", que significa la negació del que indiquem, com en [!Yy], és a dir, que no
comencin per Y o y. Finalment, per a facilitar certes cerques, dins de "[]" podem
especificar classes de caràcters com [:classe:], que pot ser una de les següents:
• alnum: [A-Za-z0-9]
• alpha: [A-Za-z]
• blank: [\]
• cntrl: caràcters de control
• digit: [0-9A-Fae-f]
• graph: caràcters imprimibles (sense espais)
• lower: [a-z]
• print: caràcters imprimibles (amb espais)
• punct: [.,¡!¿?:;]
• space: []
• upper: [A-Z]
• xdigit: [0-9A-Fa-f]
Un altre tipus d'operació molt útil és la cerca d'arxius. Hi ha diverses ordres
per a fer cerques de diferents tipus: find és l'ordre més versàtil per a buscar in-
formació sobre els arxius o directoris (per nom, mida, data, proteccions, etc.),
locate permet utilitzar una base de dades del sistema per a fer cerques més
ràpides que el find, però s'ha de tenir en compte que pot donar informació
no actualitzada i que es pot actualitzar amb updatedb, i whereis indica on es
troba l'arxiu especificat.
Com els arxius poden ser de molts tipus (executables, text, dades, música, etc.)
en els sistemes *nix no s'utilitza l'extensió per a identificar el tipus d'arxiu
sinó un nombre intern a la capçalera de l'arxiu anomenat magic number, que
determina el tipus d'arxiu segons les seves dades (es pot utilitzar l'ordre file
per a llegir i determinar el tipus d'arxiu). Si necessitem veure el contingut d'un
arxiu, una de les ordres bàsiques és cat, o more si l'arxiu és ASCII; llavors el
mostrarà paginat. Si fem un cat d'un arxiu executable alguns dels caràcters
poden desconfigurar el terminal i es pot reinicialitzar amb l'ordre reset, i clear
per a esborrar la pantalla. L'ordre less ens permet moure'ns de manera més
eficient (endavant i endarrere per l'arxiu). Si l'arxiu és binari i volem veure què
conté, podem utilitzar les ordres hexdump per a veure el contingut de forma
hexadecimal o strings per a buscar les cadenes de caràcters. A l'ordre grep li
podem passar com a segon paràmetre el nom de l'arxiu, i com a primer, el patró
que vulguem buscar (segons la sintaxi que hem vist anteriorment, estesa a
altres opcions). A més, l'ordre ens permet múltiples accions més, com comptar
el nombre de línies en les quals apareix el patró (paràmetre -c), etc. Amb cut
podem separar en camps el contingut de cada línia del fitxer especificant quin
caràcter és el separador, molt útil en tasques d'administració. També podem
visualitzar un determinat nombre de línies del començament o del final d'un
arxiu amb les ordres head i tail, respectivament, i amb wc podem comptar
el nombre de línies o paraules, la màxima longitud de línia d'un fitxer, etc.
Finalment, per a comparar diferents arxius hi ha diverses ordres per a fer-ho:
GNUFDL • PID_00167522 22 Nivell d'usuari
diff,�cmp i comm fan comparacions de diferents maneres i mètodes en els
fitxers que indiquem; sdiff a més permet barrejar les dades d'acord amb els
paràmetres indicats.
2.7. Processos
Com hem dit en la introducció, els *nix són sistemes operatius multitasca que
executen processos i fils (threads) mitjançant una tècnica anomenada multi-
programació, que permet executar més d'un procés o fil alhora de manera con-
current i més eficient que si l'executéssim seqüencialment, ja que es pot enca-
valcar l'execució d'entrada o sortida d'un procés amb l'execució en la CPU d'un
altre procés. Per a identificar de manera inequívoca cada procés, el nucli del
sistema els assigna un número denominat PID (process identification), necessari
per a administrar i referenciar el procés.
Per a saber quins processos s'estan executant, podem utilitzar l'ordre ps. Una
altra ordre interessant per a mirar l'execució interactiva dels processos és top,
que mostra la càrrega i l'estat de sistema de manera dinàmica (cal prémer q
–quit– per a sortir de la instrucció).
A més d'això, podem enviar senyals als processos a fi d'informar-los d'algun
esdeveniment, els podem treure de la cua d'execució, eliminar-los, donar-los
més prioritat, etc. Saber manipular correctament tots aquests aspectes també
és molt important, ja que ens permetrà utilitzar el nostre ordinador de mane-
ra més eficient. L'ordre kill ens permet enviar senyals als processos que ens
interessin.
Ordre ps
Per exemple, ps -edaf mostraun conjunt d'informació sobretots els processos en execució ien diferents estats.
En general, tots els programes es dissenyen perquè puguin rebre aquest tipus
de senyals (fins i tot els scripts poden capturar els senyals). D'aquesta manera,
segons el tipus de senyal rebut saben que han de fer unes operacions o d'altres
(per exemple, suspendre l'execució quan un usuari fa un Ctrl-D). Per a veure
els tipus de senyals, consulteu man kill.�killall és una ordre per a fer el mateix,
però utilitza el nom del procés en lloc del PID, i skill és similar, però amb una
sintaxi diferent: per exemple, per a detenir totes les execucions d'un usuari
determinat, podríem utilitzar skill -STOP -u login, amb la qual cosa s'acabarà
l'execució dels processos d'aquest usuari. A més de Ctrl-D o Ctrl-C per a fina-
litzar un procés (la primera és amb espera fins que el procés acabi el seu E/S
i la segona és en el moment que la rep), amb Ctrl-Z podem interrompre un
programa i reviure'l amb fg.
Kill
Per exemple, amb el senyal TERM –que és 15– si fem kill -15 PID, que és equivalent afer Ctrl-C en un procés interactiu sobre un terminal, indiquem al procés que volem queacabi, de manera que en rebre el senyal haurà de desar tot el necessari i acabar l'execució;si el programa no està preparat per a rebre aquest tipus de senyal, podem utilitzar la -9(que obeixen tots els processos) i acabar independentment del que estiguin fent amb kill-9 PID.
Nota
Ordres per a processos:• kill -9 <pid>• skill -STOP -u <login>• ps -edaf• top• pstree• nice [-n increment] <ordre>
GNUFDL • PID_00167522 23 Nivell d'usuari
L'ordre pstree permet veure aquesta jerarquia de manera gràfica, i veurem que
el pare de tots els processos s'anomena init, ja que és el procés inicial per a
posar en marxa els processos restants del sistema, i a partir d'aquest neixen tots
els altres, que al seu torn poden tenir més fills. Aquesta estructura és molt útil
per a identificar d'on vénen els processos (qui els ha posat en marxa) i per a
eliminar-ne un conjunt, ja que, en eliminar un procés pare, també s'eliminen
tots els seus fills.
Un paràmetre important dels processos és un valor anomenat prioritat, que està
relacionat amb la CPU que rebrà aquest procés (com més prioritat més temps
de CPU). El rang de prioritats va des del -20 fins al 19 (les negatives només
les pot utilitzar el root), de major a menor. Per a llançar un procés amb una
prioritat determinada, podem utilitzar l'ordre nice i renice, si volem donar
una prioritat diferent d'un procés que ja estigui en execució. Per defecte, la
prioritat amb què s'executen els programes és la 0. L'ordre time permet calcular
el temps que utilitza un procés per a executar-se (generalment amb finalitats
comptables, per exemple si hem de facturar pel temps de CPU que gasta un
procés).
2.8. Ordres complementàries
Totes les ordres disposen en GNU/Linux (i en tots els *nix) d'un manual com-
plet que indica tots els paràmetres i opcions (man�ordre), i s'utilitza l'ordre less
per a visualitzar-les, i per això podem anar endavant i enrere amb les tecles
d'avançar i retrocedir pàgina, buscar una paraula amb el caràcter "/" seguit de
la paraula (n ens serveix per a buscar les aparicions següents i N, per a les an-
teriors), q per a sortir, etc. Els manuals del sistema es divideixen en diferents
seccions segons la seva naturalesa:
1) Programes executables (aplicacions, ordres, etc.).
2) Crides al sistema proporcionades per l'intèrpret d'ordres.
3) Crides a biblioteques del sistema.
4) Arxius especials (generalment els de dispositiu).
5) Format dels arxius de configuració.
6) Jocs.
7) Paquets de macros.
8) Ordres d'administració del sistema (generalment les que només el root pot
utilitzar).
9) Rutines del nucli.
Si hi ha més d'un manual disponible per a una mateixa paraula, el podem es-
pecificar indicant el número corresponent de la secció que ens interessa abans
de la paraula; per exemple, man 3 printf (man�-k�paraula buscarà entre les pà-
gines del manual les que tinguin la "paraula" passada com a argument, equiva-
lent a apropos, i mandb permetrà actualitzar la base de dades dels manuals).
Nota
Ordres complementàries:a) Manuals:• man <ordre>• man -k <paraula>b) Comprimir:• tar cvf <destinació> <ori-
gen>• tar zcvf <destinació> <ori-
gen>• gzip <file>• bzip <file>c) Espai de disc:• df -k• du -k <directori/file>d) Paràmetres de sistemad'arxius:• dumpe2fs <partició>
e) Sincronitzar sistemad'arxius:• sync
GNUFDL • PID_00167522 24 Nivell d'usuari
Si el manual no ens proporciona tota la informació que necessitem, podem
utilitzar la instrucció info, que és el mateix que el manual però amb informa-
ció estesa.
Una altra ordre útil és la utilitzada per a comprimir un arxiu, agrupar-ne di-
versos en un de sol o veure què conté un arxiu comprimit. Si bé hi ha desenes
de programes diferents en tots els sistemes GNU/Linux trobarem l'ordre tar.
Aquest programa ens permet manipular de qualsevol manera un o diversos ar-
xius per a comprimir-los, agrupar-los, etc. La seva sintaxi és tar�opcions�arxiu-
destinació�arxius-origen, en què si l'arxiu origen és una carpeta hi treballarà de
manera recursiva i desarà a l'arxiu de destinació el contingut de tota la carpeta.
Els paràmetres comuns són c per a crear i f si ho volem desar en un arxiu (tar cf
arxiu.tar o* empaquetarà tots els arxius del directori actual que comencin per
o). Si a més volguéssim comprimir, podríem utilitzar czf, i llavors s'utilitzaria
el programa gzip després d'empaquetar-los. Per a desempaquetar un arxiu de-
terminat, el paràmetre necessari és x, de manera que hauríem d'escriure tar xf
per a indicar l'arxiu empaquetat. Si estigués comprimit, hauríem de passar xzf.
El programa gzip (utilitzat pel tar per a comprimir) usa un format de compres-
sió propi i diferent del popular zip o del compress (estàndard en els *nix però
obsolet) i que es pot utilitzar per a comprimir un arxiu de manera independent
(gunzip per a fer el procés invers o gzip -u). Una altra aplicació de compressió
bastant utilitzada i que proporciona molt bons resultats és el bzip2.
La gestió i manipulació dels discos durs de l'ordinador és un altre aspecte fo-
namental en les tasques d'administració del sistema. Més endavant es veurà
tot un apartat per a discos, però ara tractarem les ordres útils per a obtenir
informació dels discos. El disc dur es divideix en particions, a les quals podem
accedir com si es tractés d'un dispositiu independent, i les denominarem uni-
tat. Això és molt útil perquè ens permet separar de manera adequada la infor-
mació que tinguem en el sistema, tenir més d'un sistema operatiu instal·lat al
mateix disc, etc. L'ordre df ens mostrarà, de cada unitat muntada en el sistema,
l'espai que s'ha utilitzat i el que queda lliure, i l'ordre du ens mostra realment
el que ens ocupa un fitxer en disc o un directori (ens ho mostrarà en blocs de
discos però amb el paràmetre -k en kilobytes).
Un disc és organitzat en pistes i dins de les pistes en sectors (zones on es desarà
la informació) i com aquest últim valor és configurable, quan es crea el sistema
d'arxius amb finalitats d'optimitzar les prestacions de disc o espai utilitzat ens
pot interessar veure aquests paràmetres (per a sistemes ext2/3/4), per la qual
cosa podem utilitzar l'ordre dumpe2fs�partició i esbrinar els paràmetres amb
els quals ha estat creat el disc.
Un altre concepte molt estès és la desfragmentació d'un disc, que no és més que
la reorganització dels blocs dels fitxers perquè quedin en llocs consecutius i
l'accés sigui més ràpid. En els sistemes de fitxers que utilitzem amb GNU/Linux
no és necessari desfragmentar els discos (encara que hi ha programes amb
GNUFDL • PID_00167522 25 Nivell d'usuari
aquesta finalitat), ja que el sistema s'encarrega automàticament de tenir el disc
sempre desfragmentat, i a més, en el procés d'arrencada sempre es comproven
els errors i es fa una desfragmentació total si és necessària.
L'optimització del sistema d'arxius de GNU/Linux prové del fet que totes les
funcions del nucli que s'encarreguen de la gestió de fitxers utilitzen uns mè-
todes per a agilitar els processos de lectura i escriptura. Un és la utilització
d'una memòria cau de disc per a evitar estar llegint constantment i escrivint al
disc físic (procés lent i costós). Això pot representar problemes si tenim un tall
d'alimentació, ja que les últimes operacions de lectura/escriptura no s'hauran
desat perquè són en memòria. El programa fsck comprova i arregla un sistema
de fitxers que hagi quedat en aquest estat. Encara que el podem executar quan
vulguem, el sistema operatiu mateix l'executa quan en el procés d'arrencada
detecta que el sistema no es va tancar adequadament. Per això, per a apagar
l'ordinador correctament hem d'executar l'ordre shutdown, que s'encarrega de
llançar tots els processos necessaris perquè els programes acabin, es desmunti
el sistema de fitxers, etc. En aquest sentit, el sistema de fitxers ext3/4, és més
eficaç que l'ext2, ja que el journaling li permet recuperar més informació dels
arxius perduts i de manera més eficient (la integritat física d'una partició es pot
comprovar amb l'ordre badblocks). Si bé no és aconsellable, es pot desactivar
la memòria cau de disc i si volem en algun moment bolcar de cau a disc, per
a evitar problemes podem executar l'ordre sync.
S'ha de tenir en compte que la majoria de les ordres esmentades s'han
d'executar com a root (o alguns dels usuaris que formin part del grup de root).
GNUFDL • PID_00167522 26 Nivell d'usuari
3. Instal·lació i arrencada de GNU/Linux (conceptesbàsics)
En aquest apartat veurem els passos essencials que se segueixen en la majoria
dels processos d'instal·lació de GNU/Linux, i que seran complementats poste-
riorment amb els tallers d'instal·lació. Si bé cada distribució té el seu entorn
d'instal·lació propi, en totes hi ha uns passos bàsics per a instal·lar el sistema
operatiu, i que es descriuran de manera resumida. És important notar que avui
dia qualsevol de les distribucions té una instal·lació molt optimitzada que ne-
cessita molt poca atenció de l'usuari, ja que obté informació del maquinari
subjacent, per la qual cosa, generalment, per a un usuari novell no és necessari
prendre decisions importants (distribucions com Ubuntu o Fedora, per exem-
ple, són instal·lacions pràcticament automàtiques).
També hem de tenir en compte que un usuari novell pot iniciar el seu camí
en el món Linux amb un altre tipus d'execucions de GNU/Linux que no mo-
difiquen l'ordinador i permeten treballar en el sistema operatiu sense haver-ne
d'instal·lar un altre. És altament recomanable iniciar els primers passos sobre
un GNU/Linux�live: l'usuari s'ha de baixar la imatge del sistema operatiu, cre-
ar-hi un CD o DVD i arrencar des d'aquest dispositiu sense tocar el disc dur de
la màquina. Aquest tipus de distribucions (és recomanable utilitzar Knoppix,
per la seva eficiència i versatilitat en les seves versions per a CD, DVD o USB)
tenen "l'inconvenient" que per a desar el treball de l'usuari s'ha de fer sobre un
dispositiu de disc USB, ja que si es desa sobre el sistema d'arxiu, com que és
a la RAM, es perdran les dades.
Una altra opció totalment recomanable com a introducció (o com a forma de
treball habitual) sense haver de tocar el sistema operatiu d'una màquina és
treballar amb màquines virtualitzades. Per a això, es recomana utilitzar Virtu-
alBox, que permet arrencar una imatge o instal·lar-ne una sobre un sistema
operatiu amfitrió (host); tant en 32 bits com en 64 bits és altament configurable
i si no volem fer una instal·lació es poden trobar gran quantitat de distribuci-
ons amb les seves imatges ja fetes, com per exemple a http://virtualboxes.org/
images/, que té aproximadament 30 distribucions de Linux i 15 distribucions
d'altres sistemes *nix o fins i tot d'Android o sistemes no *nix.
És important que abans d'instal·lar un nou sistema coneguem adequadament
els components maquinari que tenim instal·lats en el nostre ordinador per
a poder configurar-lo adequadament, encara que la distribució que utilitzem
incorpori detecció de maquinari. És possible que en un sol disc dur tinguem
instal·lats dos sistemes operatius (dualboot) o més totalment independents, i si
VirtualBox
VirtualBox que permet arren-car una imatge o instal·lar unSO sobre un altre SO amfi-trió (host) tant en 32 bits comen 64. Si no volem fer unainstal·lació des de 0 es pot tro-bar una gran quantitat de dis-tribucions amb les seves imat-ges ja fetes com per exem-ple en http://virtualboxes.org/images/.
GNUFDL • PID_00167522 27 Nivell d'usuari
bé el procés d'instal·lació d'un altre sistema operatiu al mateix disc no hauria
d'interferir amb les particions dels altres, és aconsellable fer còpies de seguretat
de tots els documents importants.
És necessari, abans de començar, tenir informació de la marca i el model de la
targeta gràfica, la de so, la de xarxa, la marca, el tipus i les característiques del
monitor, i també qualsevol altre maquinari especial que tinguem (la resta del
maquinari serà detectat pel sistema: placa base, la CPU i la memòria RAM).
Generalment, totes les distribucions de GNU/Linux proporcionen algun
tipus de mitjà per a l'arrencada del procés d'instal·lació, i el més comú
és un CD o DVD d'arrencada, per la qual cosa és necessari configurar
la BIOS perquè pugui arrencar (boot) des de CD/DVD. Les instal·lacions
són autoguiades i és important parar atenció a la selecció de l'idioma i
del teclat per a evitar problemes des de l'inici (si bé es podrà configurar
posteriorment).
Per a usuaris ja avançats, hi ha alguna altra manera d'instal·lar GNU/
Linux que permet fer la instal·lació des de qualsevol mitjà: FTP, HTTP,
disc dur, NFS, USB, però és recomanable no utilitzar-les com a primera
experiència.
La partició del disc dur és una de les parts més crítiques de tot el procés, ja
que implica dividir el disc dur en diverses seccions que seran considerades in-
dependents. Si ja tenim un sistema operatiu instal·lat al nostre ordinador, el
disc estarà particionat en una o diverses particions, però si el disc és nou, tin-
drà una única partició. Per a instal·lar GNU/Linux hem de disposar, almenys,
d'una partició per a ús propi (si bé és possible instal·lar-lo sobre altres sistemes
d'arxius, no és recomanable aquesta opció per qüestions de rendiment i fia-
bilitat) i una altra de més petita per a una extensió de la memòria RAM de
l'ordinador, anomenada partició de swap (generalment del doble de la memòria
RAM instal·lada).
El procediment més comú per a reduir, crear o canviar la mida de les partici-
ons és utilitzar eines com les disponibles a Windows Vista, 7 (Administració
de discos o l'aplicació fips amb llicència GPL i per a sistemes FAT) o en qual-
sevol Linux live. Es pot usar gparted per a modificar la mida d'una partició ja
creada sense perdre'n el contingut (si bé es recomana fer còpies de seguretat
dels arxius més importants). El procediment recomanable és engegar amb una
Linux live i utilitzar la instrucció gparted, que és molt eficient i segur.
Com a primer pas és recomanable que GNU/Linux utilitzi dues particions al
disc dur (una per al sistema de fitxers i l'altra per a la swap). Si bé totes les
distribucions tenen un particionament guiat, es pot fer de manera manual
amb diferents utilitats (fdisk, cfdisk, diskDruid, etc.). La manera com GNU/Li-
nux identifica els discos és amb /dev/hdX per als discos IDE i /dev/sdX per als
MBR
La informació de particions i elprograma de càrrega d'un sis-tema operatiu es desen en unazona de dades reservada ano-menada MBR (master boot re-cord) sobre el primer disc.
GNUFDL • PID_00167522 28 Nivell d'usuari
SCSI i Serial ATA, en els quals X és una lletra, corresponent al disc al qual ens
vulguem referir: /dev/hda és el mestre del primer canal IDE, /dev/hdb el segon i
així successivament (o /dev/sda el primer disc SCSI o SATA i /dev/sdb el segon,
etc.). L'aplicació d'instal·lació ens farà una llista dels discos i haurem d'escollir
sobre quin volem fer la instal·lació.
Quan creem una partició podrem escollir entre primària o lògica. En un disc
dur podem tenir fins a 4 particions primàries i fins a 64 lògiques. Si no neces-
sitem més de 4 particions, podem elegir qualsevol dels dos tipus. Si en neces-
sitem més, haurem de tenir en compte que les lògiques se situen dins d'una
de primària (fins a un màxim de 16 per a cada una), de manera que no podem
tenir 4 particions primàries creades i després afegir-ne de lògiques. En aquest
cas, n'hauríem de crear 3 de primàries i fins a 16 lògiques en la quarta partició
primària.
Quan es crea una partició s'ha d'indicar quin sistema de fitxers utilitzarà (Li-
nux ext3, Linux ext4, Linux swap o un altre) i una vegada fetes les particions,
desarem la configuració i hem d'indicar al procés d'instal·lació on volem situ-
ar l'arrel del sistema de fitxers (root filesystem) i la swap del sistema, i a partir
d'aquest moment es podrà continuar amb la instal·lació.
Una part important de la instal·lació són els mòduls del nucli, que són parts
de programari especialitzades que treballen amb alguna part del maquinari o
del sistema. En les distribucions actuals simplement s'ha de seleccionar quin
dispositiu tenim (monitor, xarxa, so, gràfics) i la instal·lació carregarà pràcti-
cament tots els mòduls necessaris, encara que en la majoria hi ha processos
d'autodetecció, per la qual cosa no serà necessari seleccionar pràcticament res.
Si algun mòdul no s'inclou durant la instal·lació, és possible fer-ho després
amb ordres com insmod o modprobe (per a afegir un nou mòdul), lsmod (per
a fer una llista dels instal·lats), rmmod (per a eliminar-ne algun) i també mod-
probe (per a provar-ne algun i, si funciona correctament, incloure'l en el nu-
cli). Tots aquests mòduls són fitxers binaris que solem trobar en el directori
/lib/modules/versió-del-sistema-operatiu/.
Després de configurar els mòduls que s'inclouran en el nucli del sistema ope-
ratiu, haurem de configurar la xarxa (si tenim la targeta necessària). Encara
que en aquest document no entrarem en detall sobre xarxes, descriurem els
conceptes necessaris per a poder fer aquest pas de manera bàsica. La primera
dada que sol·licitarà la instal·lació és el nom del sistema (per a referir-nos-hi
de manera amigable) i a continuació demanarà si a la nostra xarxa utilitzem
un mecanisme anomenat DHCP (consisteix a tenir un servidor especial que
s'encarrega d'assignar automàticament les IP als ordinadors que engeguen).
Si utilitzem aquest mecanisme, ho hem d'indicar, i si no, ens preguntarà la
IP (quatre nombres entre 0 i 255 separats per punts) i la màscara del nostre
ordinador (quatre nombres entre 0 i 255, i és comú utilitzar 255.255.0.0). Si
no coneixem aquestes dades, ens hem de dirigir a l'administrador de la nostra
Partició activa
De totes les particions d'undisc dur en podem elegir unaperquè sigui l'activa. Aquest in-dicador serveix per a indicara la BIOS o a l'EFI del sistema(sistema d'inicialització i càrre-ga del sistema operatiu) quinaés la partició que ha d'iniciar sien l'MBR no troba cap progra-ma d'arrencada.
GNUFDL • PID_00167522 29 Nivell d'usuari
xarxa. Seguidament haurem d'introduir l'IP de la passarel·la de la nostra xarxa
(dispositiu o ordinador que actua de pont entre la nostra xarxa local i Internet;
si no tenim cap dispositiu d'aquest tipus, podem deixar en blanc aquest camp).
A continuació, hem d'especificar el servidor (o servidors) de noms que utilit-
zem, anomenat DNS, que és una màquina que ens proporciona l'equivalència
entre un nom i una adreça IP (és a dir, ens permetrà conèixer per exemple la
IP de www.uoc.es de manera transparent). Si no sabem quins són, haurem de
recórrer a l'administrador de la xarxa.
Si som en una xarxa local podem consultar l'administrador perquè ens pro-
porcioni tota la informació necessària o, si tenim un altre sistema operatiu
instal·lat a l'ordinador, en podrem obtenir aquesta informació, però en cap cas
no hem d'inventar aquests valors, ja que si l'ordinador està connectat a una
xarxa local pot generar problemes a altres ordinadors.
Una vegada configurats aquests aspectes, haurem de seleccionar si volem
instal·lar un petit programa al disc dur perquè en el procés d'arrencada de
l'ordinador puguem elegir quin sistema operatiu dels que tenim instal·lats vo-
lem arrencar (fins i tot si només hem instal·lat GNU/Linux). Les aplicacions
més usuals són el lilo (Linux loader) o el grub (recomanat) (GNU, grand unifi-
ed bootloader), que tenen per objectiu iniciar el procés de càrrega i execució
del nucli del sistema operatiu que li indiquem interactivament o per defecte
després d'un temps d'espera. Totes les distribucions (si no hi ha problemes)
detecten si tenim algun altre sistema operatiu instal·lat en el disc dur i confi-
guren automàticament el sistema d'arrencada. Aquest programa generalment
s'instal·la en l'MBR del disc mestre del primer canal IDE o SCSI, que és el pri-
mer lloc que la BIOS o EFI de l'ordinador inspecciona buscant un programa
d'aquestes característiques.
L'últim pas de la instal·lació és la selecció de paquets per instal·lar a més dels
estrictament necessaris per al funcionament bàsic del sistema operatiu. La ma-
joria dels processos d'instal·lació inclouen dues maneres de seleccionar els pro-
grames del sistema: bàsic o expert. Amb el procés de selecció bàsic, s'agrupen
els paquets disponibles per a grans grups de programes: administració, desen-
volupament de programari, ofimàtica, matemàtiques, etc.; és una opció reco-
manable per a fer els primers passos. Si no seleccionem un paquet després
es podrà fer una instal·lació posterior amb l'eina de la qual disposen totes
les distribucions per a instal·lar o desinstal·lar paquets. Debian GNU/Linux
va ser una de les primeres a incloure aplicacions per a gestionar els paquets;
s'anomena apt i és molt útil per a fer el manteniment i actualització de tots
els paquets instal·lats fins i tot en el sistema operatiu mateix.
Si la instal·lació no ha funcionat correctament, pot passar que no puguem ar-
rencar cap dels sistemes operatius instal·lats (ni el nou ni l'anterior), però to-
tes les distribucions tenen un mode de rescat en l'arrencada (rescue mode), que
ens permetrà arrencar el sistema GNU/Linux des del CD/DVD, accedir al disc
Adreça IP
Una adreça IP és la identifica-ció d'un ordinador dins d'unaxarxa quan utilitzem el proto-col TCP/IP (protocol utilitzaten Internet).
GNUFDL • PID_00167522 30 Nivell d'usuari
dur i arreglar aquelles coses que no han funcionat o recuperar el sistema ope-
ratiu inicial, si bé per a alguns casos són necessaris una sèrie de coneixements
avançats en funció de quina hagi estat la causa d'error.
GNUFDL • PID_00167522 31 Nivell d'usuari
4. Configuracions bàsiques
4.1. El sistema d'entrada
Tant en mode gràfic com en mode text, el procediment d'identificació
i entrada es denomina connexió (login). Generalment, el sistema arren-
carà en mode gràfic, però podem passar a mode text seleccionant el tipus
de sessió al plafó d'entrada o amb Ctrl-Alt-Esborrar (que acaba l'execució
del servidor gràfic).
En mode text es llancen 5 terminals independents, als quals es pot accedir
mitjançant Alt-F1, Alt-F2, etc., que permetran treballar simultàniament amb
diferents comptes alhora. El procés de connexió posa en pantalla, primer, un
missatge que es pot modificar des de l'arxiu /etc/issue i que admet diferents
variables (\d, data actual, \s, nom del SO, \t, hora actual, etc.) i en segon lloc el
missatge del dia des de /etc/motd (creant un fitxer buit anomenat .hushlogin en
el nostre directori d'usuari s'anul·la aquest missatge). A continuació el procés
de connexió llança l'intèrpret per defecte per a l'usuari (indicat en l'últim camp
a /etc/passwd).
L'intèrpret d'ordres executa l'arxiu .profile del directori de l'usuari per a les op-
cions per defecte d'aquest mateix usuari, que es complementa amb /etc/pro-
file, que configura opcions per defecte per a tots els usuaris. Cada intèrpret
a més té arxius de configuració propis, com per exemple el shell Bash, que
executa, a més, dos fitxers més anomenats .bashprofile (que s'executa en cada
connexió) i .bashrc (que s'executa cada vegada que s'obre un nou terminal).
Veurem algunes de les instruccions que podem trobar en aquests arxius:
# ~/.profile: executat per l'intèrpret a l'entrada
# No serà llegit per bash si hi ha ~/.bash_profile o ~/.bash_login
# Vegeu-ne exemples a /usr/share/doc/bash/examples/startup-files
# El valor per defecte d'umask
umask 022
# Si està executant bash executa .bashrc si hi és
if [ -n "$BASH_VERSION" ]; then
if [ -f "$HOME/.bashrc" ]; then
. "$HOME/.bashrc"
fi
GNUFDL • PID_00167522 32 Nivell d'usuari
fi
# Inclou en PATH un directori bin de l'usuari
if [ -d "$HOME/bin" ] ; then
PATH="$HOME/bin:$PATH"
fi
# Canvia l'indicador (prompt)
export PS1='\h:\w\$ '
# ~/.bashrc: executat per bash(1) per a terminals no d'entrada.
# Si no s'executa interactivament no fa res.
[ -z "$PS1" ] && return
# Habilita el suport de color per a l'ordre ls
if [ -x /usr/bin/dircolors ]; then
eval "`dircolors -b`"
alias ls='ls --color=auto'
alias dir='dir --color=auto'
fi
# altres àlies
alias ll='ls -l'
# habilita programmable completion features
if [ -f /etc/bash_completion ]; then
. /etc/bash_completion
fi
Com es pot observar en aquests fitxers (que són un exemple de shell script i que
veurem més endavant), s'inclouen diferents definicions de variables (PATH,
per exemple, que és la variable on es buscaran els programes per a executar-
los sense haver d'incloure tot el camí; PS1, que és la variable que emmagat-
zema l'indicador –prompt–, que és el caràcter que surt a l'esquerra de la línia
d'ordres acabat en $ o % per a l'usuari normal i en # per al root). També tenim
àlies d'ordres o execució condicional d'altres arxius (en el primer si s'està exe-
cutant el bash executa el $HOME/.bashrc). Si es volen executar programes del
directori des del qual estem situats sense necessitat de posar ". /" al principi,
podríem afegir aquesta entrada en la declaració del PATH, però generalment
no s'inclou, ja que pot representar un forat de seguretat. Per al prompt hem
utilitzat l'ordre export per a definir les anomenades variables d'entorn, que es
mantenen durant tota la sessió i es poden consultar amb la mateixa ordre.
Amb set i unset també podem inicialitzar o treure altres variables o atributs
representats per defecte (amb echo�$variable podrem consultar el valor de
cada variable). Algunes de Bash són:
PWD: directori actual.
GNUFDL • PID_00167522 33 Nivell d'usuari
LOGNAME: nom de l'usuari connectat.
BASH_VERSION: versió del Bash que utilitzem.
SHELL: intèrpret d'ordres utilitzat.
RANDOM: genera un nombre aleatori diferent cada vegada que en mostrem
el contingut.
SECONDS: nombre de segons que han passat des que hem obert l'intèrpret
d'ordres.
HOSTNAME: nom del sistema.
OSTYPE: tipus de sistema operatiu que estem utilitzant.
MACHTYPE: arquitectura de l'ordinador.
HOME: directori personal de l'usuari.
HISTFILESIZE: mida de l'arxiu d'història (nombre d'ordres que es desen).
HISTCMD: número d'ordre actual en la història.
HISTFILE: fitxer en el qual es desa la història d'ordres.
La configuració addicional de la connexió gràfica es farà per mitjà de l'entorn
gràfic i dependrà del tipus d'entorn.
4.2. L'intèrpret d'ordres (shell)
Com ja hem avançat, el terme genèric shell s'utilitza per a denominar un pro-
grama que serveix d'interfície entre l'usuari i el nucli del sistema GNU/Linux.
En aquest apartat veurem algunes característiques bàsiques dels intèrpretsin-
teractius de text, que és el programa que veurà l'usuari (i l'atendrà) una vegada
fet el procediment de connexió.
L'intèrpretés el que els usuaris veuen del sistema, ja que la resta del sistema
operatiu roman ocult als seus ulls. L'intèrpret està escrit de la mateixa manera
que un procés (programa) d'usuari; no està integrat en el nucliis'executa com
un programa més de l'usuari.
Quan el sistema GNU/Linux arrenca, sol presentar als usuaris una interfície
d'entrada que pot ser gràfica o en mode text. Aquestes diferents entrades de-
pendran dels modes (o nivells) d'arrencada del sistema (runlevels), que perme-
tran configurar els modes d'arrencada del sistema operatiu.
La figura següent mostra l'arrencada shell en mode text i els processos de sis-
tema involucrats (OKe).
GNUFDL • PID_00167522 34 Nivell d'usuari
En el mode d'arrencada gràfica, la interfície està composta per algun gestor
d'accés que administra el procés de connexióde l'usuari des d'una pantalla
(caràtula) gràfica, en la qual se sol·licita la informació d'entrada corresponent:
el seu identificador com a usuari i la seva paraula de pas (contrasenya). En
GNU/Linux solen ser habituals els gestors d'accés: xdm (propi d'X Window),
gdm (Gnome) i kdm (KDE), i també algun altre associat a diferents gestors de
finestres (window managers) com mostra la figura següent:
Una vegada validat l'accés, l'usuari trobarà una interfície gràfica d'X Window
amb algun gestor de finestres, com Gnome o KDE (vegeu l'últim punt del capí-
tol). Des del mode gràfic també és possible "interactuar" amb el sistema per
mitjà d'un entorn de treball en mode text simplement obrint un emulador de
terminal o simplement terminal (p. ex., Xterm) des dels menús de la interfície
gràfica (en Gnome: Aplicacions → Accessoris → Terminal).
Si l'accés és en mode text (anomenat també modeconsola), una vegada identi-
ficats obtindrem l'accés a l'intèrpret de manera interactiva (es pot passar del
mode gràfic al text amb Crtl+Alt+F1 a F5, que permetrà tenir 5 consoles dife-
rents i tornar-hi amb Crtl+Alt+F7). Un altre mode de treball amb un intèrpret
interactiu és per mitjà d'una connexió remota des d'una altra màquina con-
nectada en xarxa i amb aplicacions com ara Telnet o rlogin (poc utilitzades per
insegures), ssh, o gràfiques com els emuladors X Window.
Una vegada iniciat l'intèrpret interactiu [Qui01], es mostra un indicador
d'ordres(símbol o seqüència de caràcters com $, %, # –utilitzat generalment
per a identificar l'usuari arrel o root– o també quelcom configurable per l'usuari
com MySys) que indica a l'usuari que pot introduir una línia d'ordres.
Després de la introducció, l'intèrpret assumeix la responsabilitat de validar la
sintaxi i posar els processos necessaris en execució, mitjançant una sèrie de
seqüències o fases:
1) Llegir i interpretar la línia d'ordres.
GNUFDL • PID_00167522 35 Nivell d'usuari
2) Avaluar els caràcters comodí com $ * ? o d'altres.
3) Gestionar les redireccions E/S necessàries, les canonades i els processos en
segon pla (background) necessaris (&).
4) Manejar senyals.
5) Preparar l'execució dels programes.
Normalment, les línies d'ordres podran ser execucions d'ordres del sistema,
ordres pròpies de l'intèrpret interactiu, l'engegada d'aplicacions o shell scripts
(seqüències d'ordres, variables, sentències de control, etc., que generalment es
troben en un arxiu ASCII).
Els fitxers de script són directament executables pel sistema sota el nom que
s'hagi donat al fitxer. Per a executar-los, s'invoca l'intèrpret juntament amb el
nom del fitxer, o bé es donen permisos d'execució al shell script.
En certa manera, podem veure el shell script com a codi d'un llenguat-
ge interpretat que s'executa sobre l'intèrpret interactiu corresponent. Per a
l'administrador, els shell scripts són molt importants bàsicament per dues ra-
ons:
1) La configuració del sistema i de la majoria dels serveis proporcionats es fan
mitjançant eines en formade shell scripts.
2) La manera principal d'automatitzar processos d'administració és mitjançant
la creació de shell scripts per part de l'administrador.
La figura següent mostra el flux de control bàsic d'un intèrpret d'ordres:
GNUFDL • PID_00167522 36 Nivell d'usuari
Tots els programes invocats mitjançant un intèrpret posseeixen tres fitxers pre-
definits, especificats pels descriptors de fitxers corresponents (file handles). Per
defecte, aquests fitxers són:
1)� standard� input� (entrada estàndard): normalment assignada al teclat del
terminal (consola); usa el descriptor número 0 (en UNIX els fitxers utilitzen
descriptors sencers).
2)�standard�output (sortida estàndard): normalment assignada a la pantalla
del terminal; usa el descriptor 1.
GNUFDL • PID_00167522 37 Nivell d'usuari
3)�standard�error (sortida estàndard d'errors): normalment assignada a la pan-
talla del terminal; utilitza el descriptor 2.
Això ens indica que qualsevol programa executat des de l'intèrpret tindrà per
defecte l'entrada associada al teclat del terminal, la seva sortida cap a la pan-
talla i, en el cas de produir-se errors, també els envia a la pantalla.
A més, els intèrprets poden proporcionar tres mecanismes següents de gestió
de l'E/S:
1)�Redirecció:�atès que els sistemes UNIX tracten de la mateixa manera els dis-
positius d'E/S i els fitxers, l'intèrpretels tracta a tots simplement com a fitxers.
Des del punt de vista de l'usuari, es poden reassignar els descriptors dels fitxers
perquè els fluxos de dades d'un descriptor vagin a qualsevol altre descriptor;
això s'anomena redirecció. Per exemple, ens referirem a la redirecció dels des-
criptors 0 o 1 com a la redirecció de l'E/S estàndard. Per a això s'utilitzen els
símbols > >> < <<; per exemple ls > dir.txt redirecciona la sortida de la instruc-
ció ls a un fitxer anomenat dir.txt, que si existeix s'esborra i desa la sortida de
l'ordre, i si no, es crea i es desa la sortida. Si fos ls >> dir.txt la sortida s'afegeix
al final si el fitxer existeix.
2)�Canonades�(pipes): la sortida estàndard d'un programa es pot usar com a
entrada estàndard d'un altre per mitjà de canonades. Diversos programes po-
den ser connectats entre si mitjançant canonades per a formar el que es deno-
mina un pipeline. Per exemple ls | sort | more, en què la sortida de la instrucció
ls s'ordena (sort) i la sortida d'aquest es mostra per pantalla en forma paginada.
3)�Concurrència�de�programes�d'usuari: els usuaris poden executar diversos
programes simultàniament, tot indicant que l'execució es produirà en segon
terme (background), oposat al primer terme (o foreground), en què es té un con-
trol exclusiu de pantalla. Una altra utilització consisteix a permetre tasques
llargues en segon terme quan interactuem l'intèrpret amb altres programes en
primer terme. Per exemple, ls >dir.txt & s'executarà en segon termei permetrà a
l'usuari continuar interactuant amb l'intèrpretmentre l'ordre es va executant.
L'intèrpret d'ordres per defecte és el que s'indica en l'últim camp del fitxer
/etc/passwd per a l'usuari, i es pot esbrinar des de la línia d'ordres pel valor de
la variable d'entorn amb el següent:
echo $SHELL
Algunes consideracions comunes a tots els intèrprets d'ordres:
• Tots permeten l'escriptura de shell scripts, que després són interpretats exe-
cutant-los o bé pel nom (si el fitxer té permís d'execució) o bé passant-lo
com a paràmetre a la instrucció de l'intèrpret.
GNUFDL • PID_00167522 38 Nivell d'usuari
• Els usuaris del sistema tenen un intèrpret associat per defecte. Aquesta in-
formació es proporciona en crear els comptes dels usuaris. L'administrador
assigna un intèrpret a cada usuari, o si no s'assigna l'intèrpret per defecte
(Bash en GNU/Linux). Aquesta informació es desa en el fitxer /etc/passwd,
i es pot canviar amb l'ordre chsh;aquesta mateixa ordre amb l'opció -l ens
fa una llista els intèrprets disponibles en el sistema (o vegeu també /etc/
shells).
• Cada intèrpret és en realitat una instrucció executable, normalment pre-
sent en els directoris /bin en GNU/Linux (o /usr/bin).
• Es poden escriure shell scripts en qualsevol intèrpret, però ajustant-se a la
sintaxi de cadascun, que normalment és diferent (de vegades hi ha només
petites diferències). La sintaxi de les construccions, i també les ordres in-
ternes, estan documentats a la pàgina man de cada intèrpret (man bash,
per exemple).
• Cada intèrpret té alguns fitxers d'arrencada associats (fitxers
d'inicialització), i cada usuari els pot adaptar a les seves necessitats, inclo-
ent-hi codi, variables, rutes (path)...
• La potència en la programació es troba a combinar la sintaxi de cada intèr-
pret (de les seves construccions), amb les ordres internes de cada intèrpret,
i una sèrie d'ordres UNIX molt utilitzades en els scripts, com per exemple
cut, sort, cat, more, echo, grep, wc, awk, sed, mv, ls, cp...
• Si com a usuaris estem utilitzant un intèrpret determinat, res no ens im-
pedeix arrencar una còpia nova de l'intèrpret (anomenat subshell), tant si
és el mateix com un altre de diferent. Senzillament, l'invoquem pel nom
de l'executable, ja sigui sh, bash, csh o ksh. També quan executem un shell
script es llança un subshell amb l'intèrpret que correspongui per a executar
l'script demanat.
Atesa la importància dels shell scripts en les tasques d'administració d'un siste-
ma UNIX, en el capítol següent es veuran alguns detalls més sobre l'intèrpret
i exemples de sintaxi i de programació.
4.3. El sistema d'arrencada
Ja hem vist en el punt anterior la manera de configurar durant la instal·lació
de l'arrencada del sistema per mitjà d'un gestor com lilo o grub (recomanable).
Com ja sabem, a partir de la BIOS o EFI, l'ordinador llegeix l'MBR del primer
disc mestre i executa el gestor d'arrencada (si no es troba aquest programa,
s'inspecciona el sector d'arrencada de la partició activa del disc) encara que
recomanem instal·lar grub a l'MBR, que és el primer lloc que s'inspecciona.
GNUFDL • PID_00167522 39 Nivell d'usuari
El grub ens permet múltiples configuracions, permet tenir un petit intèrpret
d'ordres en arrencar l'ordinador, i accedir als arxius de les particions del disc
sense carregar cap sistema operatiu, etc. En aquest subapartat només veurem
algunes configuracions bàsiques, però si es necessiten opcions avançades es
pot consultar la documentació existent a http://www.gnu.org/software/grub/
manual/grub.html.
El grub es carrega en dues fases i durant el procediment d'instal·lació ja es car-
reguen dos fitxers corresponents a cada fase. Si volem instal·lar el grub perquè
no ens mostri cap menú per a seleccionar el sistema operatiu que volem car-
regar, només hem d'executar l'ordre grub i des de l'indicador, executar:
install (hd0, 0)/boot/grub/stage1 d (hd0) (hd0, 0)/boot/grub/stage2
Aquesta instrucció instal·la el grub en l'MBR del disc mestre i, com podem
observar, la manera com es refereixen els discos difereix de la de GNU/Linux
(o lilo). A hdX la X, en lloc de a, b ..., és 0, 1..., i per a les particions també es
comença amb el 0 per a la primera, per la qual cosa hda1 serà en grub (hd0, 0).
El paràmetre d�(hd0) indica que la primera fase del grub s'instal·larà en l'MBR
del primer disc. L'última opció especifica on se situa el fitxer per a la segona
fase de càrrega, que és executada per la primera (una altra manera de fer la
instal·lació del grub és amb l'ordre grub-install).
El pas de paràmetres al nucli Linux en el moment de l'arrencada és molt sim-
ple. Per exemple, passant single o 1 iniciaria el sistema en el runlevel 1, amb ro-
ot=/dev/hda3 especificarem l'arrel del sistema de fitxers, etc. Si bé es poden in-
troduir les ordres interactivament, durant l'arrencada és recomanable utilitzar
un arxiu de configuració com el següent (els comentaris comencen per " # "):
# Arxiu menu.lst en /boot/grub
# Especificació del sistema operatiu que es carrega per defecte
default 0
# Espera de 10 segons abans de carregar el sistema per defecte
timeout 10
# Configuració d'arrencada per a un sistema GNU/Linux
title Debian GNU/Linux
kernel (hd0, 0) /vmlinuz root=/dev/hda1
# Configuració d'arrencada per a un sistema Windows
title Windows
root (hd0, 2)
makeactive
GNUFDL • PID_00167522 40 Nivell d'usuari
Per a instal·lar grub amb aquest menú d'arrencada, hauríem d'executar la ma-
teixa instrucció que anteriorment, però afegint el paràmetre p (hd0, 0)/boot/
grub/menu.lst.
Normalment és la manera habitual de treballar, i per això només haurem
d'entrar a /boot/grub i modificar aquest arxiu. L'arxiu de configuració accepta
diversos paràmetres, a més dels esmentats, com els següents:
• Colors:
color cyan/blue white/blue
• passwd (per a evitar que es pugui editar l'arxiu durant l'arrencada):
password ['--md5'] passwd
• Càrrega�d'un�nucli�específic�amb�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
• Càrrega�d'un�nucli�específic�amb�initramfs�i�en�mode�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 càrrega d'un nucli (kernel) amb una imatge anomenada initrd fa referència
a un disc RAM (generat amb mkinitramfs), que es carrega en el moment de
l'arrencada per a accedir a diferents mòduls que s'annexaran al nucli. Aquest
tipus de configuració permet tenir un nucli general i agregar els dispositius en
el moment de la càrrega (mòduls), per la qual cosa podríem utilitzar el nucli en
diferents màquines i amb diferent maquinari només canviant la imatge dels
mòduls de l'initrd.
4.4. Accés a particions i dispositius
Els sistemes tipus Unix tracten tots els dispositius de l'ordinador com si fossin
arxius. Això permet total flexibilitat, ja que es poden aprofitar tots els meca-
nismes i les funcions que s'utilitzen amb fitxers per als dispositius. En el direc-
GNUFDL • PID_00167522 41 Nivell d'usuari
tori /dev es tenen tots els dispositius reconeguts pel sistema. Si el sistema no
reconeix adequadament un dispositiu o volem crear-ne un d'especial, es pot
utilitzar l'ordre mknod, però s'ha d'utilitzar amb compte, ja que l'ús incorrecte
podria danyar parts del sistema.
Per a les unitats d'emmagatzemament, el sistema proveeix instruccions com
mount i umount, que situen (munten) o desmunten tot el sistema d'arxius d'un
determinat dispositiu o unitat en un directori existent del sistema. La mane-
ra bàsica d'utilitzar l'ordre és mount�dispositiu�directori, en què el dispositiu
pot ser qualsevol del canal IDE o SCSI (/dev/hdXX, /dev/sdXX), la disquetera
(/dev/FDX), memòries USB, etc., i directori és la ubicació en la qual muntarem
l'estructura de fitxers del dispositiu, i si el sistema d'arxius no és el mateix amb
el qual estem treballant, s'haurà d'agregar el paràmetre -t filesystem, en què
filesystem és una sigla que es pot consultar a la pàgina del manual de mount.
És recomanable que el directori en el qual muntem aquests dispositius sigui
buit, ja que quan s'utilitza com a punt de muntatge no s'hi pot accedir. Per
a desmuntar un d'aquests dispositius, podem utilitzar umount�directori, en
què el directori ha de ser el punt de muntatge utilitzat. Si muntem dispositius
mòbils com CD o USB, és important no treure el dispositiu del suport, ja que
abans hem d'avisar al sistema perquè actualitzi la memòria cau del sistema de
fitxers del dispositiu (o actualitzar les taules internes en el cas que el dispositiu
solament sigui de lectura). Igualment, tampoc no podem desmuntar el dispo-
sitiu si algun usuari o aplicació està utilitzant algun dels arxius o directoris (en
intentar-ho, el sistema donaria un missatge d'error).
Per defecte, per a poder muntar i desmuntar sistemes d'arxiu, es necessiten
privilegis de superusuari, però es poden cedir aquests permisos a usuaris "ad-
ministradors" afegint una entrada en el fitxer /etc/sudoers, de manera que amb
l'ordre sudo mount ... l'usuari habilitat podrà fer tasques permeses només al root
(consulteu el manual de mount per a altres opcions en el treball amb dispo-
sitius i particions, com per exemple rw, suid, dev, exec, auto, nouser, async, que
són les considerades per defecte).
Tot el muntatge de particions i dispositius es pot fer durant la inicialització del
sistema operatiu per mitjà d'entrades en l'arxiu /etc/fstab. Un exemple típic
d'aquest arxiu és:
# /etc/fstab: static file system information.
#
# <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
GNUFDL • PID_00167522 42 Nivell d'usuari
Cada línia és un mount i els paràmetres són (en ordre): dispositiu per mun-
tar, on es munta, tipus de sistema d'arxius (auto perquè ho detecti automàtica-
ment), opcions de muntatge, especificació de si volem fer còpies de seguretat
(dump), i l'últim camp serveix per a indicar l'ordre de muntatge (0, indica que
l'ordre no és important). L'arrel del sistema d'arxius és el primer que s'ha de
muntar, i per això en aquest camp hi hauria d'haver un 1. Una entrada que
sempre veurem en aquest fitxer i que ens pot sorprendre és el directori /proc,
que té un significat especial. Realment, el que hi ha en aquest directori no són
fitxers, sinó el valor de moltes de les variables que utilitza el nucli del sistema,
que permetrà ajustar paràmetres del nucli com si es tractessin d'un arxiu.
És interessant consultar l'ordre autofs, que permet muntar automàticament
un sistema d'arxiu quan es detecta la inserció d'un dispositiu en el sistema.
4.5. Configuració de dispositius
És important, abans d'intentar configurar algun dispositiu, buscar-ne informa-
ció, i fins i tot abans de comprar-ne un, assegurar-se que disposa de controla-
dors compatibles amb la versió amb què pretenem treballar.
1)�Teclat
Si comencem pel teclat, és important que funcioni d'acord amb el mapa de
caràcters configurat en el procés d'instal·lació. Aquest mapa de caràcters es
troba a /etc/console/boottime.kmap.gz, i si canviem de teclat, només s'ha de
canviar aquest fitxer per l'adequat, que es troba a /usr/share/keymaps/ ordenat
per arquitectures d'ordinadors i països (d'aquests arxius es pot canviar alguna
de les seves entrades per a adaptar-les a les nostres necessitats). Es pot veure el
número que correspon a cada tecla executant com a root l'ordre showkey. Si no
volem reiniciar el sistema en canviar l'arxiu de configuració de teclat, podem
utilitzar l'ordre loadkeys;�dumpkeys ens mostra les que estan configurades
i consolechars permet carregar la lletra que volem per al terminal. Un altre
aspecte relacionat amb el teclat és el tema dels accents, les dièresis, que es
poden configurar a partir del fitxer /etc/inputrc (totes les directives possibles
d'aquest fitxer les tenim especificades al manual de readline). La que pot ser
més útil és la de convert-meta, que en desactivar-la (set convert-meta off) ens
permet utilitzar els accents i les dièresis.
Finalment, una altra configuració important (indirectament relacionada amb
el teclat) és la local, en què es pot configurar la zona geogràfica en la qual ens
trobem per a poder utilitzar tecles especials del teclat, veure les dates en el
format correcte, etc. Aquesta configuració és utilitzada per moltes de les bibli-
oteques del sistema, de manera que en moltes ordres i aplicacions s'utilitzarà
aquesta configuració per a adaptar algunes funcions de l'entorn local. Aquesta
configuració es troba a /etc/locale.gen i es poden utilitzar les ordres locale-gen
i locale, veure-les o actualitzar-les.
Nota
Una altra manera de recon-figurar el mapa de tecles i laconfiguració local en Debianés apt-reconfigure console-datai apt-reconfigure locales, respec-tivament.
GNUFDL • PID_00167522 43 Nivell d'usuari
2)�Targeta�de�xarxa�(Ethernet)
Per a configurar una nova targeta de xarxa (de tipus Ethernet), en primer lloc,
cal afegir el mòdul necessari perquè es reconegui adequadament. Si bé no és
necessari per a algunes targetes, ens hem d'assegurar (abans de comprar la
targeta) que tenim el controlador o mòdul necessari.
Amb l'ordre discover podem saber quin tipus de maquinari tenim i trobar el
mòdul corresponent. Si es vol deixar configurat perquè es carregui, s'haurà
d'incloure a /etc/modules (o també es pot utilitzar modprobe o insmode). Per
a configurar-la a /etc/network/interfaces, es podrà especificar (en Debian) la
configuració de les interfícies del sistema. Una interfície és un dispositiu (real
o lògic) relacionat amb la xarxa a partir del qual el sistema es podrà comunicar.
Un exemple podria ser:
# Interfície de loopback
auto lo
iface lo inet loopback
# NIC auto eth0
iface eth0 inet static
address 192.168.0.10
netmask 255.255.255.0
network 192.168.0.0 # opcional
broadcast 192.168.0.255 # opcional
gateway 192.168.0.1 # opcional
La primera entrada d'aquest arxiu és la interfície de loopback. Aquesta interfície
no es correspon amb cap targeta ni dispositiu real de l'ordinador i permet uti-
litzar els mecanismes de comunicació internament. La directiva auto, davant
del dispositiu, indica que es pot muntar automàticament quan el sistema ar-
renca. La directiva iface especifica el tipus de targeta i protocol que s'hi utilit-
zarà mitjançant la sintaxi iface dispositiu protocol configuració. Per a les targetes
Ethernet, el dispositiu serà ethX, en què la X serà un nombre, començant per
0, que indica el número de targeta instal·lada a l'ordinador. La família del pro-
tocol de comunicació utilitzat amb la targeta sol ser inet per al protocol IPv4
utilitzat a Internet i inet6 per a la nova versió d'IPv6, i en l'últim camp s'indica
com s'obté la configuració de xarxa de la targeta (la seva adreça IP, la xarxa
on es troba, la passarel·la que cal utilitzar, etc.), amb les possibilitats següents
(bàsiques):
• static: haurem de proveir address (adreça IP de la interfície), netmask (màs-
cara de l'adreça IP), gateway (adreça IP de la passarel·la que utilitzem per
a aquesta interfície).
GNUFDL • PID_00167522 44 Nivell d'usuari
• dhcp: per a configurar de manera remota la IP dels ordinadors d'una xarxa
local (dynamic host configuration protocol).
Per a manejar la configuració de xarxa tenim diferents ordres, com ifconfig
(visualitza i configura els dispositius), ifdown i ifup (per a apagar o encendre
la interfície) o route (que ens mostra la taula d'encaminament).
3)�Targeta�sense�fil�(Wi-Fi)
Per a configurar la xarxa sense fil (wireless LAN o Wi-Fi) haurem d'afegir al nu-
cli els mòduls necessaris o utilitzar els que ja estan compilats en el nucli ma-
teix. Se segueix la mateixa norma de nom de dispositius que per a les targetes
Ethernet, i en /etc/network/interfaces (en Debian) haurem d'afegir la configu-
ració necessària perquè s'assigni una IP com en l'exemple següent (considerem
que és el segon dispositiu, per la qual cosa 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
Els paràmetres subsegüents a iface els podrem trobar a la pàgina del manual de
l'ordre iwconfig, que és la que s'utilitza per a configurar els dispositius sense
fil.
4)�Targeta�de�so
Igual com en els casos anteriors, la targeta de so també necessita el mòdul del
nucli per a poder funcionar correctament. Amb l'aplicació discover, podem
descobrir quin mòdul és el que es correspon amb la nostra targeta o amb l'ordre
lspci�|�grep�audio. Per a instal·lar el mòdul, procedirem com amb la targeta
de xarxa amb insmod o modprobe, per a configurar-lo permanentment a /etc/
modules. Si bé amb el mòdul corresponent ja podrem utilitzar la targeta de
so adequadament, generalment també se sol instal·lar la infraestructura de so
ALSA (Advanced Linux Sound Architecture) inclosa per defecte en la majoria
de les distribucions.
5)�Impressora
GNUFDL • PID_00167522 45 Nivell d'usuari
En GNU/Linux la configuració d'impressores es pot fer de diferents mane-
res, si bé lpd (line printer daemon) va ser un dels primers programes de gestió
d'impressió, actualment n'hi ha d'altres més fàcils de configurar i gestionar.
Els més bàsics són:
• lpd: un dels primers dimonis d'impressió dels sistemes tipus Unix. La con-
figuració s'ha de fer manualment.
• lpr: la versió de BSD de l'lpd. És molt recomanable utilitzar algun tipus de
filtre automàtic com magicfilter o apsfilter per a configurar-lo.
• LPRng: aplicacions basades en lpr, amb l'avantatge que incorporen una
eina de configuració denominada lprngtool, que permet configurar-la de
manera gràfica i senzilla.
• gnulpr: la versió de GNU del sistema d'impressió lpr. També incorpora
eines gràfiques de configuració, gestió dels serveis, etc.
• CUPS� (recomanat): de Common UNIX Printing System, aquest conjunt
d'aplicacions és compatible amb les ordres d'lpr i també serveix per a xar-
xes Windows.
Normalment, totes aquestes ordres tenen els seus mètodes de configuració
propis, però utilitzen el fitxer /etc/printcap per a desar-la i utilitzen un dimo-
ni (procés que s'executa indefinidament) perquè el sistema d'impressió sigui
operatiu i fins i tot es pugui imprimir des d'altres ordinadors.
GNUFDL • PID_00167522 46 Nivell d'usuari
5. L'entorn gràfic
Els sistemes *nix utilitzen una arquitectura d'entorn gràfic anomenada X-Win-
dow, dissenyada en la dècada dels vuitanta, que és independent de la plata-
forma i serveix per a qualsevol tipus de *nix. X.Org és una implementació
de codi obert del sistema X-Window (que sorgeix com a bifurcació de pro-
jecte XFree86) i funciona en mode client/servidor, de manera que no podem
connectar gràficament un servidor remot o executar sobre un ordinador lo-
cal aplicacions gràfiques d'un ordinador remot. Avui dia es treballa juntament
amb una infraestructura de DRI (Direct Rendering Infrastructure), que permet
aprofitar els xips de processament de les targetes per a estalviar treball de vi-
sualització al client X-Window.
El sistema X-Window (basat en una biblioteca anomenada xlibs) proporcio-
na els mètodes per a crear les interfícies gràfiques d'usuaris (GUI), però no
n'implementa cap sinó que aquestes són proporcionades per jocs d'eines (to-
olkits), que són biblioteques generalment implementades amb xlibs i que pro-
porcionen un GUI particular. El gestor de finestres és un servidor especial de
X-Window, que s'encarrega de gestionar totes les finestres, els escriptoris, les
pantalles virtuals, etc. Òbviament, totes les aplicacions poden funcionar amb
qualsevol gestor de finestres, ja que aquest només s'encarrega de gestionar la
finestra on està ubicat el programa, i n'hi ha desenes (WMaker, sawmill, olvwm,
etc.), de manera que l'usuari pot elegir el que més li agradi.
Un altre tipus de programari molt relacionat amb X-Window és el que
s'encarrega de proporcionar un entorn integrat per a les aplicacions,
l'escriptori, les eines d'administració del sistema, etc. Els més populars actual-
ment són KDE (K Desktop Environment) i GNOME (GNU Network Object Mo-
del Environment). Tots dos proporcionen un joc d'eines particular, un entorn
d'escriptori amb moltes funcionalitats i configuracions diferents i una llista
d'aplicacions integrades, que com més va creix més, i són els més usats en totes
les distribucions GNU/Linux. A les figures següents podem veure en primer
lloc l'aspecte de KDE i en segon el GNOME (a http://www.xwinman.org/ es
poden veure diferents gestors de finestres i entorns):
GNUFDL • PID_00167522 47 Nivell d'usuari
Actualment, la majoria de les targetes gràfiques del mercat estan suportades
i molts fabricants ja donen suport per a GNU/Linux i proporcionen els seus
controladors propis (drivers).
Per a instal·lar X.Org al nostre ordinador, és necessari baixar els paquets que
contenen les eines bàsiques i el programari per al client i el servidor. General-
ment, aquests paquets se solen denominar xorg, xserver-xorg, etc., i porten im-
plícites diverses dependències de fonts i algunes utilitats bàsiques per al ma-
neig d'X-Window (es pot utilitzar en Debian apt-cache�search�Xorg per a veu-
re els servidors disponibles i apt-get�install�<Xorg.server> per a instal·lar-ne
un en particular). Una vegada instal·lats aquests paquets, hem de configurar
adequadament els dispositius de què disposem per a poder arrencar correcta-
ment el client i el servidor X-Window. En Debian podem utilitzar l'ordre dex-
conf, que utilitzarà la base de dades debconf per a generar l'arxiu de configu-
ració de l'entorn gràfic (normalment ubicat a /etc/X11/xorg.conf).
GNUFDL • PID_00167522 48 Nivell d'usuari
Per a provar la configuració podem executar startx i una vegada que tenim
la pantalla en mode gràfic, en podem canviar la resolució amb les tecles Ctrl-
Alt+ Ctrl-Alt o tornar als terminals de text amb Ctrl-Alt-F1-F5, i amb Ctrl-Alt-
F7 tornaríem a la gràfica. Amb Ctrl-Alt-Esborrar acabaríem la sessió gràfica i
tornaríem al terminal text.
GNUFDL • PID_00167522 49 Nivell d'usuari
Activitats
1. Analitzeu les ordres següents i els seus paràmetres principals:
passwd,�pwd,�cd,�ls,�chmod,�chown,�chgrp,�vi,�man,�cat,�cp,�date,�df,�du,�find,�mail,�mk-dir,�more,�page,�mv,�rm,�rmdir,�who,�w,�ps,�cal,�clear,�zip,�gzip,�compress,�uncompress,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. Instal·leu VirtualVox sobre un sistema operatiu amfitrió del qual disposeu i carregueu unaimatge ja configurada, tot verificant que el sistema funcioni (incloent-hi sistema gràfic, xarxa,accés a disc de l'amfitrió, etc.).
3. Repetiu el punt anterior instal·lant el sistema des dels CD o DVD enviats per la UOC.
GNUFDL • PID_00167523 Programació d'ordres combinades (shell scripts)
© 2010, FUOC. Es garanteix el permís per a copiar, distribuir i modificar aquest document segons els termes de la GNU FreeDocumentation License, Version 1.2 o qualsevol altra de posterior publicada per la Free Software Foundation, sense seccionsinvariants ni textos de la coberta anterior o posterior. Hi ha una còpia de la llicència en l'apartat "GNU Free DocumentationLicense" d'aquest document.
GNUFDL • PID_00167523 Programació d'ordres combinades (shell scripts)
Índex
Introducció.................................................................................................. 5
1. Introducció: l'intèrpret d'ordres.................................................... 7
1.1. Redireccions i pipes....................................................................... 9
1.2. Aspectes generales ....................................................................... 9
2. Elements bàsics d'un shell script.................................................... 11
2.1. Què és un shell script? ................................................................. 11
2.2. Variables i matrius (arrays) .......................................................... 12
2.3. Estructures condicionals ............................................................. 14
2.4. Els bucles ..................................................................................... 16
2.5. Funcions, select, case, arguments i altres qüestions .................... 17
2.6. Filtres: grep.................................................................................... 25
2.7. Filtres: Awk .................................................................................. 26
2.8. Exemples complementaris .......................................................... 29
Activitats...................................................................................................... 33
Bibliografia................................................................................................. 34
GNUFDL • PID_00167523 5 Programació d'ordres combinades (shell scripts)
Introducció
En aquest mòdul veurem la importància fonamental que té l'intèrpret d'ordres
o instruccions (shell) i sobretot analitzarem amb cert detall les seves possibili-
tats per a executar fitxers d'ordres seqüencials i escrits en text pla (ASCII), que
seran interpretats pel shell. Aquests fitxers, anomenats shell scripts, són l'eina
fonamental de qualsevol usuari avançat, i imprescindibles per a un adminis-
trador de sistemes *nix.
GNUFDL • PID_00167523 7 Programació d'ordres combinades (shell scripts)
1. Introducció: l'intèrpret d'ordres
L'intèrpret (shell) és una peça de programari que proporciona una in-
terfície per als usuaris en un sistema operatiu i que proveeix accés als
serveis del nucli. El seu nom anglès prové de l'embolcall extern d'alguns
mol·luscs, ja que és la part externa que protegeix el nucli.
Els intèrprets (o shells) es divideixen en dues categories: línia d'ordres i de grà-
fics, depenent de si la interacció es fa mitjançant una línia d'instruccions (CLI)
o en mode gràfic per mitjà d'una GUI. En qualsevol categoria l'objectiu princi-
pal de l'intèrpret és invocar o "llançar" un altre programa; tanmateix, solen te-
nir capacitats addicionals, com ara veure el contingut dels directoris, interpre-
tar ordres condicionals, treballar amb variables internes, gestionar interrupci-
ons, redirigir entrada/sortida, etc.
Si bé un intèrpret gràfic és agradable per a treballar i permet a usuaris sense
gaires coneixements exercir-se amb certa facilitat, els usuaris avançats prefe-
reixen els de mode text, ja que permeten una manera més ràpida i eficient de
treballar. Tot és relatiu, ja que en un servidor és probable que un usuari admi-
nistrador no utilitzi ni tan sols interfície gràfica, mentre que un usuari d'edició
de vídeo mai no treballarà en mode text. El principal atractiu del sistema *nix
és que també en mode gràfic es pot obrir un terminal i treballar en mode text
com si estigués en un intèrpret de text, o canviar interactivament del mode
gràfic i treballar en mode text (fins amb 5 terminals diferents) i després tornar
al mode gràfic amb una simple combinació de tecles. En aquest apartat ens
dedicarem a l'intèrpret en mode text i a les característiques avançades en la
programació de shell scripts.
Entre els intèrprets més populars (o històrics) en els sistemes *nix tenim:
• Bourne shell (sh).
• Almquist shell (ash) o la seva versió de Debian (dash).
• Bourne-Again shell (bash).
• Korn shell (ksh).
• Z shell (zsh).
• C shell (csh) o la versió Tenex C shell (tcsh).
El Bourne shell ha estat l'estàndard de facto en els sistemes *nix, ja que va ser
distribuït per Unix Version 7 el 1977, i Bourne-Again (Bash) és una versió mi-
llorada del primer escrita pel projecte GNU sota llicència GPL, la qual s'ha
transformat en l'estàndard dels sistemes GNU/Linux. Bash serà l'intèrpret que
analitzarem, ja que, a més de ser l'estàndard, és molt potent, té característi-
GNUFDL • PID_00167523 8 Programació d'ordres combinades (shell scripts)
ques avançades, recull les innovacions plantejades en altres intèrprets i per-
met executar sense modificacions (generalment) scripts fets per a qualsevol
intèrpret amb sintaxi compatible amb Bourne shell. L'ordre cat�/etc/shells ens
proporciona els intèrprets coneguts pel sistema Linux, independentment de
si estan instal·lats o no. L'intèrpret per defecte per a un usuari s'obtindrà de
l'últim camp de la línia corresponent a l'usuari del fitxer /etc/passwd i canviar
d'intèrpret simplement significa executar el nom de l'intèrpret sobre un ter-
minal actiu, per exemple:
RS@DebSyS:~$ echo $SHELL
/bin/bash
RS@DebSyS:~$ tcsh
DebSyS:~>
Una part important és el que es refereix als modes d'execució d'un intèr-
pret. S'anomena login interactiu o entrada interactiva quan prové de l'execució
d'una entrada, fet que implicarà que s'executaran els arxius /etc/profile, ~/
.bash_profile, ~/.bash_login o ~/.profile (la primera de les dues que existeixi i
es pugui llegir) i ~/.bash_logout quan acabem la sessió. Quan és de no-conne-
xió interactiu (s'executa un terminal nou) s'executarà ~/.bashrc, ja que un bash
interactiu té un conjunt d'opcions habilitades respecte a si no ho és (consulteu
el manual). Per a saber si l'intèrpret és interactiu, executeu echo�$- i ens haurà
de respondre himBH, en què i indica que sí que ho és.
Hi ha un conjunt d'ordres internes1 en l'intèrpret, és a dir, integrats amb el
codi d'intèrpret, que per a Bourne és:
:, ., break,�cd,�continue,�eval,�exec,�exit,�export,�getopts,�hash,�pwd,�rea-
donly,�return,�set,�shift,�test,�[,�times,�trap,�umask,�unset.
I a més el Bash inclou:
alias,�bind,�builtin,�command,�declare,�echo,�enable,�help,�let,�local,�lo-
gout,�printf,�read,�shopt,�type,�typeset,�ulimit,�unalias.
Quan el Bash executa un shell script, crea un procés fill que executa un altre
Bash, el qual llegeix les línies de l'arxiu (una línia per vegada), les interpreta
i executa com si vinguessin del teclat. El procés Bash pare espera mentre el
Bash fill executa l'script fins al final, en què el control torna al procés pare,
el qual torna a posar l'indicador o prompt novament. Una ordre d'intèrpret és
una cosa tan simple com touch�arxiu1�arxiu2�arxiu3; consisteix en l'ordre
seguida d'arguments, separats per espais, arxiu1 és el primer argument i així
successivament.
(1)Consulteu el manual per a unadescripció completa.
GNUFDL • PID_00167523 9 Programació d'ordres combinades (shell scripts)
1.1. Redireccions i pipes
Hi ha tres descriptors de fitxers: stdin, stdout i stderr (l'abreviatura std significa
'estàndard'), i en la majoria dels intèrprets (fins i tot en Bash) es pot redirigir
stdout i stderr (junts o separats) a un fitxer, stdout a stderr i viceversa, en què el
número 0 representa stdin, 1 stdout, i 2 stderr.
Per exemple, enviar stdout de l'ordre ls a un fitxer serà ls�-l�>�dir.txt, en què es
crearà un fitxer anomenat dir.txt, que contindrà el que es veuria a la pantalla
si s'executés ls -l
Per a enviar la sortida stderr d'un programa a un fitxer, escriurem grep�xx�yy
2�>�error.txt. Per a enviar l'stdout a l'stderr, farem grep�xx�yy�1�>�&�2 i a la
inversa simplement intercanviant l'1 per 2, és a dir, grep�xx�yy�2�>�&�1.
Si volem que l'execució d'una ordre no generi activitat per pantalla, la qual
cosa es denomina execució silenciosa, només hem de redirigir totes les seves
sortides a /dev/null; per exemple, pensant en una ordre del cron que volem
que esborri tots els arxius acabats en .mov del sistema: rm�-f�$(find�/�-name
"*.mov")�&�>�/dev/null. Però s'ha d'anar amb compte i estar molt segur, ja
que no tindrem cap sortida per pantalla.
Els pipes permeten utilitzar de manera simple tant la sortida d'una ordre com
l'entrada d'una altra; per exemple, ls�-l�|�set�-i�"s/[aeio]/u/g", en què s'executa
l'ordre ls, i la seva sortida, en comptes d'imprimir-se a la pantalla, s'envia (per
un tub o pipe) al programa set, que imprimeix la seva sortida corresponent. Per
exemple, per a buscar en el fitxer /etc/passwd totes les línies que acabin amb
false podríem fer cat�/etc/passwd�|�grep�false$, en què s'executa el cat, i la
seva sortida es passa al grep (el símbol $ al final de la paraula indica al grep
que és final de línia).
1.2. Aspectes generales
Si l'entrada no és un comentari, és a dir (deixant de banda els espais en
blanc i tabulador), la cadena no comença per #, l'intèrpret llegeix i el di-
videix en paraules i operadors, que es converteixen en ordres, operadors
i altres construccions. A partir d'aquest moment, es fan les expansions
i substitucions, les redireccions, i finalment, l'execució de les ordres.
En el Bash es podran tenir funcions, que són una agrupació d'ordres que es
poden invocar posteriorment. I quan s'invoca el nom de la funció d'intèrpret
(s'usa com un nom d'ordre simple), la llista d'ordres relacionades amb el nom
de la funció s'executarà tenint en compte que les funcions s'executen en el
context de l'intèrpret en curs, és a dir, no es crea cap procés nou per a això.
GNUFDL • PID_00167523 10 Programació d'ordres combinades (shell scripts)
Un paràmetre és una entitat que emmagatzema valors, que poden ser un nom,
un nombre o un valor especial. Una variable és un paràmetre que emmagat-
zema un nom i té atributs (1 o més o cap) i es creen amb la sentència declare i
es treuen amb unset; i si no els donem dóna valor, tenen assignada la cadena
nul·la.
Finalment, hi ha un conjunt d'expansions que fa l'intèrpret que es du a terme
en cada línia i que poden ser enumerades com: d'accent/cometes, paràmetres i
variables, substitució d'ordres, d'aritmètica, de separació de paraules i de noms
d'arxius.
GNUFDL • PID_00167523 11 Programació d'ordres combinades (shell scripts)
2. Elements bàsics d'un shell script
2.1. Què és un shell script?
Un shell script és simplement un arxiu (mysystem.sh per a nosaltres) que té el
contingut següent (hem numerat les línies per a referir-nos-hi com el cat -n
però no formen part de l'arxiu):
RS@debian:~$ cat -n mysys.sh
1 #!/bin/bash
2 clear; echo "Informació donada pel shell script mysys.sh."
3 echo "Hola, $USER"
4 echo
5 echo "La data és `date`, i aquesta setmana `date +"%V"`."
6 echo
7 echo "Usuaris connectats:"
8 w | cut -d " " -f 1 - | grep -v USER | sort -u
9 echo
10 echo "El sistema és `uname -s` i el processador és `uname -m`."
11 echo
12 echo "El sistema està engegat des de fa:"
13 uptime
14 echo
15 echo "Això és tot!"
Per a executar-lo podem fer bash�mysys.sh o bé canviar-li els atributs per a
fer-lo executable i executar-lo com una ordre (al final es mostra la sortida des-
prés de l'execució):
RS@debian:~$ chmod 744 mysys.sh
RS@debian:~$ ./mysys.sh
Informació donada pel shell script mysys.sh.
Hola, RS
La data és Sat Apr 17 07:04:36 EDT 2010, i aquesta setmana 15.
Usuaris connectats:
GNUFDL • PID_00167523 12 Programació d'ordres combinades (shell scripts)
RS
El sistema és Linux i el processador és i686.
El sistema està engegat des de fa:
07:04:36 up 1:45, 2 users, load average: 0.29, 0.10, 0.03
Això és tot!
L'script comença amb "#!", que és una línia especial per a indicar amb quin
intèrpret s'ha de llegir aquest script. La línia 2 és un exemple de dues ordres
(una esborra la pantalla i l'altra imprimeix el que hi ha a la dreta) en la mateixa
línia, i per això han d'estar separades per ";". El missatge s'imprimeix amb la
sentència echo (ordre interna) però també es podria haver utilitzat la sentència
printf (també ordre interna) per a una sortida amb format. Quant als aspectes
més interessants de la resta, la línia 3 mostra el valor d'una variable, la 5 forma
una cadena amb la sortida d'una ordre (reemplaçament de valors), la 8 executa
la seqüència de 4 ordres amb paràmetres encadenats per pipes�"|" i la 10 (similar
a la 5) també reemplaça valors d'ordres per a formar una cadena de caràcters
abans d'imprimir-se per pantalla.
Per a depurar un shell script podem executar l'script amb bash�-x�mysys.sh o
incloure en la primera línia -x:�#�/bin/bash�-x.
També es pot depurar una secció de codi incloent-hi:
set -x # activa depuració des d'aquí
codi per depurar
set +x # per a la depuració
2.2. Variables i matrius (arrays)
Es poden usar variables però no hi ha tipus de dades. Una variable de Bash pot
contenir un nombre, un caràcter o una cadena de caràcters; no es necessita
declarar una variable, ja que es crearà només assignar-li un valor. També es pot
declarar amb declare i després assignar-li un valor:
#!/bin/bash
a="Hola UOC"
echo $a
declare b
echo $b
b="Com esteu?"
#!/bin/bash
Així evitem que si l'usuari té unaltre intèrpret, l'execució donierrors de sintaxi, és a dir, ga-rantim que aquest script sem-pre s'executarà amb bash.
GNUFDL • PID_00167523 13 Programació d'ordres combinades (shell scripts)
echo $B
Com es pot veure, es crea una variable a i se li assigna un valor (per a delimi-
tar-lo s'ha de posar entre " ") i es recupera el VALOR d'aquesta variable posant-li
un $ al principi, i si no se li posa $, només imprimirà el nom de la variable,
no el valor. Per exemple, per a fer un script que faci una còpia (backup) d'un
directori, incloent-hi la data i hora, en el moment de fer-ho, en el nom de
l'arxiu (intenteu fer això tan fàcil sobre un sistema W i només amb el SO i
acabareu frustrats):
#!/bin/bash
OF=/home/$USER-$(date +%d%m%Y).tgz
tar -cZf $OF /home/$USER
Aquest script introdueix una cosa nova, ja que estem creant una variable
i assignem un valor (resultat de l'execució d'una ordre en el moment de
l'execució). Fixeu-vos en l'expressió $(date +%d%m%Y), que es posa entre () per
a capturar-ne el valor. USER és una variable d'entorn i només es reemplaçarà
pel seu valor. Si volguéssim agregar (concatenar) a la variable USER, per exem-
ple, una cadena més, hauríem de delimitar la variable amb {}. Per exemple:
RS@debian:~$OF=/home/${USER}uppi-$(date +%d%m%Y).tgz
RS@debian:~$ echo $OF
/home/RSuppi-17042010.tgz
Així, el nom del fitxer serà diferent cada dia. És interessant veure el reemplaça-
ment d'ordres que fa el Bash amb els parèntesis; per exemple, echo $(ls).
Les variable locals es poden declarar anteposant local, i això en delimita
l'àmbit.
#!/bin/bash
HOLA=Hola
function uni {
local HOLA=UOC
echo -n $HOLA
}
echo -n $HOLA
uni
echo $HOLA
La sortida serà HolaUOCHola, en què hem definit una funció amb una variable
local que recupera el seu valor quan s'acaba d'executar la funció.
GNUFDL • PID_00167523 14 Programació d'ordres combinades (shell scripts)
Les variables les podem declarar com a ARRAY[INDEXNR]=valor, en què IN-
DEXNR és un nombre positiu (començant des de 0) i també podem declarar
una matriu com declare�-a�ARRAYNAME, i es poden fer assignacions múlti-
ples amb: 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. Estructures condicionals
Les estructures condicionals ens permeten decidir si es fa una acció o no;
aquesta decisió es pren avaluant una expressió.
• La més bàsica és: if expressió� then sentència, en què sentència només
s'executa si expressió s'avalua com a verdadera. 2 < 1 és una expressió que
s'avalua falsa, mentre que 2 > 1 s'avalua verdadera.
• Els condicionals tenen altres formes, com ara: if expressió�then sentència1
else sentència2. Aquí sentència1 s'executa si expressió és verdadera. D'altra
manera, s'executa sentència2.
• Una altra forma més de condicional és: if expressió1� then sentència1�el-
se�if expressió2�then sentència2�else sentència3. En aquesta forma només
s'afegeix else if expressió2 then sentència2, que fa que sentència2 s'executi si
expressió2 s'avalua verdadera. La sintaxi és:
if [expressió];
then
codi si 'expressió' és verdadera.
fi
GNUFDL • PID_00167523 15 Programació d'ordres combinades (shell scripts)
Un exemple en el qual el codi que s'executarà si l'expressió entre claudàtors és
verdadera es troba entre la paraula then i la paraula fi, que indica el final del
codi executat condicionalment:
#!/bin/bash
if [ "pirulo" = "pirulo" ]; then
echo expressió avaluada com a verdadera
fi
Un altre exemple amb variables i comparació per igualtat i per diferència (=
o !=):
#!/bin/bash
T1="pirulo"
T2="pirulon"
if [ "$T1" = "$T2" ]; then
echo expressió avaluada com a verdadera
else
echo expressió avaluada com a falsa
fi
if [ "$T1" != "$T2" ]; then
echo expressió avaluada com a verdadera
else
echo expressió avaluada com a falsa
fi
Un exemple d'expressió de comprovació si hi ha un fitxer (cal vigilar amb els
espais després de [ i abans de ]):
FILE=~/.basrc
if [ -f $FILE ]; then
echo el fitxer $FILE existeix
else
echo fitxer no trobat
fi
if [ 'test -f $FILE' ]
echo Una altra manera d'expressió per a saber si existeix o no
fi
Hi ha versions curtes d'if, com per exemple:
GNUFDL • PID_00167523 16 Programació d'ordres combinades (shell scripts)
[ -z "${COLUMNS:-}" ] && COLUMNS=80
És la versió curta de:
if [ -z "${COLUMNS:-}" ]; then
COLUMNS=80
fi
2.4. Els bucles
El bucle for és diferent del d'altres llenguatges de programació, ja que permet
iterar sobre una sèrie de "paraules" contingudes dins d'una cadena. El bucle
while executa una secció de codi si l'expressió de control és verdadera, i només
es para quan és falsa (o es troba una interrupció explícita dins del codi en
execució). El bucle until és gairebé idèntic al bucle while, tret que el codi
s'executa mentre l'expressió de control s'avalua com a falsa. Vegem-ne uns
exemples i observem-ne la sintaxi:
#!/bin/bash
for i in $( ls ); do
echo element: $i
done
En la segona línia declarem i com la variable que rebrà els diferents valors
continguts a $( ls ), que seran els elements del directori obtingut en el moment
de l'execució. El bucle es repetirà (entre do i done) tantes vegades com elements
tingui la variable i en cada iteració la variable i adquirirà un valor diferent de
la llista.
Una altra sintaxi acceptada podrà ser:
#!/bin/bash
for i in `seq 1 10`;
do
echo $i
done
La sintaxi de while és:
#!/bin/bash
comptador=0
while [ $comptador -lt 10 ]; do
echo El comptador és $comptador
GNUFDL • PID_00167523 17 Programació d'ordres combinades (shell scripts)
let comptador=comptador+1
done
Com podem veure, a més de while hem introduït una compara-
ció en l'expressió per menor "-lt" i una operació numèrica amb let
comptador=comptador+1. La sintaxi d'until és equivalent:
#!/bin/bash
comptador=20
until [ $comptador -lt 10 ]; do
echo Comptador-Until $comptador
let comptador-=1
done
En aquest cas veiem l'equivalència de la sentència i a més una altra manera de
fer operacions sobre les mateixes variables amb "-=".
2.5. Funcions, select, case, arguments i altres qüestions
Les funcions són la manera més fàcil d'agrupar seccions de codi, que es podran
tornar a utilitzar. La sintaxi és function nom { codi }, i per a cridar-les només és
necessari que siguin dins del mateix arxiu i escriure el seu nom.
#!/bin/bash
function sortir {
exit
}
function hola {
echo Hola UOC!
}
hola
sortir
echo Mai no arribareu a aquesta línia
Com es pot veure tenim dues funcions, sortir i hola, que després s'executaran
(no és necessari declarar-les en un ordre específic) i com la funció sortir executa
un exit en l'intèrpret mai no arribarà a executar l'echo final. També podem
passar arguments a les funcions, que seran llegits per ordre (de la mateixa
manera com es llegeixen els arguments d'un script): $1 el primer, $2 el segon
i així successivament:
#!/bin/bash
function sortir {
exit
GNUFDL • PID_00167523 18 Programació d'ordres combinades (shell scripts)
}
function hola-amb-parametres {
echo $1
}
hola-amb-parametres Hola
hola-amb-parametres UOC
sortir
echo Mai no arribareu a aquesta línia
El select és per fer a opcions i llegir des de teclat:
#!/bin/bash
OPCIONS="Sortir Opció1"
select opt in $OPCIONS; do
if [ "$opt" = "Sortir" ]; then
echo Sortir. Adéu.
exit
elif [ "$opt" = "Opció1" ]; then
echo Hola UOC
else
clear
echo opció no permesa
fi
done
El select permet fer menús en mode text i és equivalent a la sentència for,
només que itera sobre el valor de la variable indicada en el select. Un altre
aspecte important és la lectura d'arguments, com per exemple:
#!/bin/bash
if [ -z "$1" ]; then
echo ús: $0 directori
exit
fi
A=$1
B="/home/$USER"
C=backup-home-$(date +%d%m%Y).tgz
tar -cZf $A$B $C
Si el nombre d'arguments és 0, escriu el nom de l'ordre ($0) amb un missatge
d'ús. La resta és similar al que hem vist anteriorment excepte per al primer
argument ($1). Fixeu-vos amb atenció en l'ús de " i la substitució de variables.
GNUFDL • PID_00167523 19 Programació d'ordres combinades (shell scripts)
El case és una altra forma de selecció; mirem aquest exemple que ens alerta
en funció de l'espai de disc que tenim disponible:
#!/bin/bash
space=`df -h | awk '{print $5}' | grep % \
| grep -v Use | sort -n | tail -1 | cut -d "%" -f1 -`
case $space in
[1-6]*)
Message="tot bé."
;;
[7-8]*)
Message="Podríeu començar a esborrar alguna cosa en $space %"
;;
9[1-8])
Message="Uff. Millor un disc nou. Partició $space % fins a dalt."
;;
99)
Message="Pànic! No teniu espai en $space %!"
;;
*)
Message="No teniu res..."
;;
esac
echo $Message
A més de parar atenció a la sintaxi del case, podem mirar com s'escriu una
ordre en dues línies amb "\", el filtratge de seqüència amb diversos grep i | i
una ordre interessant (filtre) com awk (la millor ordre de tots els temps).
Moltes vegades, podeu voler sol·licitar a l'usuari alguna informació, i hi ha
diverses maneres per a fer-ho:
#!/bin/bash
echo Si us plau, escriviu el nom
read nom
echo "Hola, $nombre!"
Com a variant, es poden obtenir múltiples valors amb read:
#!/bin/bash
echo Si us plau, escriviu el nom i el primer cognom
read NO AP
GNUFDL • PID_00167523 20 Programació d'ordres combinades (shell scripts)
echo "Hola $AP, $NO!"
Si fem echo 10 +10 i esperàveu veure un 20 quedareu desil·lusionats; la forma
d'avaluació directa és amb echo�$((10+10)) o també echo�$[10+10] i si neces-
siteu operacions com fraccions o d'altres podeu utilitzar bc, ja que l'anterior
només serveix per a nombres enters. Per exemple, echo $[3/4] donarà 0, però
echo�3/4|bc�-l sí que funcionarà. També recordem l'ús del let; per exemple,
let�a=75*2 assignarà 150 a la variable a.
Un exemple més:
RS@debian:~$ echo $date
20042011
RS@debian:~$ echo $((date++))
20042011
RS@debian:~$ echo $date
20042012
És a dir, com a operadors podem utilitzar:
• VAR++ VAR-- variable postincrement i postdecrement.
• ++VAR --VAR com l'anterior però abans.
• + - operadors unaris.
• ! ~ negació lògica i negació en string.
• ** exponent.
• / + - % operacions.
• < < > > desplaçament a esquerra i dreta.
• < = >= < > comparació.
• == != igualtat i diferència.
• & ^ | operacions AND, OR exclusiu i OR.
• && || operacions AND i OR lògics.
• expr ? expr : expr avaluació condicional.
• = *= /= %= += -= < < = >>= &= ^= |= operacions implícites.
• , separador entre expressions.
Per a capturar la sortida d'una ordre, és a dir, el resultat de l'execució, podem
utilitzar el nom de l'ordre entre accents oberts ` `.
#!/bin/bash
A=`ls`
for b in $A ;
do
file $b
done
GNUFDL • PID_00167523 21 Programació d'ordres combinades (shell scripts)
Per a la comparació tenim les opcions següents:
• s1 = s2 verdader si s1 coincideix amb s2.
• s1 != s2 verdader si s1 no coincideix amb s2.
• s1 < s2 verdader si s1 és alfabèticament anterior a s2.
• s1 > s2 verdader si s1 és alfabèticament posterior a s2.
• -n s1 s1 no és nul (conté un o més caràcters).
• -z s1 s1 és nul.
Per exemple, cal anar amb compte perquè si S1 o S2 són buits, ens donarà un
error d'interpretació (parse):
#!/bin/bash
S1='cadena'
S2='Cadena'
if [ $S1!=$S2 ];
then
echo "S1('$S1') no és igual que S2('$S2')"
fi
if [ $S1=$S1 ];
then
echo "S1('$S1') és igual que S1('$S1')"
fi
Quant als operadors aritmètics i relacionals, podem utilitzar:
a) Operadors aritmètics:
• + (addició).
• - (sostracció).
• * (producte).
• / (divisió).
• % (mòdul).
b) Operadors relacionals:
• -lt (<).
• -gt (>).
• -li (< =).
• -ge (>=).
• -eq (==).
• -ne (!=).
GNUFDL • PID_00167523 22 Programació d'ordres combinades (shell scripts)
Fem un exemple de script que ens permetrà rebatejar fitxers S1 amb una sèrie
de paràmetres (prefix o sufixos) d'acord amb els arguments. La manera serà p
[prefix] fitxers, o si no, s [sufix] fitxers, o també r [patró-antic] [patró-nou] fitxers
(i com sempre diem, els scripts són millorables):
#!/bin/bash -x
# renom: reanomena múltiples arxius d'acord amb certes regles
# Basat en un original de F. Hudson. Gener de 2000
# comprova si vull reanomenar amb prefix i deixo només els noms
# d'arxius
if [ $1 = p ]; then
prefix=$2 ; shift ; shift
# si no hi ha entrades d'arxius acabo.
if [ "$1" = '' ]; then
echo "no s'han especificat arxius"
exit 0
fi
# Interacció per a reanomenar
for arxiu in $*
do
mv ${arxiu} $prefix$arxiu
done
exit 0
fi
# comprova si vull reanomenar amb prefix i deixo només els noms
# d'arxius
if [ $1 = s ]; then
sufix=$2 ; shift ; shift
if [ "$1" = '' ]; then
echo "no s'han especificat arxius"
exit 0
fi
for arxiu in $*
do
mv ${arxiu} $arxiu$sufix
done
exit 0
fi
# comprova si és una substitució de patrons
if [ $1 = r ]; then
shift
# s'ha inclòs això com a mesura de seguretat
if [ $# -lt 3 ] ; then
echo "ús: renom r [expressió] [substitut] arxius... "
exit 0
GNUFDL • PID_00167523 23 Programació d'ordres combinades (shell scripts)
fi
VELL=$1 ; NOU=$2 ; shift ; shift
for arxiu in $*
do
nou=`echo ${arxiu} | sed s/${VELL}/${NOU}/g`
mv ${arxiu} $nou
done
exit 0
fi
# si no mostro l'ajuda
echo "ús:"
echo " renom p [prefix] arxius..."
echo " renom s [sufix] arxius..."
echo " renom r [patró-antic] [patró-nou] arxius..."
exit 0
Cal parar una atenció especial a "", '', `` {}, etc, per exemple:
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 "el que se m'ocorre és: \"Estic cansat\""
el que se m'ocorre és: \"Estic cansat\"
RS@debian:~$ echo "\"
>
(espera més entrades: feu Ctrl-C)
remo@debian:~$ echo "\\"
\
RS@debian:~$ echo grand{et,ot,às}
grandet grandot grandàs
Una combinació d'entrada de teclat i operacions/expressions per a calcular un
any de traspàs:
#!/bin/bash
clear;
echo "Entreu l'any que cal verificar (4 dígits), i després [ENTER]:"
GNUFDL • PID_00167523 24 Programació d'ordres combinades (shell scripts)
read year
if (( ("$year" % 400) == "0" )) || (( ("$year" % 4 == "0") \
&& ("$year" % 100 !="0") )); then
echo "$year és de traspàs."
else
echo "$year l'any no és de traspàs."
fi
Una ordre interessant que combina read amb delimitador en una expressió
(està posat tot en una línia i per això la sintaxi està separada per ;). El resultat
serà "interessant" (ens mostrarà totes les cadenes donades pel find en una línia
i sense /:
find "$PWD" -name "m*" | while read -d "/" file; do echo $file; done
Un aspecte interessant per a treballar amb string (vegeu el manual de Bash:
man bash) és ${VAR:OFFSET:LENGTH}.
RS@debian:~$ export str="unstring molt llarg"
RS@debian:~$ echo $str
unstring muy largo
RS@debian:~$ echo ${str:4}
ring molt llarg
RS@debian:~$ echo $str
unstring molt llarg
RS@debian:~$ echo ${str:9:3}
mol
RS@debian:~$ echo ${str%llarg}
unstring molt
La instrucció trap ens permetrà capturar un senyal (per exemple, de teclat)
dins d'un script.
#!/bin/bash
# Per a acabar feu des d'un altre terminal kill -9 pid
trap "echo ' Ja!'" SIGINT SIGTERM
echo "El pid és $$"
while : # això és el mateix que "while true".
do
sleep 10 # L'script no fa res.
done
GNUFDL • PID_00167523 25 Programació d'ordres combinades (shell scripts)
2.6. Filtres: grep
El grep és un filtre de patrons molt útil i versàtil; a continuació en podem veure
alguns exemples:
RS@debian:~$ grep root /etc/passwd busca patró root
root:x:0:0:root:/root:/bin/bash
RS@debian:~$ grep -n root /etc/passwd a més numera les línies
1:root:x:0:0:root:/root:/bin/bash
RS@debian:~$ grep -v bash /etc/passwd | grep -v nologin
mostra els que no tenen el patró i bash ni el patró 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 compta els que tenen false
7
RS@debian:~$ grep -i ps ~/.bash* | grep -v history
busca el patró ps en tots els arxius que comencen per .bash en el directori /home excloent-hi
els que tinguin history en l'arxiu
/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 l'inici de línia
root:x:0:0:root:/root:/bin/bash
RS@debian:~$ grep false$ /etc/passwd busca el final de línia
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 començant per c i acabant per h amb
un màxim de tres.
GNUFDL • PID_00167523 26 Programació d'ordres combinades (shell scripts)
catch
cinch
cinch's
....
RS@debian:~$ grep '\<c.*h\>' /usr/share/dict/words busca començant per c i acabant per h totes.
caddish
calabash
...
2.7. Filtres: Awk
Awk, o també la implementació de GNU gawk, és una ordre que accepta un
llenguatge de programació dissenyat per a processar dades basades en text, ja
siguin fitxers o fluxos de dades, i ha estat la inspiració de Larry Wall per a
escriure Perl. La seva sintaxi més comuna és awk�'programa'�arxius... i pro-
grama pot ser: patró�{acció}�patró�{acció}... awk llegeix l'entrada d'arxius una
línia alhora. Cada línia es compara amb cada patró en ordre; per a cada patró
que concordi amb la línia s'efectua l'acció corresponent. Un exemple pregunta
pel primer camp si és root de cada línia de l'arxiu /etc/passwd i la imprimeix
considerant com a separador de camps el ":" amb -F:; en el segon exemple re-
emplaça el primer camp per root i imprimeix el resultat canviat.
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
L'awk divideix automàticament l'entrada de línies en camps, és a dir, una ca-
dena de caràcters que no siguin blancs separats per blancs o tabuladors; per
exemple, el who té 5 camps i awk ens permetrà filtrar cada un d'aquests camps.
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_00167523 27 Programació d'ordres combinades (shell scripts)
16:46
L'awk anomena aquests camps $1 $2... $NF, en què NF és una variable igual
que el nombre de camps (en aquest cas NF = 5). Per exemple:
ls -al | awk '{print NR, $0} Agrega nombre d'entrades (la variable NR compta el nombre de línies,
$0 és la línia sencera.
awk '{printf "%4d %s\n", NR, $0}' significa un nombre decimal (NR) un string ($0) i un new line
awk -F: '$2 == "" ' /etc/passwd donarà els usuaris que en l'arxiu passwd no tinguin posada la
contrasenya
El patró es pot escriure de diverses maneres:
$2 == "" si el segon camp és buit
$2 ~ /^$/ si el segon camp coincideix amb la cadena buida
$2 !~ /./ si el segon camp no concorda amb cap caràcter (! és negació)
length($2) == si la longitud del segon camp és 0, length és una funció interna de l'awk
~ indica coincidència amb una expressió
!~ significa el contrari (sense coincidència)
NF % 2 != 0 mostra la ratlla només si hi ha un nombre parell de camps
awk 'lenght ($0) 32 {print "Línia", NR, "llarga", substr($0,1,30)} ' /etc/passwd avalua las
línies de /etc/passwd i genera un substring</i>
Hi ha dos patrons especials, BEGIN i END. Les accions BEGIN es fan abans que
la primera línia s'hagi llegit; es pot usar per a inicialitzar les variables, imprimir
encapçalaments o posicionar separadors d'un camp assignant-los a la variable
FS, per exemple:
awk 'BEGIN {FS = ":"} $2 == "" ' /etc/passwd igual que l'exemple d'abans
awk 'END { print NR } ' /etc/passwd imprimeix el nombre de línies processades al final de la
lectura de l'última ratlla.
L'awk permet operacions numèriques en forma de columnes, per exemple, per
a sumar tots els nombres de la primera columna:
{ s=s + 1} END { print s} i per a la suma i la mitjana END { print s, s/NR}
Les variables s'inicialitzen a zero en declarar-se, i es declaren en utilitzar-se,
per la qual cosa resulta molt simple (els operadors són els mateixos que a C):
{ s+=1} END {print s} Per exemple, per a comptar línies, paraules i caràcters:
GNUFDL • PID_00167523 28 Programació d'ordres combinades (shell scripts)
{ nc += length($0) +1 nw +=NF } END {print NR, nw, nc}
Hi ha variables predefinides en l'awk:
• FILENAME nom de l'arxiu actual.
• FS caràcter delimitador del camp.
• NF nombre de camps del registre d'entrada.
• NR número del registre de l'entrada.
• OFMT format de sortida per a nombres (%g per defecte).
• OFS cadena separadora de camp a la sortida (blanc per defecte).
• ORS cadena separadora de registre de sortida (new line per defecte).
• RS cadena separadora de registre d'entrada (new line per defecte).
Operadors (ídem C):
= += -= *= /= %= || && ! >> >>= << <<= == != ~ !~
+ - * / %
++ --
Funcions predefinides a awk:
cos(), exp(), getline(), index(), int(), length(), log(), sin(), split(), sprintf(), subs-
tr().
A més suporta dins d'acció sentències de control amb la sintaxi similar a C:
if (condició)
proposició1
else
proposició2
for (exp1;condició;exp2)
while (condició) {
proposició
expr2
}
continue continua, avalua la condició novament
break trenca la condició
next llegeix la línia d'entrada següent
exit salta a END
També l'awk maneja arranjaments, per exemple, per a fer un head de /etc/
passwd:
GNUFDL • PID_00167523 29 Programació d'ordres combinades (shell scripts)
awk '{ line[NR] = $0} \
END { for (i=NR; i>2; i--) print line[i]} ' /etc/passwd
Un altre exemple:
awk 'BEGIN { print "Usuari UID Shell\n------- --- -----" } $3 >= 500 { print $1, $3, $7 |
"sort -r"}' FS=":" /etc/passwd
Usuari 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. Exemples complementaris
1) Un exemple complet per a esborrar els registres (esborra /var/log/wtmp i
es queda amb 50 línies –o les que passi l'usuari en línia d'ordres– de /var/log/
messages)
#!/bin/bash
#Variables
LOG_DIR=/var/log
ROOT_UID=0 # només el pot executar el root
LINES=50 # Línies por defecte.
E_XCD=86 # No em puc canviar de directori
E_NOTROOT=87 # Sortida de no-root error.
if [ "$UID" -ne "$ROOT_UID" ] # Sóc root?
then
echo "Heu de ser root. Em sap greu."
GNUFDL • PID_00167523 30 Programació d'ordres combinades (shell scripts)
exit $E_NOTROOT
fi
if [ -n "$1" ] # Nombre de línies per preservar?
then
lines=$1
else
lines=$LINES # valor per defecte.
fi
cd $LOG_DIR
if [ `pwd` != "$LOG_DIR" ]
# també pot ser if [ "$PWD" != "$LOG_DIR" ]
then
echo "No puc anar a $LOG_DIR."
exit $E_XCD
fi #
# Una altra manera de fer-ho seria:
# cd /var/log || {
# echo "No puc !" >&2
# exit $E_XCD;
# }
tail -n $lines messages > mesg.temp # Deso temporalment
mv mesg.temp messages # Moc.
cat /dev/null > wtmp #Esborro wtmp.
echo "Registres esborrats."
exit 0
# Un zero indica que tot ha anat bé.
2) Utilització de l'expr.
#!/bin/bash
echo "Aritmètics"
echo
a=`expr 5 + 3`
echo "5 + 3 = $a"
a=`expr $a + 1`
echo
echo "a + 1 = $a"
echo "(increment)"
a=`expr 5 % 3`
# mòdul
GNUFDL • PID_00167523 31 Programació d'ordres combinades (shell scripts)
echo
echo "5 mod 3 = $a"
# Lògics
# 1 si true, 0 si false,
#+ oposat a normal Bash convention.
echo "Lògics"
x=24
y=25
b=`expr $x = $y` # per igual.
echo "b = $b" # 0 ( $x -ne $y )
a=3
b=`expr $a \> 10`
echo 'b=`expr $a \> 10`, per la qual cosa...'
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
# Compte amb els operadors d'escapada \.
b=`expr $a \<= 3`
echo "If a <= 3, b = 1 (true)"
echo "b = $b" # 1 ( 3 -le 3 )
# S'utilitza 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: posició del primer caràcter que satisfà en la cadena
#
b=`expr index $a 23`
echo "Posició numèrica del \"2\" en \"$a\" és \"$b\"."
# substr: extract substring, starting position & length specified
b=`expr substr $a 2 6`
echo "Substring de \"$a\", començant a 2,\
i de 6 chars és \"$b\"."
# Using Regular Expressions ...
b=`expr match "$a" '[0-9]*'` # comptador numèric.
echo Nombre de dígits de \"$a\" és $b.
b=`expr match "$a" '\([0-9]*\)'` # compte amb els caràcters d'escapada
echo "Els dígits de \"$a\" són \"$b\"."
exit 0
GNUFDL • PID_00167523 33 Programació d'ordres combinades (shell scripts)
Activitats
1. Creeu un script interactiu que calculi el nombre de dies entre dues dates introduïdes perl'usuari segons el format dia/mes/any. També haureu de calcular el nombre d'hores si l'usuariintrodueix hora d'inici i hora de final, en el format hh:mm. Si introdueix només una hora,es calcularà fins a les 23:59 del dia donat com a final del període per calcular.
2. Creeu un script que es faci una còpia (recursiva) dels arxius a /etc, de manera que unadministrador del sistema pugui modificar els arxius d'inici sense temor.
3. Escriviu un script anomenat homebackup que automatitzi el tar amb les opcions correctes ien el directori /var/backups per a fer una còpia de seguretat del directori principal de l'usuariamb les condicions següents:
a) Fer un test del nombre d'arguments. L'script s'ha d'executar sense arguments, i si n'hi ha,ha d'imprimir un missatge d'ús.b) Determinar si el directori de còpies de seguretat té suficient espai lliure per a emmagatze-mar la còpia de seguretat.c) Preguntar a l'usuari si vol una còpia completa (tot) o una còpia incremental (només elsarxius que hagin canviat). Si l'usuari no té una còpia de seguretat completa, s'haurà de fer, i encas d'una còpia de seguretat incremental, només es pot fer si la còpia de seguretat completano té més d'una setmana.d) Comprimir la còpia de seguretat utilitzant qualsevol eina de compressió.e) Informar a l'usuari que es farà en cada moment, ja que això pot trigar algun temps i aixís'evitarà que l'usuari es posi nerviós si la sortida no apareix a la pantalla.f) Imprimir un missatge que informi l'usuari sobre la mida de la còpia de seguretat sensecomprimir i comprimida, el nombre d'arxius desats o actualitzats i el nombre de directorisdesats o actualitzats.
4. Escriviu un script que executi un navegador web simple (en mode text), utilitzant wget ilinks�-dump per a mostrar les pàgines HTML en un terminal.
L'usuari té 3 opcions: introduir una adreça URL, entrar b per a retrocedir (back) i q per a sortir.Les 10 últimes URL introduïdes per l'usuari s'emmagatzemen en una matriu, des d'on l'usuaripot restaurar l'URL utilitzant la funcionalitat b (back).
GNUFDL • PID_00167523 34 Programació d'ordres combinades (shell scripts)
Bibliografia
És recomanable complementar la lectura en què s'ha basat part d'aquesta documentació,sobretot per a aspectes avançats, ja que aquí només s'ha vist un breu resum de l'essencial:
Barnett, Bruce. AWK. General Electric Company.http://www.grymoire.com/Unix/Awk.html
"Big Admin: Script Examples".http://www.sun.com/bigadmin/scripts/filter.jsp
[Coo] Cooper, Mendel. "Advanced Bash-Scripting Guide".http://tldp.org/LDP/abs/html/index.html
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
[Bas] Mike, G. "Programación en BASH - COMO de introducción".http://es.tldp.org/COMO-INSFLUG/COMOs/Bash-Prog-Intro-COMO/
Robbins, Arnold. UNIX in a Nutshell (3a. 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
GNUFDL • PID_00167524 Migració i coexistència amb sistemes no Linux
© 2010, FUOC. Es garanteix el permís per a copiar, distribuir i modificar aquest document segons els termes de la GNU FreeDocumentation License, Version 1.2 o qualsevol altra de posterior publicada per la Free Software Foundation, sense seccionsinvariants ni textos de la coberta anterior o posterior. Hi ha una còpia de la llicència en l'apartat "GNU Free DocumentationLicense" d'aquest document.
GNUFDL • PID_00167524 Migració i coexistència amb sistemes no Linux
Índex
Introducció.................................................................................................. 5
1. Sistemes informàtics: ambients..................................................... 7
2. Serveis en GNU/Linux....................................................................... 11
3. Tipologies d'ús..................................................................................... 14
4. Migrar o coexistir.............................................................................. 17
4.1. Identificar requisits de serveis .................................................... 19
4.2. Procés de migració ...................................................................... 20
4.2.1. Estacions de treball ........................................................ 21
4.2.2. Màquines clients d'escriptori ......................................... 22
5. Taller de migració: anàlisi de casos d'estudi.............................. 26
5.1. Migració individual d'un usuari d'escriptori Windows a un
sistema GNU/Linux ..................................................................... 26
5.2. Migració d'una petita organització que disposa de sistemes
Windows i alguns UNIX ............................................................. 29
5.3. Migració d'un servidor Windows a un servidor Samba en
GNU/Linux .................................................................................. 32
Activitats...................................................................................................... 39
Bibliografia................................................................................................. 40
GNUFDL • PID_00167524 5 Migració i coexistència amb sistemes no Linux
Introducció
Una vegada feta una primera aproximació als sistemes GNU/Linux, el pas
següent és integrar-los a l'entorn de treball com a sistemes de producció. Se-
gons el sistema actual que estigui en ús, podem plantejar, o bé una migració
total a sistemes GNU/Linux, o bé una coexistència mitjançant serveis compa-
tibles.
La migració a l'entorn GNU/Linux es pot fer de manera progressiva,
substituint serveis parcialment, o bé substituint tots els serveis de l'antic
sistema pels equivalents GNU/Linux.
En els entorns distribuïts actuals, el paradigma més present és el de client-ser-
vidor. Qualsevol tasca en el sistema global és gestionada per un o més servi-
dors dedicats, i les aplicacions, o els usuaris directament, accedeixen als serveis
prestats.
Pel que fa a l'ambient de treball, ja sigui en el cas més simple, com l'usuari
individual, o bé en un de complex, com un entorn empresarial, en cada en-
torn es necessitarà un conjunt de serveis que haurem de seleccionar, i adaptar
després les màquines clients i servidors, perquè puguin accedir-hi o proporci-
onar-los els seus serveis.
Els serveis poden englobar molts aspectes diferents. N'hi sol haver de diversos
tipus, ja sigui per a compartir recursos o informació. Són habituals servidors
d'arxius, d'impressió, de Web, de noms, correu, etc.
L'administrador, normalment, seleccionarà un conjunt de serveis que hauran
de ser presents en l'ambient de treball, depenent de les necessitats dels usuaris
finals o de l'organització, i haurà de configurar el suport adequat a la infra-
estructura, en forma de servidors que suportin la càrrega de treball esperada
(tant càrrega interna, com càrrega de l'exterior, si n'hi ha).
GNUFDL • PID_00167524 7 Migració i coexistència amb sistemes no Linux
1. Sistemes informàtics: ambients
En el procés d'algunes instal·lacions de distribucions de GNU/Linux, ens po-
dem trobar sovint que ens pregunten pel tipus d'ambient, o per les tasques a les
quals estarà dedicat el nostre sistema. Això permet moltes vegades escollir un
subconjunt de programari que s'instal·larà per defecte, per ser el més adequat
a la funció prevista. És habitual que ens preguntin si el sistema es destinarà a:
a)�Estació�de�treball�(workstation): aquest tipus de sistema incorpora algunes
aplicacions particulars, que seran les més usades. El sistema, bàsicament, es
dedica a l'execució d'aquestes aplicacions i a un petit conjunt de serveis de
xarxa.
b)�Servidor: s'integren la majoria de serveis de xarxa o, en tot cas, algun de
particular, el qual serà el servei principal del sistema.
c)�Estació�dedicada�a�càlcul: aplicacions intensives en càlcul, renderitzadors,
aplicacions científiques, gràfics DAO (CAD, en anglès), etc.
d)�Estació�gràfica: escriptori amb aplicacions que necessiten interacció amb
l'usuari en forma gràfica.
Usualment, podem compondre el nostre sistema GNU/Linux a partir d'una o
més d'aquestes possibilitats.
Més en general, si haguéssim de separar els ambients de treball [Mor03]
en els quals es pot utilitzar un sistema GNU/Linux, podríem identificar
tres tipus principals d'ambient: estació de treball (workstation), servidor
i escriptori (desktop).
També es podria incloure un altre tipus de sistemes, els que anomenaríem
genèricament dispositius incrustats (embedded), o bé sistemes mòbils de petites
dimensions, com per exemple un PDA, un telèfon mòbil intel·ligent (smartp-
hone), una videoconsola portàtil, etc. GNU/Linux ofereix, així mateix, suport
per a aquests dispositius, amb nuclis reduïts i personalitzats específics.
Exemple
Funcions
Els sistemes GNU/Linux es po-den dedicar a funcions de ser-vidor, a estació de treball o aescriptori.
Destaquem, per exemple, un treball inicial fet per la firma Sharp en els seus
models Zaurus, un PDA amb Linux d'altes prestacions (diversos models van es-
tar disponibles en la dècada dels noranta i la primeria del 2000). O també altres
iniciatives Linux de tipus incrustat com els TPV (terminals de punt de venda).
O videoconsoles com la GP2X. També és especialment destacable l'evolució al
Nota
Característiques i història de laplataforma Android a:http://en.wikipedia.org/wiki/Android_(operating_system)http://www.android.com
GNUFDL • PID_00167524 8 Migració i coexistència amb sistemes no Linux
mercat dels smartphones de la plataforma Android de Google Inc., basada en la
màquina virtual Java sobre un nucli Linux modificat, i també altres platafor-
mes mòbils, com Nokia Maemo i Intel Moblin.
Pel que fa als tres principals ambients, vegem com es desenvolupa cada un
d'aquests sistemes informàtics en un entorn GNU/Linux:
1) Un sistema de tipus estació�de�treball sol ser una màquina d'alt rendiment,
utilitzada per a una tasca específica en lloc d'un conjunt general de tasques.
L'estació de treball, clàssicament, era composta d'una màquina d'altes pres-
tacions amb maquinari específic adequat a la tasca que calia desenvolupar.
Se solia tractar d'una màquina Sun Sparc, IBM Risc o Silicon Graphics (entre
d'altres) amb les seves variants de UNIX de propietat. Aquestes màquines d'alt
cost s'orientaven a un segment clar d'aplicacions, ja fos el disseny gràfic 3D
(el cas de Silicon o Sun) o bases de dades (IBM o Sun). Avui dia, molts dels
PC actuals tenen un rendiment comparable a aquests sistemes (encara que no
igual), i la frontera entre un d'aquests sistemes i un PC ja no és tan clara, grà-
cies a l'existència de GNU/Linux com a alternativa a les versions de UNIX de
propietat. Es pot destacar que molts d'aquests fabricants (Sun, IBM, Silicon)
estan oferint GNU/Linux com a opció d'operatiu per als seus sistemes actuals
de gamma alta, normalment mitjançant convenis amb distribuïdors Linux co-
mercials, com Red Hat o Novell SUSE.
2) Un sistema de tipus servidor té un objectiu concret, que és oferir serveis a
altres màquines de la xarxa: ofereix característiques o una funcionalitat clara
a la resta de màquines. En sistemes informàtics relativament petits (per exem-
ple, menys de 5-10 màquines) no hi sol haver un sistema exclusiu de servidor
(encara que acostumen a ser comuns els d'arxius i impressió), i sol estar com-
partit amb altres funcionalitats, per exemple també com a màquina de tipus
escriptori. En sistemes mitjans (unes quantes desenes de màquines), hi sol ha-
ver una o més màquines dedicades a actuar de servidor, ja sigui la màquina
exclusiva que centra tots els serveis (correu, Web, etc.) o un parell de màquines
dedicades a repartir-se els serveis principals.
En sistemes grans (un centenar o més de màquines, fins i tot milers), per la
capacitat de càrrega pot ser necessari que hi hagi un bon grup de servidors,
cada un dedicat normalment a algun servei en exclusiva, o fins i tot es pot
dedicar un conjunt de màquines exclusivament a un servei. És més, si aquests
serveis es proporcionen –cap a dins o cap a fora de l'organització– mitjançant
accés per clients directes o obert a Internet, depenent de la capacitat de càrrega
que hàgim de suportar haurem de recórrer a solucions de tipus SMP (màquines
amb diversos processadors interconnectats a la mateixa màquina) o de tipus
clústers d'alta disponibilitat (agrupació de màquines que es distribueixen la
càrrega d'un determinat servei).
GNUFDL • PID_00167524 9 Migració i coexistència amb sistemes no Linux
Els serveis que podem necessitar de manera interna (o externa), es podrien
englobar (entre d'altres) dins d'aquestes categories de serveis:
a)�Aplicacions: el servidor disposa d'execució d'aplicacions i com a clients
només n'observem l'execució i hi interactuem. Pot englobar, per exemple, ser-
veis de terminals i execució d'aplicacions en Web.
b)�Fitxers: ens proporciona un espai comú i accessible des de qualsevol punt
de la xarxa on podem emmagatzemar i recuperar els nostres fitxers.
c)�Base�de�dades: se centralitzen dades que es consultaran o les produiran les
aplicacions del sistema en xarxa (o bé altres serveis).
d)�Impressió: es disposa de conjunts d'impressores, en els quals es gestionen
les seves cues i els treballs que s'hi enviïn des de qualsevol punt de la xarxa.
e)�Correu�electrònic: s'ofereixen serveis per a rebre, enviar o reexpedir correu
procedent o destinat tant a l'interior com a l'exterior.
f)�Web: servidor (o servidors) propis de l'organització, d'utilització interna o
externa per als clients.
g)�Informació�de�xarxa: en organitzacions grans és imprescindible poder lo-
calitzar els serveis oferts, recursos compartits o els usuaris mateixos. Es neces-
siten serveis que permetin aquesta localització i la consulta de les propietats
de cada tipus d'objecte.
h)�Serveis�de�noms: es necessiten serveis que permetin anomenar i traduir els
diferents noms pels quals es coneix un mateix recurs.
i)�Serveis�d'accés�remot: en cas de no disposar d'accés directe, hem de disposar
de mètodes alternatius que ens permetin interaccionar des de l'exterior, que
ens deixin accedir al sistema que vulguem.
j)�Serveis�de�generació�de�noms: en l'anomenament de màquines, per exem-
ple, es pot donar una situació molt variable de nombre o que no siguin sempre
les mateixes. Hem de proporcionar mètodes per a identificar-les clarament.
k)�Serveis�d'accés�a�Internet: en moltes organitzacions no cal que hi hagi ac-
cessos directes, sinó accessos per mitjà de passarel·les (gateways) o per servidors
intermediaris (proxys).
l)�Serveis�de�filtratge: mesures de seguretat per a filtrar informació incorrecta
o que afecti la nostra seguretat, i protegir o limitar l'accés als recursos.
GNUFDL • PID_00167524 10 Migració i coexistència amb sistemes no Linux
3) Un sistema de tipus escriptori seria simplement una màquina que s'utilitza
per a les tasques informàtiques rutinàries, de tots els dies (per exemple, el PC
que tenim a casa o a l'oficina).
Exemple
Podríem definir les tasques següents com a comunes (s'inclouen alguns dels
programes GNU/Linux més utilitzats):
• Tasques�ofimàtiques. El programari clàssic d'un paquet ofimàtic: proces-
sador de text, full de càlcul, presentacions, alguna petita base de dades,
etc. Podem trobar paquets com l'OpenOffice (gratuït), l'StarOffice (de pa-
gament, produït per Sun), el KOffice (de KDE), o diversos programes com
el Gnumeric, l'AbiWord, que formarien un paquet per a Gnome (denomi-
nat GnomeOffice).
• Navegació� web. Navegadors com el Mozilla Firefox, el Konqueror,
l'Epiphany, etc.
• Suport� de�maquinari (dispositius USB, d'emmagatzemament, etc.). En
GNU/Linux estan suportats pels controladors adequats, normalment pro-
porcionats en el nucli, o bé per fabricants. També hi ha eines d'anàlisi
de maquinari nou, com Kudzu/HAL (Fedora/Red Hat) o discover (Debian).
Mitjans i entreteniment (gràfics, processament d'imatges, fotografia digi-
tal, jocs i més): en GNU/Linux hi ha una quantitat enorme d'aquestes apli-
cacions, de qualitat molt professional: Gimp (retoc fotogràfic), Sodipodi,
Xine, MPlayer, Gphoto, etc.
• Connectivitat (accés a l'escriptori de manera remota, accés a altres sis-
temes). En aquest aspecte en GNU/Linux hi ha una quantitat enorme
d'eines, ja siguin les de TCP/IP mateix –com ftp, telnet, ssh, web, etc.– o les
d'X Window, que té capacitats d'escriptori remot per a qualsevol màquina
UNIX, com Rdesktop (per a connectar-se a escriptoris Windows), o VNC
(que permet connectar-se a UNIX, Windows, Mac, etc.).
Nota
Pàgines web de paquetsofimàtics:http://openoffice.orghttp://www.koffice.org/http://live.gnome.org/Gnome-Office
GNUFDL • PID_00167524 11 Migració i coexistència amb sistemes no Linux
2. Serveis en GNU/Linux
GNU/Linux disposa de servidors adaptats per a qualsevol ambient de
treball.
Les categories dels serveis que hem apuntat tenen equivalents en serveis que
podem proporcionar des dels nostres sistemes GNU/Linux a la resta de màqui-
nes de la xarxa (i dels quals també podrem actuar com a client):
a)�Aplicacions: GNU/Linux pot oferir serveis de terminals remots, ja sigui per
connexió directa mitjançant interfícies en sèrie de terminals "passius", que ser-
veixin per a visualitzar les aplicacions o interactuar-hi. Una altra possibilitat
és la connexió remota de manera textual, des d'una altra màquina, per mitjà
de serveis TCP/IP com els rlogin, telnet, o de manera segura amb ssh. GNU/Li-
nux proporciona servidors per a tots aquests protocols. En el cas d'executar
aplicacions gràfiques, disposem de solucions mitjançant X Window de mane-
ra remota. Qualsevol client UNIX, Linux o Windows (o d'altres) que disposi
d'un client X Window pot visualitzar l'execució de l'entorn i les seves aplica-
cions. Així mateix, hi ha altres solucions, com VNC, per al mateix problema.
Quant a les aplicacions via Web, GNU/Linux disposa del servidor Apache, i
qualsevol dels múltiples sistemes d'execució web estan disponibles, ja siguin
Servlets/JSP (amb Tomcat) Perl PHP, XML, webservices, etc., i també servidors
d'aplicacions web com Oracle/BEA WebLogic, IBM Websphere, JBoss (lliure),
que també s'executen sobre plataformes GNU/Linux.
b)�Fitxers: es poden servir fitxers de múltiples maneres, des de proporcionar-hi
accés per FTP fins a servir de manera transparent a altres màquines UNIX i
GNU/Linux amb NFS, o bé actuar de client o servidor per a màquines Windows
mitjançant Samba/CIFS.
c)�Base�de�dades: suporta una gran quantitat de bases de dades client-servidor
de tipus relacional, com MySQL i PostgreSQL, i diverses de comercials, com
Oracle o IBM DB2, entre d'altres.
d)�Impressió: pot servir impressores locals o remotes, tant a sistemes UNIX
amb protocols TCP/IP com a Windows mitjançant Samba/CIFS.
GNUFDL • PID_00167524 12 Migració i coexistència amb sistemes no Linux
e)�Correu� electrònic: ofereix tant serveis perquè els clients obtinguin cor-
reu a les seves màquines (servidors POP3 o IMAP), com agents MTA (mail
transfer agent) per a recuperar i retransmetre correu, com el servidor Sendmail
(l'estàndard UNIX) o d'altres com Exim o Postfix i, en el cas de trameses ex-
ternes, el servei SMTP.
f)�Web: està disponible el servidor HTTP Apache, ja sigui en les seves versions
1.3.x o en les noves 2.0.x/2.2.x. A més, podem integrar servidors d'aplicacions
web, com Tomcat, per a servir Servlets/JSP, o servidors d'aplicacions com JBoss.
g)�Informació�de�xarxa: serveis com NIS, NIS+ o LDAP ens permeten centra-
litzar la informació de les màquines, usuaris i recursos diversos de la nostra
xarxa, i això facilita l'administració i els serveis als usuaris, de manera que
aquests no depenguin de la seva situació a la xarxa. Si la nostra organització
té una certa estructura interna, aquests serveis ens permeten modelar-la (mit-
jançant estructures jeràrquiques), deixant accés als recursos a qui els necessita.
h)�Serveis�de�noms: serveis com el DNS per als noms de les màquines i la
seva traducció des d'IP o a IP, per exemple, mitjançant el servidor Bind (el DNS
estàndard UNIX).
i)�Serveis�d'accés�remot: ja sigui per a executar aplicacions o per a obtenir
informació remota de les màquines. Els servidors podrien ser els que hem co-
mentat per a aplicacions: X Window, VNC, etc., i també els que permeten exe-
cutar algunes instruccions remotes sense interactivitat, com rexec, rsh, ssh, etc.
j)�Serveis�de�generació�de�noms: serveis com DHCP permeten xarxes TCP/IP,
una generació dinàmica (o estàtica) de les adreces IP que es disposen en funció
de les màquines que en necessitin.
k)�Serveis�d'accés�a�Internet: en determinades situacions es pot tenir un únic
punt de sortida a Internet (o diversos). Aquests punts solen actuar com a in-
termediaris, ja que tenen l'accés i el redirigeixen als possibles accessos a Inter-
net per part dels clients. També solen actuar de cau (cache) de continguts. En
GNU/Linux podem disposar, per exemple, de l'Squid. Dins d'aquesta catego-
ria, també podria entrar l'actuació d'un sistema GNU/Linux de passarel·la (ga-
teway) o d'encaminador, ja sigui per a dirigir paquets cap a altres xarxes o per a
buscar rutes de retramesa alternatives. També en el cas de petites instal·lacions
com les domèstiques, podríem incloure l'accés a Internet mitjançant mòdem
per als serveis PPP.
l)�Serveis�de�filtratge: una de les mesures de seguretat més utilitzades actual-
ment és la implantació de tallafocs (firewalls). Consisteix en tècniques de fil-
tratge dels paquets entrants o sortints, dels diferents protocols que estiguem
GNUFDL • PID_00167524 13 Migració i coexistència amb sistemes no Linux
usant, per a posar barreres als no desitjats. En GNU/Linux disposem de meca-
nismes com ipchains (obsolet) i iptables (més modern, també denominat Net-
filter) per a implementar els tallafocs.
GNUFDL • PID_00167524 14 Migració i coexistència amb sistemes no Linux
3. Tipologies d'ús
GNU/Linux ofereix, com a sistema, característiques vàlides per a l'ús
des de l'usuari personal fins a l'usuari d'una infraestructura de mitjana
o gran escala.
Des de la perspectiva dels usuaris dels sistemes GNU/Linux, podríem diferen-
ciar usuaris individuals, de mitjana escala i d'organització àmplia:
a)�L'usuari�individual�o�usuari�domèstic: aquest tipus d'usuari disposa d'una
o diverses màquines a la seva llar, que seran compartides o no. En general,
en aquest ambient, GNU/Linux s'utilitzaria per a desenvolupar un sistema
d'escriptori, en el qual serà important la part gràfica: l'escriptori de GNU/Li-
nux. També està adquirint importància, pel creixement dels continguts digi-
tals (foto, vídeo, música), la utilització de GNU/Linux en un ambient domès-
tic, com a servidor de mitjans digitals, o servidor d'arxius, en forma de servi-
dors creats a mida, o de productes comercials de tipus NAS (network attached
storage) casolans que proporcionen servidors Samba, NFS, FTP, impressió, cò-
pia de seguretat i reproducció en temps real de vídeo i àudio.
Quant a la part d'escriptori, tenim dues opcions principals, en forma dels en-
torns Gnome i KDE. Els dos entorns constitueixen opcions perfectament vàli-
des. Tots dos disposen de serveis de visualització i execució de les aplicacions,
i també d'un ampli conjunt d'aplicacions pròpies bàsiques que ens permeten
desenvolupar tot tipus de tasques rutinàries. Els dos entorns ofereixen un es-
criptori visual amb diferents menús, barres d'utilitat i icones, i també navega-
dors de fitxers propis i aplicacions d'utilitat variades. Cada entorn pot executar
les seves aplicacions pròpies i les disponibles en l'altre entorn, encara que cada
aplicació té una execució més bona en el seu entorn propi, en tenir un aspecte
visual més d'acord amb l'entorn per al qual es va dissenyar.
Quant a les aplicacions per a l'usuari personal, inclouríem les típiques del sis-
tema d'escriptori. En el cas que l'usuari disposi d'una xarxa a casa seva, com
per exemple un petit conjunt d'ordinadors amb una xarxa de tipus Ethernet,
també podrien ser interessants serveis per a compartir fitxers i impressores en-
tre les màquines. Podrien ser necessaris serveis com NFS, si hi ha altres mà-
quines Linux, o bé Samba, si hi ha màquines amb Windows (o Mac). Els sis-
temes NAS casolans intenten integrar tots aquests serveis juntament amb un
conjunt d'emmagatzemament en disc (RAID), accessible per xarxa mitjançant
diferents protocols (FTP, HTTP, NFS, Samba...).
GNUFDL • PID_00167524 15 Migració i coexistència amb sistemes no Linux
En el cas de tenir una connexió a Internet d'algun proveïdor d'accés (ISP),
segons la forma de connexió utilitzada, necessitaríem controlar els dispositius
i els protocols corresponents:
• Connexió�per�mòdem: els mòdems telefònics solen utilitzar el protocol
PPP de connexió amb el proveïdor. Hauríem d'habilitar aquest protocol
i configurar els comptes que tinguem habilitats en el proveïdor. Un pro-
blema important amb Linux és el tema dels winmodems. Aquests mòdems
(amb excepcions) no estan suportats, ja que no són un mòdem real, sinó
una simplificació de maquinari més un programari controlador, i la majo-
ria funciona únicament amb Windows, per la qual cosa cal evitar-los (si
no estan suportats) i comprar mòdem "reals" (complets).
• Connexió�mitjançant� un�mòdem� ADSL: el funcionament seria sem-
blant, es podria utilitzar el protocol PPP o un altre denominat EoPPP. Això
pot dependre del fabricant del mòdem i del tipus, Ethernet o USB.
• Connexió�per�ADSL�amb�encaminador: la configuració és molt simple,
ja que en aquesta situació només cal configurar la targeta de xarxa Ethernet
o la targeta wireless en el nostre sistema per a connectar a l'encaminador
ADSL (aquest sol proporcionar serveis d'IP dinàmica per a les màquines
client).
Una vegada la interfície a Internet està connectada i configurada, l'últim punt
és incloure el tipus de serveis que necessitarem. Si només volem actuar com a
clients a Internet, n'hi haurà prou que utilitzin les eines client dels diferents
protocols, ja sigui ftp, telnet, el navegador web, el lector de correu o notícies,
etc. Si a més volem oferir serveis cap a l'exterior –per exemple, publicar una
web (servidor web) o permetre el nostre accés extern a la màquina (serveis de
ssh, telnet, ftp, X Window, VNC, etc.), en aquest cas, servidor– hem de recordar
que això només serà possible, en principi, si el nostre proveïdor ens ofereix
adreces IP fixes (estàtiques) per a la nostra màquina. D'una altra manera, la
nostra adreça IP canviaria a cada connexió i la possibilitat de proporcionar un
servei es tornaria molt difícil o impossible (hi ha possibles solucions a aquest
problema, com els serveis, gratuïts, oferts per l'empresa DynDNS).
Un altre servei interessant seria compartir l'accés a Internet entre les màqui-
nes de què disposem a partir d'un sistema GNU/Linux que estigui connectat a
l'exterior (que actua de servidor intermediari o passarel·la per a la resta de mà-
quines). De fet, diversos encaminadors ADSL són en realitat servidors d'aquest
tipus, i molts fabricants utilitzen un GNU/Linux incrustat en el microprogra-
mari (firmware) dels encaminadors. Tot i així, si disposem d'una única màqui-
na amb accés a Internet (mòdem telefònic o mòdem ADSL), podem establir
aquesta màquina amb connexió compartida per a la resta de la nostra xarxa
casolana.
GNUFDL • PID_00167524 16 Migració i coexistència amb sistemes no Linux
b)�Usuari�de�mitjana�escala: és un usuari d'una organització de mitjana esca-
la, ja sigui una petita empresa o un grup d'usuaris. Aquests usuaris disposaran
de connectivitat en xarxa local (per exemple, una LAN) amb algunes màqui-
nes i impressores connectades. I tindran accés directe a Internet, bé per mitjà
d'algun servidor intermediari (punt o màquina destinats a la connexió exter-
na), o bé d'unes quantes màquines connectades físicament a Internet. En ge-
neral, en aquest ambient, el treball sol ser en part local i en part compartit (ja
siguin recursos com les impressores o les aplicacions comunes). Normalment,
necessitarem sistemes d'escriptori; per exemple, en una oficina podem utilit-
zar les aplicacions ofimàtiques juntament amb clients Internet, i potser també
sistemes de tipus estació de treball. Per exemple, en treballs d'enginyeria o ci-
entífics es poden utilitzar aplicacions de DAO (en anglès CAD), de processa-
ment d'imatges, aplicacions de càlcul matemàtic intensiu, etc., i segurament
hi haurà algunes màquines més potents destinades a aquestes tasques.
Es pot comentar que aquest ambient està una mica en transició per a esdevenir
el comú de l'usuari individual, ja que a causa de les connexions de banda ampla
disponibles a les llars com més va s'amplien més les característiques de l'usuari
domèstic i s'apropen a aquest segon ambient. De fet, de vegades l'usuari de
mitjana escala se sol denominar SOHO (small office, home office).
En aquest ambient d'ús, necessitarem serveis de compartició de recursos com
fitxers, impressores, possiblement aplicacions, etc. Per tant, en un sistema
GNU/Linux seran adequats els serveis d'NFS, serveis d'impressió i Samba (si
hi ha màquines Windows amb què calgui compartir fitxers o impressores).
També és possible que tinguem necessitat d'entorns de bases de dades, algun
servidor intern de Web amb aplicacions compartides, etc.
c)�Usuari�d'organització� àmplia: aquest tipus d'usuari és una evolució de
l'anterior, i se'n diferencia en la mida de l'organització i en els recursos de què
pot disposar, que podrien arribar a ser molt alts, de manera que es necessitari-
en alguns recursos de sistemes de directori de xarxa de tipus NIS, NIS+ o LDAP
per a poder manejar la gran quantitat d'informació de l'organització i reflec-
tir-ne l'estructura, i també, segurament, disposar de grans infraestructures de
serveis cap als clients externs, en general en forma de llocs web amb aplicaci-
ons diferents.
En aquest tipus d'organitzacions es presenten nivells d'heterogeneïtat elevats,
tant en el maquinari com en el programari dels sistemes, i podríem trobar
moltes arquitectures i diferents sistemes operatius, per la qual cosa la tasca
principal consisteix a facilitar la compatibilitat de les dades via bases de dades
i formats de documents estàndard, que facilitin la interconnexió mitjançant
protocols, clients i servidors estàndard (amb elements TCP/IP).
GNUFDL • PID_00167524 17 Migració i coexistència amb sistemes no Linux
4. Migrar o coexistir
A continuació, plantejarem un altre aspecte important en el procés d'adopció
dels sistemes GNU/Linux. Suposem que o bé som principiants en el maneig
d'aquest sistema o, al contrari, que som experimentats i volem adoptar un o
diversos sistemes GNU/Linux com a usuaris individuals, per al treball en la
nostra petita organització, o que ens estem plantejant substituir la infraestruc-
tura completa (o parcial) de la nostra gran empresa o organització.
Fer aquesta migració no és quelcom trivial: cal avaluar les opcions mit-
jançant un estudi en el qual s'analitzin tant els costos com les prestaci-
ons que esperem obtenir. A més, es pot dur a terme de manera total o
parcial, amb cert grau de coexistència amb els sistemes antics.
Ens trobem davant d'un projecte de migració, total o parcial, dels nostres sis-
temes informàtics a GNU/Linux, i com a administradors som responsables
d'aquest procés.
Com en tot projecte, caldrà estudiar la manera de respondre qüestions com: és
rendible el canvi, en prestacions, en cost? Amb quin objectiu ho fem? Quins
requisits volem o hem de complir? Podem fer o és necessària una migració
completa? Hi ha d'haver coexistència amb altres sistemes? Caldrà formar de
nou els usuaris? Podrem utilitzar el mateix maquinari o en necessitarem un de
nou? Hi haurà costos afegits importants? O, simplement... sortirà bé? Aques-
tes i moltes preguntes més són les que haurem d'intentar respondre. En el cas
empresarial, la resposta implicaria la definició d'un projecte o pla de migració,
amb els seus objectius, l'anàlisi de requisits, el procés d'implantació, els estudis
econòmics, els plans de formació d'usuaris, els calendaris de fases de desenvo-
lupament i implementació, etc. No entrarem en això, però ens plantejarem
algunes de les qüestions de manera senzilla. I en l'apartat 5 examinarem uns
petits casos pràctics de qüestions que cal examinar en el procés de migració.
A més, en el moment en què comencem la migració als sistemes GNU/Linux
és quan començarem a apreciar els avantatges que aportarà a la nostra orga-
nització:
a)�Costos: reducció dels costos, en llicències de programari del sistema i de
les aplicacions. GNU/Linux té un cost zero quant a les llicències, si s'obté des
de la Xarxa (per exemple, en forma d'imatges dels CD de la distribució), o un
cost menyspreable tenint en compte que la millor comparació per a sistemes
GNUFDL • PID_00167524 18 Migració i coexistència amb sistemes no Linux
equivalents en prestacions serien sistemes Windows Server, amb costos que
se situen en rangs de diversos milers d'euros per llicència, sense incloure gran
part del programari extra que proporciona una distribució GNU/Linux típica.
Però cal anar amb compte, perquè no s'han de desestimar els costos de mante-
niment i formació. Si la nostra organització només està formada per usuaris i
administradors Windows, podem tenir costos alts en nova formació, personal,
i potser manteniment. Per això, les grans empreses volen dependre d'algun
distribuïdor comercial de GNU/Linux que els implanti i mantingui el siste-
ma, com, per exemple, les versions empresarials que ofereixen Red Hat, SUSE
i d'altres. Aquestes versions GNU/Linux també tenen costos de llicència alts
(comparables a Windows), però, al contrari, estan ja adaptades a estructures
empresarials i porten programari propi per a gestionar la infraestructura in-
formàtica de les empreses. Un altre aspecte important, que resumiria aques-
ta estimació de costos, és el concepte de TCO (total cost of ownership), com
a avaluació global dels costos associats que ens trobarem en emprendre un
desenvolupament tecnològic. No solament cal avaluar els costos de llicènci-
es i maquinària, sinó també els costos de suport i formació de les persones i
productes implicats, que poden ser tan importants o més que els de la solució
implementada.
b)�Suport: GNU/Linux té el suport de manteniment més gran que hagi tingut
un sistema operatiu, i majoritàriament gratis. Malgrat això, algunes empreses
no l'adopten per certs temors, i objecten que no hi ha suport del producte, i
es dediquen a comprar distribucions comercials que els ofereixen contractes
de suport i manteniment. GNU/Linux té una comunitat de suport mundial
ben establerta, per mitjà de diferents organitzacions que proporcionen docu-
mentació lliure (els famosos howto), fòrums d'usuaris especialitzats, comuni-
tats d'usuaris de pràcticament qualsevol regió o país del món, etc. Qualsevol
dubte o problema amb què ens trobem es pot buscar (per exemple, amb algun
dels cercadors en Internet), i podem tenir respostes en minuts. Si hem trobat
un error o una situació no provada, en podem informar en diversos llocs (fò-
rums, llocs de desenvolupament, llocs d'errors de distribucions, etc.) i obtenir
solucions en hores o pel cap alt en alguns dies. Sempre que aparegui un dubte o
algun problema, cal intentar primer alguns procediments (així es desenvolupa
l'aprenentatge d'administració), i si no obtenim solució en un temps pruden-
cial, consultar la comunitat GNU/Linux per si a algun altre usuari (o un grup)
li ha ocorregut el mateix problema i ha obtingut solució. Si no, sempre podem
informar del problema (llocs d'errors de les distribucions), que ens plantegin
algunes solucions temporals, o es comencin a elaborar revisions dels paquets
de programari afectats, si es considera que és un problema important.
Algunes fonts de suport GNU/Linux
Linux Howto's: http://www.tldp.org/
HowtoForge: http://howtoforge.org/
Linux Questions: http://www.linuxquestions.org/
GNUFDL • PID_00167524 19 Migració i coexistència amb sistemes no Linux
Linux Forum: http://www.linuxforums.org/forum/
Suport de Debian:
http://www.debianhelp.org/
http://forums.debian.net/
http://www.debian-administration.org/
Suport de Fedora:
http://fedoraforum.org/
http://fedorasolved.org/
http://fedoraunity.org/
4.1. Identificar requisits de serveis
Si tenim uns sistemes ja funcionant, haurem de tenir implantats alguns serveis
dels quals els usuaris seran clients, o serveis que ajudin la infraestructura del
suport informàtic. Els serveis entraran dins d'alguna de les categories vistes
anteriorment, amb les opcions GNU/Linux que comentem.
Els sistemes GNU/Linux no són "nous" en absolut, i deriven (com hem vist en
la introducció) d'una història de més de quaranta anys d'ús i desenvolupament
dels sistemes UNIX. Gràcies a això, una de les primeres coses que veurem és
que no ens falta suport per a cap tipus de servei que vulguem. A tot estirar, hi
haurà diferències en la manera de fer les coses. A més, molts dels serveis que
s'utilitzen en els sistemes informàtics van ser pensats, investigats, desenvolu-
pats i implementats al seu dia per a UNIX, i posteriorment van ser adaptats a
altres sistemes (com Windows, amb més o menys encert).
Moltes de les empreses que disposen de UNIX de propietat participen
en GNU/Linux i ofereixen alguns dels seus desenvolupaments a la co-
munitat.
Qualsevol servei disponible en cada moment podrà ser adaptat en els sistemes
GNU/Linux amb serveis equivalents (si no iguals).
Exemple
Un cas famós és el dels servidors Samba [Woo00] [Sam]. Windows ofereix el que deno-minen compartir arxius i impressores en xarxa mitjançant uns protocols propis denominatsgenèricament SMB (server message block) [Smb] (amb suport de xarxa en els protocols Net-Bios i NetBEUI). També és d'ús comú el nom CIFS (common Internet file system), que éscom es va denominar el protocol en una segona revisió (que continuava incloent SMBcom a protocol base). Aquests protocols permeten compartir carpetes d'arxius (o discos)i d'impressores en una xarxa de màquines Windows (en una configuració de treball engrup, o en dominis Windows). En UNIX aquesta idea ja era antiga quan va aparèixer enWindows, i es disposava de serveis com NFS de compartició d'arxius o la gestió remotad'impressores, sota protocols TCP/IP.
Un dels problemes de substituir els serveis Windows de compartició basats en NetBios/NetBEUI (i últimament amb NetBios sobre TCP/IP), era com donar suport a aquests pro-tocols, ja que, si volíem conservar les màquines client amb Windows, no podíem utilitzar
GNUFDL • PID_00167524 20 Migració i coexistència amb sistemes no Linux
els serveis UNIX (encara que diferents fabricants han implementat clients UNIX per aWindows, solen ser una opció o bé cara o bé no completa). Per a aquest problema, Sambaes va desenvolupar com un servidor per a UNIX que suportava els protocols Windowsi podia substituir una màquina client-servidor Windows de manera transparent; els usu-aris clients amb Windows no notarien absolutament res. És més, el resultat va ser queen la major part dels casos el rendiment era comparable, si no millor que en la màquinaoriginal amb els serveis Windows.
Actualment Samba [Sam] evoluciona constantment per mantenir la compatibilitat delsserveis Windows de compartició d'impressores i arxius, a causa dels canvis generals aquè Microsoft sotmet els protocols SMB/CIFS [Smb] (base que Samba implementa) encada versió nova de Windows; en particular, l'evolució des dels esquemes de treball engrup en les seves versions client de l'operatiu, als esquemes centralitzats en servidor (oen grups), amb serveis particulars d'autenticació d'usuaris (NTLM, NTLMv2, Kerberos)i emmagatzemament centralitzat de la gestió del sistema com Active Directory. Tambées varia la configuració de servidors de dominis en les diferents versions de WindowsServer existents (ja siguin amb servidors controladors primaris, còpia de seguretat o ActiveDirectory).
Actualment, en els processos de migració amb Samba haurem d'observar quines configu-racions de clients/servidors Windows (i les seves versions) hi ha en el sistema informàtic,i també quins mecanismes d'autenticació dels usuaris o gestió de la informació s'utilitzen(grups, dominis, sistema d'autenticació). A més, necessitarem conèixer l'estructuració delsistema informàtic en dominis (i els seus servidors controladors, membres o servidorsaïllats), per a poder fer un mapatge complet i correcte envers solucions basades sobreSamba, i en serveis complementaris d'autenticació d'usuaris (winbind, kerberos, nss_ldap)i gestió de directoris (com per exemple OpenLDAP) [Sama] [Samb].
4.2. Procés de migració
En el procés de migració, cal tenir en compte què es vol migrar, i si es vol fer
de manera completa o parcial, perquè coexisteixi amb altres serveis o equips
o amb un sistema operatiu diferent.
En aquests ambients, en les grans organitzacions, en les quals trobem
un gran nombre de sistemes heterogenis, caldrà tenir en compte que
segurament no es migraran tots, en especial els sistemes de tipus estació
de treball dedicats a l'execució d'alguna aplicació bàsica per a una tasca.
Pot ser que no hi hagi l'aplicació equivalent o simplement ens podem
voler quedar amb aquests sistemes per raons de cost o per rendibilitzar
la inversió feta.
Podem migrar diversos elements, ja sigui els serveis que oferim, les màquines
que els serveixen o els clients que hi accedeixen. Els elements que es migrin
poden ser variats.
En la migració, passarem per la substitució d'un servei per un altre equivalent,
normalment amb el menor impacte possible si no volem substituir també els
clients.
En cas de clients Windows, podem usar el servidor Samba per a substituir els
serveis d'arxius i impressores que proporcionaven les màquines Windows. Si
es tracta d'altres serveis, els podrem substituir pels equivalents GNU/Linux. En
el cas de substituir només algun servei, normalment s'inhabilitarà el servei en
GNUFDL • PID_00167524 21 Migració i coexistència amb sistemes no Linux
la màquina que l'oferia i s'habilitarà en el sistema nou. Poden ser necessaris
canvis en els clients (per exemple, adreces de la nova màquina o paràmetres
relacionats amb el servei).
Si la funció la complia completament una màquina servidora, cal analitzar si
la màquina estava dedicada a un o a més serveis i si tots podran ser substituïts.
En aquest cas, només cal reemplaçar la màquina antiga per la nova (o man-
tenir l'antiga) amb els serveis sota GNU/Linux i, en tot cas, modificar algun
paràmetre en els clients si fos necessari. Normalment, abans d'efectuar el can-
vi, és convenient provar la màquina separadament amb alguns clients per a
assegurar-nos que compleix la seva funció correctament i substituir les màqui-
nes en algun període d'inactivitat del sistema.
En qualsevol cas, segurament caldrà fer còpies de seguretat de les dades ante-
riors al nou sistema, per exemple, el sistema de fitxers o les aplicacions dispo-
nibles al servidor original. Un altre dels punts previs que cal tenir en compte
és la portabilitat de les dades; un problema que sovint presenta difícil solució
si en l'organització s'utilitzaven formats de dades o aplicacions dependents
d'una plataforma.
Alguns casos pràctics de problemes amb què es troben algunes empreses avui dia són:
• Aplicacions�web�amb�ASP�o�ASP.NET: algunes d'aquestes aplicacions només es po-den dur a terme en plataformes web amb Windows i el servidor web IIS de Microsoft.Caldria evitar-les si en algun moment pensem fer una migració de plataformes i novolem reescriure-les o pagar una empresa perquè ho faci. En plataformes GNU/Linuxestà disponible el servidor web Apache (el més utilitzat en Internet), que també espot utilitzar amb Windows. Aquest servidor suporta ASP en Perl (en Windows se solutilitzar Visual Basic, C# i JavaScript generalment) i hi ha solucions de tercers pera migrar els ASP o convertir-los més o menys. Però si la nostra empresa depenguésd'això, seria molt costós en temps i diners. Una solució pràctica hauria estat fer elsdesenvolupaments web en Java (que sí que és portable entre plataformes) o altres so-lucions com PHP. En aquest punt es pot destacar el projecte Mono [Mon] (patrocinatper Novell) per a la portabilitat de part de l'entorn .NET de Microsoft a GNU/Linux,en particular gran part de les API de .NET, el llenguatge C# i l'especificació ASP.NET.Permeten una migració flexible d'aplicacions .NET basades en l'API .NET que estiguisuportada per la plataforma Mono. D'altra banda, com a alternativa GPL a Mono, espot assenyalar el projecte DotGnu [Dgn] de l'FSF.
• Bases�de�dades: utilitzar, per exemple, un SQL Server de Microsoft, ens fa totalmentdependents de la seva plataforma Windows. A més, si utilitzem solucions de propie-tat en un entorn concret per a aplicacions de la base de dades, seran de transferènciadifícil. Altres bases de dades, com Oracle i DB2 (d'IBM) són més portables perquèdisposen de versió per a les diferents plataformes (GNU/Linux inclosa), o per a uti-litzar llenguatges de programació més portables. També es podria treballar amb sis-temes de bases de dades PostgreSQL o MySQL (també tenen versió per a Windows)disponibles en GNU/Linux, i que permeten una transició més fàcil. Així mateix, si escombina amb el desenvolupament web tenim moltes facilitats. En aquest sentit, avuidia s'utilitzen sistemes com aplicacions web amb Java, ja siguin miniaplicacions deservidor, miniaplicacions o EJB, o bé solucions com les famoses LAMP, combinacióde GNU/Linux, Apache, MySQL i PHP.
4.2.1. Estacions de treball
En aquestes migracions el problema més gran parteix de les aplicacions, ja que
són les que donen la seva raó de ser a l'estació de treball, ja siguin programes
de DAO, d'animació, d'enginyeria o científics. Aquí serà important que les pu-
GNUFDL • PID_00167524 22 Migració i coexistència amb sistemes no Linux
guem substituir per aplicacions iguals o, com a mínim, compatibles amb les
mateixes característiques o amb la funcionalitat esperada, o amb portabilitat
de formats de dades o fitxers. Normalment, la major part d'aquestes aplicaci-
ons ja provenen d'un món UNIX, ja que la majoria d'aquestes estacions de tre-
ball estaven pensades com a màquines UNIX. Per això, potser n'hi hagi prou
amb una recompilació o una adaptació mínima al nou sistema GNU/Linux, si
disposem del codi font (com sol passar en moltes aplicacions científiques). Si
es tracta d'aplicacions comercials, els fabricants (de programari d'enginyeria i
científic) les comencen a adaptar a GNU/Linux, encara que en aquests casos
les aplicacions solen ser molt cares (poden valdre perfectament de milers a
centenars de milers d'euros). També per a alguns programaris hi ha solucions
lliures compatibles en més o menys mesura. Cal examinar quines solucions
lliures tenim i si s'adapten mínimament a les nostres necessitats.
4.2.2. Màquines clients d'escriptori
Les màquines d'escriptori continuen essent un maldecap en el món GNU/Li-
nux, ja que ofereixen bastants problemes addicionals. En els servidors, les mà-
quines es destinen a funcionalitats clares, que en general no requereixen in-
terfícies gràfiques complexes (moltes vegades amb comunicació textual és su-
ficient), el maquinari és de propòsit específic i d'altes prestacions, es compra
per a unes funcionalitats concretes i les aplicacions solen ser els servidors ma-
teixos inclosos en el sistema operatiu o alguns de tercers. A més, aquestes mà-
quines solen ser gestionades per personal de tipus administrador que té amplis
coneixements del que gestiona. Per contra, en el cas de l'escriptori, ens trobem
amb un factor problemàtic (en si mateix, i encara més per als administradors):
els usuaris finals del sistema. Els usuaris d'escriptori esperen disposar de po-
tents interfícies gràfiques, més o menys intuïtives, i d'aplicacions que perme-
tin desenvolupar les seves tasques rutinàries, normalment ofimàtiques. Aquest
tipus d'usuari (amb excepcions) no té necessàriament uns coneixements in-
formàtics elevats. En general, els seus coneixements són d'ofimàtica i sol usar
un nombre reduït d'aplicacions amb més o menys domini. Aquí GNU/Linux
té un problema clar, ja que UNIX com a tal mai no va ser pensat com un sis-
tema purament d'escriptori, i només va ser adaptat a posteriori amb sistemes
gràfics com X Window i els diferents entorns d'escriptori, com els actuals de
GNU/Linux: Gnome i KDE. A més, l'usuari final sol estar acostumat a sistemes
Windows (que copen gairebé un 95% del mercat d'escriptori), encara que la
tendència també està canviant, amb més plataformes disponibles en escriptori
com Mac OS X (de fet, un UNIX amb interfície d'escriptori pròpia, encara que
pot usar també X Window).
GNUFDL • PID_00167524 23 Migració i coexistència amb sistemes no Linux
L'ambient d'escriptori és una batalla encara per lliurar per als sistemes
GNU/Linux; han de vèncer la desconfiança dels usuaris a canviar de sis-
tema i saber explicar que ofereixen alternatives de senzillesa i aplicaci-
ons, que solucionen les tasques dels usuaris.
En el cas de l'escriptori, GNU/Linux ha de superar uns quants obstacles. Un
dels més crítics és que no està preinstal·lat a les màquines (aquesta tendèn-
cia està canviant gràcies a alguns fabricants i a l'emergent mercat dels portà-
tils tipus notebook), fet que obliga l'usuari a tenir coneixements per a poder-lo
instal·lar.
Altres problemes podrien ser:
• Desconfiança�de�l'usuari: una pregunta que es pot plantejar un usuari és:
per què he de canviar de sistema? M'oferirà el mateix el nou entorn? Una
de les raons bàsiques per a fer el canvi seria el programari de qualitat i el
seu preu, del qual una bona part és lliure. En aquest punt, afecta el tema de
les còpies de programari il·legals. Sembla que els usuaris consideren que el
seu programari és gratis, quan en realitat estan en una situació il·legal. El
programari GNU/Linux ofereix gran qualitat a baix cost (o gratis en molts
casos) i ofereix múltiples alternatives per a una mateixa tasca.
• Senzillesa: de vegades, l'usuari es mostra perdut si el sistema no li ofereix
algunes referències que el facin semblant al que ja coneix, com el compor-
tament de la interfície, o que les eines siguin semblants en funcionalitat
(de fet, el que es denomina la usabilitat del sistema). Espera que, en gene-
ral, no necessiti gaire temps extra per a aprendre i manejar el nou sistema.
GNU/Linux encara presenta alguns problemes en les instal·lacions més o
menys automàtiques, per a les quals, encara que milloren dia a dia, encara
és necessari un cert grau de coneixement. En aquest punt, es pot destacar
la facilitat d'instal·lació en diferents ambients oferta per distribucions re-
cents orientades a escriptori com Ubuntu [Ubu], que han permès que la
instal·lació sigui molt senzilla i fins i tot més que la de les altres platafor-
mes. Un altre problema habitual és el suport del maquinari del PC; mal-
grat que està millorant molt, els fabricants actualment no li paren l'atenció
adequada (en part per la quota de mercat d'usuari personal). Fins que no
hi hagi una intenció clara en aquest aspecte, no podrem tenir el mateix
suport que en altres sistemes de propietat (com en Windows). Encara que
cal destacar el treball de la comunitat del nucli de Linux per donar el su-
port adequat a noves tecnologies, en alguns casos ajudant el fabricant, o
preparant suport primari (si no està suportat pel fabricant) o alternatiu a
l'ofert pel fabricant.
• Transparència: els entorns GNU/Linux tenen molts mecanismes comple-
xos, com els dimonis, serveis, fitxers ASCII difícils de configurar, etc. Per a
GNUFDL • PID_00167524 24 Migració i coexistència amb sistemes no Linux
un usuari final, seria necessari poder ocultar totes aquestes complexitats,
mitjançant programes gràfics, assistents de configuració, etc. És un dels
camins que han pres algunes distribucions com Red Hat, Mandriva, Ubun-
tu o Novell SUSE.
• Suport�d'aplicacions�conegudes: un usuari ofimàtic típic tindrà el pro-
blema de la portabilitat de les seves dades, o del tractament dels formats
d'aquestes. Què fa amb les dades que tenia fins al moment? Aquesta qües-
tió s'està millorant dia a dia, gràcies als paquets ofimàtics, que comencen
a tenir les funcionalitats necessàries per a un usuari d'escriptori. Per exem-
ple, si ens plantegem una migració des d'un ús d'un paquet Office de Win-
dows, podem trobar paquets com l'OpenOffice (programari lliure i gratuït),
que pot llegir (i crear) els formats (amb algunes restriccions) de fitxers Of-
fice (de diferents versions). La compatibilitat de formats no és que sigui
difícil, quan són oberts, però en el cas Windows Microsoft continua man-
tenint una política de formats tancats (amb algunes modificacions en els
últims temps), i cal fer un treball considerable per a poder utilitzar aquests
formats, mitjançant reenginyeria inversa, un procés bastant costós. A més,
en l'era d'Internet, en què la informació se suposa que es mou lliurement,
els formats tancats sense documentar són més un obstacle que una altra
cosa. El millor és utilitzar formats oberts editables com l'RTF (encara que
aquest cas també té algun problema, per les múltiples versions que hi ha), o
bé formats basats en XML (l'OpenOffice genera els seus documents propis
en formats basats en XML), o PDF per a la documentació de lectura. També
cal destacar els esforços fets recentment per la comunitat OpenOffice per
a la creació de l'estàndard OpenDocument (usat per aquest programa a
partir de les versions 2.x i adoptat per altres paquets ofimàtics), que han
permès disposar d'un format lliure com a estàndard ISO per a la creació
de documents. Aquest fet ha obligat Microsoft a obrir (parcialment) el seu
format en les versions a partir d'Office 2007, i ha incorporat els formats do-
cumentats OpenXML (i ha inclòs suport per als formats OpenDocument),
ja que moltes administracions públiques obliguen en els seus contractes de
sistemes d'informació que els formats de dades siguin estàndards oberts.
• Alternatives�vàlides: el programari que es deixa d'usar ha de tenir alter-
natives que compleixin el treball anterior en l'altre sistema. En la ma-
joria d'aplicacions hi ha una o diverses alternatives amb funcionalitats
semblants, si no superiors. Es poden trobar per Internet diferents llistes
d'equivalències (més o menys completes) d'aplicacions Windows amb les
seves corresponents GNU/Linux (n'hem comentat algunes anteriorment
en aquest mòdul).
• Suport�d'execució�d'altres�aplicacions�de�diferents�sistemes: en algunes
condicions és possible executar aplicacions d'altres sistemes UNIX (de la
mateixa arquitectura, per exemple Intel x86), o bé d'MS DOS o Windows,
mitjançant paquets de compatibilitat o algun tipus d'emuladors. GNU/Li-
nux disposa d'eines d'escriptori remot per a altres plataformes, i de su-
Nota
Per a exemples d'aplicacionsequivalents vegeu:http://www.linuxalt.com/http://wiki.linuxquestions.org/wiki/Linux_software_equivalent_to_Windows_softwarehttp://www.linuxrsp.ru/win-lin-soft/table-eng.html
GNUFDL • PID_00167524 25 Migració i coexistència amb sistemes no Linux
port d'aplicacions Windows amb paquets com Wine, que permet executar
abundant quantitat de programari sense problemes. Una altra possibilitat,
per a programari que s'hagi de mantenir, és la creació de màquines virtuals
que executin la plataforma amb el programari que no hem pogut migrar.
Sistemes com VirtualBox, Vmware o d'altres ens donaran suport en aquest
cas.
La major part d'aquests problemes que apareixen en les migracions d'escriptori
s'estan superant a poc a poc i ens permetran, en el futur, gaudir de més quo-
ta d'usuaris GNU/Linux a l'escriptori i, a mesura que augmentin, disposar
d'aplicacions millors, ja que les empreses de programari implementaran versi-
ons per a GNU/Linux.
En el cas empresarial, això es pot superar amb una migració suau, primer de
les etapes de servidors i estacions de treball, per a passar després per un procés
de formació àmplia dels usuaris en els nous sistemes i aplicacions i, finalment,
integrar-los al seu escriptori.
Un procés que ajudarà en gran manera és la introducció del programari de co-
di obert en diferents fronts, per exemple en les fases educatives i en les admi-
nistracions públiques. En aquest sentit, són pioners la comunitat autònoma
d'Extremadura, amb la seva distribució GNU/Linux anomenada Linex, el Gua-
daLinex de la Junta d'Andalusia, o bé recents mesures per a implantar aquest
programari en l'educació primària, o les iniciatives d'algunes universitats de
dur a terme cursos i matèries amb aquests sistemes.
GNUFDL • PID_00167524 26 Migració i coexistència amb sistemes no Linux
5. Taller de migració: anàlisi de casos d'estudi
En aquest taller, intentarem aplicar el que hem estudiat en aquest mòdul per
a analitzar uns processos de migració senzills i algun detall de les tècniques
necessàries (en el cas de tècniques de xarxa o servidors específics, les veurem
juntament amb la resta de continguts dels materials d'administració i admi-
nistració avançada).
Ens plantejarem els casos d'estudi següents:
• Migració individual d'un usuari d'escriptori Windows a un sistema GNU/
Linux.
• Migració d'una petita organització que disposa de sistemes Windows i al-
guns UNIX.
• Migració d'un servidor Windows aïllat (standalone) a un servidor Samba
en GNU/Linux.
5.1. Migració individual d'un usuari d'escriptori Windows a un
sistema GNU/Linux
Un usuari es planteja la migració a GNU/Linux [Ray02b]. Primer, es passarà
per un període de convivència, de manera que l'usuari disposarà de tots dos
sistemes, i dedicarà cada un a una sèrie de tasques: continuarà desenvolupant
tasques en Windows mentre es familiaritza amb el nou sistema i trobarà pro-
gramari equivalent, o programari nou que li permeti fer altres tasques que
abans no podia fer.
La migració és, per a un usuari personal, potser un dels processos més
complexos; cal oferir-li alternatives al que ja utilitza normalment, de
manera que l'adaptació no comporti gaires complexitats extra i es pugui
adaptar progressivament amb facilitat al nou sistema.
Podem fer una instal·lació dual [Ban01] [Sko03b] del sistema original (un Win-
dows, per exemple), juntament amb el sistema GNU/Linux.
Un primer pas en una determinada configuració de màquina consistirà a ve-
rificar que el nostre maquinari sigui compatible amb Linux [Pri02], ja sigui
per mitjà d'alguna llista de compatibilitat de maquinari o verificant-ho amb el
fabricant, per si fos necessari adquirir nous components o configurar d'alguna
manera particular l'existent. Si desconeixem el nostre maquinari, el podem ve-
rificar o bé en Windows amb l'"administrador de dispositius" (al panell de con-
trol), o amb algun programari de reconeixement de maquinari. D'altra banda,
Nota
Sobre Linux Hardware Howtovegeu:http://www.tldp.org/HOWTO/HardwareHOWTO/index.html
GNUFDL • PID_00167524 27 Migració i coexistència amb sistemes no Linux
un mètode recomanable és la utilització de distribucions GNU/Linux de tipus
live CD (Knoppix, Ubuntu, Fedora Live), que ens permetran sense instal·lació
física comprovar el funcionament de GNU/Linux en el nostre maquinari, ja
que l'únic requisit és la possibilitat d'arrencada del sistema des de CD/DVD
(en alguns casos, es necessitarà modificar la configuració BIOS per a perme-
tre aquesta arrencada). Hi ha live CD com Knoppix [Knp] amb gran suport de
maquinari per a les comprovacions, i també en la majoria de les distribucions
GNU/Linux que solen oferir live CD per a la comprovació inicial de funciona-
ment (en alguns casos, per exemple amb l'Ubuntu [Ubu], la instal·lació com-
pleta es pot fer des del live CD mateix). En tot cas, es pot assenyalar que la
prova amb un live CD concret no ens impedeix que puguin sorgir dificultats
en la instal·lació final, perquè el live CD no és de la mateixa distribució GNU/
Linux que la que instal·larem finalment o perquè les versions del sistema o les
aplicacions no són les mateixes.
Quant a la instal·lació física en disc, necessitarem disposar o bé d'espai lliure en
disc no particionat, o bé, si estem en particions de tipus FAT32/NTFS, podem
alliberar espai amb programes que permetin el reajustament de la mida de les
particions, que permeten retallar la partició existent (una còpia de seguretat
de les dades és evidentment recomanable). Actualment, la major part de les
distribucions suporten diferents esquemes de particionament del disc i el retall
de particions, encara que depenent de la distribució poden sorgir problemes
(es recomana una còpia de seguretat prèvia sempre al procés d'instal·lació). En
cas de no disposar de l'espai suficient, o de tenir particions amb sistemes de
fitxers que presentin problemes (per exemple, NTFS en algunes distribucions),
caldrà plantejar comprar un nou disc dur complementari, que dedicarem to-
talment o en part a GNU/Linux. Si la màquina disposa d'arrencada des d'USB,
una possibilitat és disposar d'un disc dur extern USB i fer la instal·lació allà.
També és molt usada la virtualització mitjançant màquines virtuals de tipus
VirtualBox o Vmware, que ens permet instal·lar una distribució sobre un PC
virtual, encara que en aquest cas no tindrem una experiència d'instal·lació
amb el nostre maquinari real.
Una vegada completada la revisió del maquinari, haurem de decidir la distri-
bució del sistema GNU/Linux que usarem (una possibilitat apuntada abans és
escollir un live CD que ens hagi satisfet, i passar a la instal·lació de la distribu-
ció). Si l'usuari és poc experimentat en GNU/Linux, o té coneixements bàsics
d'informàtica, és millor decidir-se per alguna de les distribucions més "amiga-
bles" per a l'usuari, com Fedora, Mandriva, Novell SUSE o similars. Es poden
destacar les facilitats d'Ubuntu en aquest punt. Si tenim més coneixements o
estem temptats d'experimentar, podem provar una distribució Debian. En el
cas de les comercials, la distribució, la majoria de vegades, amb un maquinari
compatible (en alguns casos com Red Hat, Ubuntu Server i Novell SUSE, amb
les versions empresarials les distribuïdores certifiquen el maquinari que supor-
ten), s'instal·la perfectament sense problemes, i es fan configuracions bàsiques
que permeten ja utilitzar l'operatiu. En el procés haurem d'instal·lar el progra-
GNUFDL • PID_00167524 28 Migració i coexistència amb sistemes no Linux
mari, que serà definit per uns conjunts de programari orientats a servidors, a
aplicacions concretes, o a aplicacions d'escriptori com les ofimàtiques, aplica-
cions de desenvolupament (si ens interessa la programació), etc.
Una vegada instal·lat el sistema, es planteja el tema de la compartició de dades
[Gon00] [Kat01]. Com compartim dades entre els dos sistemes? Hi ha possibi-
litat de compartir algunes aplicacions? Per a això hi ha diverses solucions:
a)�Mètode�per�"intermediari": consisteix a compartir les dades, per exemple,
mitjançant disquets (opció una mica ja obsoleta des de l'aparició de disposi-
tius USB portàtils). En el cas dels disquets, el millor són les utilitats denomi-
nades mtools, que permeten accedir a disquets amb format MSDOS de manera
transparent, i ofereixen múltiples instruccions de línia que funcionen de ma-
nera molt semblant a MSDOS o Windows. Aquestes instruccions s'anomenen
exactament com les originals d'MSDOS, només que amb una m al davant; per
exemple: mcd, mcopy, mdir, mdel, mformat, mtype, etc.
b)�Mètode�directe: consisteix a usar directament els sistemes de fitxers de Win-
dows (ja siguin els discos durs interns de la màquina, o unitats portàtils exter-
nes de tipus flaix o discos durs USB). Com veurem en la unitat d'administració
local, GNU/Linux pot llegir i escriure una gran quantitat de sistemes de fitxers,
entre els quals hi ha FAT, FAT32 i NTFS (només de lectura en alguns casos de
distribucions antigues, encara que la majoria de distribucions ja incorporen, o
l'ofereixen com a opció, el suport NTFS per mitjà del controlador ntfs-3g [Nt3],
que permet l'escriptura). S'ha de passar per un procés denominat de muntatge,
que permet incorporar el sistema de fitxers de Windows a un punt de l'arbre
d'arxius de Linux. Per exemple, podríem muntar el nostre disc Windows en
/mnt/Windows i accedir des d'aquest punt a les seves carpetes i arxius, i es per-
meten escriptures i lectures. Amb els fitxers de text ASCII cal tenir en compte
amb les conversions, ja que UNIX i Windows els tracten de manera diferent:
en UNIX, el final de línia té un sol caràcter, l'avenç de línia, ASCII 10, mentre
que en Windows n'hi ha dos, un retorn i un avenç de línia, ASCII 13 i 10 (com
a detall curiós en MAC és l'ASCII 13). Amb això, sol ser habitual que, en llegir
un fitxer ASCII DOS/Windows, contingui caràcters "estranys" al final de línia.
Hi ha editors com l'Emacs que els tracta de manera transparent i, en tot cas, hi
ha utilitats GNU/Linux que permeten convertir-los d'un format a l'altre (amb
utilitats com duconv, recode, dos2UNIX, UNIX2dos).
c)� Ús� d'aplicacions: hi ha algunes alternatives per a poder executar les
aplicacions (no totes) d'MSDOS i Windows. Per a GNU/Linux hi ha emu-
ladors d'MSDOS com Dosemu [Sun02] o DosBox, i per a Windows hi ha
el programari d'execució Wine [Win]. Aquest pot executar un gran nom-
bre d'aplicacions de Windows (per exemple, permet executar algunes versi-
ons de l'Office i l'Internet Explorer), i es continua millorant constantment.
Si l'execució d'aplicacions Windows és imprescindible, ens pot ajudar algun
programari comercial, que dóna suport extra a Wine. Hi ha, per exemple,
Win4Lin, CrossOver, i algun cas de suport especial per a jocs, com Cedega.
GNUFDL • PID_00167524 29 Migració i coexistència amb sistemes no Linux
Una altra solució possible és l'ús de les màquines virtuals; un exemple de pro-
gramari d'ampli ús és VMware o VirtualBox, que crea com a màquina virtual
un PC complet, simulat per programari, en el qual es pot instal·lar un gran
nombre diferent de sistemes operatius. Vmware i VirtualBox està disponible
en versions per a Windows i per a GNU/Linux, la qual cosa permet tenir un
GNU/Linux instal·lat amb un Windows executant-se virtualment a sobre, o
un Windows amb GNU/Linux en virtual. Hi ha també altres solucions de mà-
quina virtual lliures com QEmu, KVM i Bochs. En un altre segment, les mà-
quines virtuals, o genèricament la virtualització, és orientada a la creació de
servidors virtuals, amb solucions com Vmware Server, o els projectes oberts
Xen, OpenVZ o Vserver, en els quals és possible fer coexistir diverses màquines
virtuals corrent sobre un operatiu (mitjançant modificacions en el nucli que
suportin aquesta virtualització), o fins i tot sobre el maquinari directament
(sense operatiu complet, només una petita capa programari de virtualització
de recursos).
A part de compartir la informació (aplicacions o dades), es poden buscar apli-
cacions GNU/Linux que substitueixin les originals de Windows a mesura que
l'usuari vagi aprenent a utilitzar-les, i observi que compleixen les funcionali-
tats esperades.
Un cas típic seria el paquet ofimàtic, en què l'usuari pot traslladar l'ús a l'OpenOffice,que té un alt grau de compatibilitat amb els fitxers de l'Office i un funcionament bastantsemblant, o bé el KOffice (per a l'escriptori KDE), o el Gnumeric i l'AbiWord (per a Gno-me). En el cas del processament d'imatges tenim el Gimp, amb funcionalitats semblants al'Adobe Photoshop. I multitud de reproductors multimèdia: Xine, MPlayer (o també unaversió del RealPlayer). A Internet, es poden trobar llistes d'equivalències de programesentre Windows i GNU/Linux.
5.2. Migració d'una petita organització que disposa de sistemes
Windows i alguns UNIX
Considerem ara una organització que tingui màquines Windows i algunes mà-
quines UNIX dedicades a serveis, o a estacions de treball, i uns usuaris una
mica "anàrquics". Per exemple, estudiem la situació següent: l'organització té
una petita xarxa local de màquines Windows repartides pels usuaris, com a
màquines d'igual a igual en un grup de treball Windows (no hi ha dominis
Windows Server).
El grup és variat: tenim màquines amb Windows 98, XP, Vista, 7, però perso-
nalitzades per cada usuari amb el programari que necessita per al seu treball
diari: ja sigui l'Office, el navegador, el lector de correu o entorns de desenvo-
lupament per als programadors de diferents llenguatges (per exemple C, C++,
Java).
Es disposa d'alguns recursos de maquinari extra, com diverses impressores con-
nectades a la xarxa local (accepten treballs TCP/IP), i es permeten utilitzar des
de qualsevol punt de l'organització. I hi ha una màquina compartida, amb
alguns recursos especials, com escàner, enregistradora de CD i directoris com-
Nota
Llistes d'equivalències:http://www.linuxrsp.ru/win-lin-soft/table-eng.htmlhttp://www.linuxeq.com/
GNUFDL • PID_00167524 30 Migració i coexistència amb sistemes no Linux
partits per xarxa, on els usuaris poden deixar els seus directoris amb els seus
fitxers per a processos de còpia de seguretat o per a recuperar, per exemple,
imatges escanejades.
També disposem de diverses estacions de treball, en aquest cas Sun Microsys-
tems Sparc, que executen Solaris (UNIX comercial de Sun). Aquestes estaci-
ons són dedicades al desenvolupament i a algunes aplicacions científiques i
gràfiques. Aquestes màquines disposen de serveis d'NFS per a compartir ar-
xius i NIS+ per a manejar la informació dels usuaris que s'hi connecten i que
ho puguin fer des de qualsevol de manera transparent. Algunes de les màqui-
nes inclouen serveis específics; n'hi ha una de destinada al servidor web de
l'organització i una altra de destinada al servidor de correu.
Es planteja la possibilitat de fer una migració a GNU/Linux per interessos de
desenvolupament de programari i per l'interès particular d'alguns usuaris de
disposar d'aquest sistema.
A més, s'aprofitarà la migració per a intentar solucionar alguns problemes: de
seguretat (alguns sistemes antics Windows no són la millor manera de com-
partir arxius) i d'ús de la impressora (es vol restringir perquè la despesa en
paper i el cost associat són alts) a unes quotes més raonables. D'altra banda,
s'ofereix certa llibertat als usuaris; no els obligarem a canviar de sistema, en-
cara que els farem el suggeriment. I aprofitarem l'ocasió per a comprar maqui-
nari nou que complementi l'existent, per exemple, si les estacions de treball
estan mancades d'espai de disc, la qual cosa representa limitacions d'espai per
al correu i els comptes d'usuari.
La migració en una organització (encara que sigui petita) planteja mol-
tes dificultats: tindrem diferents ambients de treball, maquinari i pro-
gramari heterogeni, i més d'una vegada, reticències dels usuaris al canvi.
Després de tota aquesta petita descripció de la nostra organització (en altres
casos més complexos, podria omplir diverses pàgines o ser un document sen-
cer d'anàlisi de la situació present i les propostes futures), ens comencem a
plantejar possibilitats per a solucionar tot això:
1)�Què�fem�amb�les�estacions�de�treball�actuals? El cost en manteniment i
llicències de programari és elevat. Hem de cobrir el manteniment d'error a les
estacions, maquinari car (en aquest cas, discs SCSI) i ampliacions de memòria
també cares. El cost del sistema operatiu i les seves actualitzacions també és
car. En aquest cas, tenim dues possibilitats (depenent del pressupost de què
disposem per al canvi):
• Podem reduir costos convertint les màquines a sistemes GNU/Linux.
Aquests sistemes són d'arquitectura Sparc i hi ha distribucions que supor-
GNUFDL • PID_00167524 31 Migració i coexistència amb sistemes no Linux
ten aquesta arquitectura. Podríem substituir els serveis pels seus equiva-
lents GNU/Linux. La substitució seria pràcticament directa, ja que ja usem
un sistema UNIX.
• Una altra possibilitat seria l'eliminació del maquinari de Sun i convertir
les estacions a PC potents amb GNU/Linux. Això en simplifica el mante-
niment posterior, encara que té un alt cost inicial.
2)�I�amb�el�programari�de�les�estacions�de�treball? Si les aplicacions són de
desenvolupament propi, pot ser suficient tornar a compilar-les o l'adaptació
simple al nou entorn. Si són comercials, haurem de veure si l'empresa les pot
proporcionar per a entorns GNU/Linux, o si podem trobar reemplaçaments
amb funcionalitat semblant. En el cas dels desenvolupadors, els seus entorns
de llenguatges C, C++ i Java es poden portar fàcilment. En cas de C i C++,
es pot utilitzar el compilador GNU GCC i hi ha multitud d'IDE per al desen-
volupament (Eclipse, KDevelop, Anjuta...). En el cas de Java, es pot utilitzar
l'OpenJDK com les implementacions pròpies de Sun en GNU/Linux i entorns
diversos de codi obert (Eclipse d'IBM o Netbeans).
3)�I�els�usuaris? A aquells que estiguin interessats en GNU/Linux els podem
instal·lar equips duals amb Windows i GNU/Linux perquè comencin a provar
el sistema i, si volen, passar finalment a un únic sistema GNU/Linux. Podem
trobar dos tipus d'usuaris: els purament ofimàtics necessitaran el paquet ofimà-
tic, navegador i correu; això els ho podem oferir amb un escriptori GNU/Linux
com el Gnome o el KDE i programari com l'OpenOffice, el navegador Mozi-
lla/Firefox, i el correu Mozilla Thunderbird (o qualsevol altre, com el Kmail,
l'Evolution...). L'equivalència és més o menys directa, depèn de les ganes que
els usuaris tinguin de provar i usar el nou programari. Per als desenvolupadors,
el canvi pot ser més directe, ja que els podem oferir molts més entorns i eines
flexibles. Es podrien passar completament a sistemes GNU/Linux o treballar
directament amb les estacions de treball.
4)�I�les�impressores? Es pot establir alguna estació de treball com a servidor
d'impressió (ja sigui per cues TCP/IP o per servidor Samba) i controlar les im-
pressions mitjançant quotes.
5)�La�màquina�compartida? El maquinari compartit es pot deixar a la mateixa
màquina o es pot controlar des d'un sistema GNU/Linux. Quant a l'espai de
disc compartit, es pot moure a un servidor Samba que substitueixi l'actual.
6)�Ampliem�l'espai�del�disc? Dependrà del pressupost. En podem millorar el
control mitjançant un sistema de quotes que reparteixi l'espai d'una manera
equitativa i posi límits a la saturació.
GNUFDL • PID_00167524 32 Migració i coexistència amb sistemes no Linux
5.3. Migració d'un servidor Windows a un servidor Samba en
GNU/Linux
En aquest cas, descrivim el procés bàsic necessari per a efectuar una possible
migració d'un servidor Windows que comparteix carpetes i impressora a un
servidor Samba en un sistema GNU/Linux.
Suposem una màquina que pertany a un grup de treball GRUP, que comparteix
una impressora anomenada PRINTER i que té una carpeta compartida DADES
que no és més que el disc D de la màquina. Diversos clients Windows accedei-
xen a la carpeta per a lectura/escriptura, dins d'una xarxa local amb adreces
IP 192.168.1.x, en què x serà 1 per al nostre servidor Windows, i els clients
tenen altres valors (les xarxes 192.168.x.x s'utilitzen sovint com a adreces per
a muntar xarxes privades internes).
En el nostre procés construirem un servidor Samba, que és el que ens permetrà
l'execució en GNU/Linux del protocol SMB/CIFS (Server Message Block / Com-
mon Internet File System). Aquest protocol permet la interacció del sistema
d'arxius i de les impressores per mitjà de xarxes en múltiples sistemes opera-
tius. Podem muntar carpetes pertanyents a Windows a les màquines GNU/Li-
nux, o bé part dels arxius de GNU/Linux a Windows, i el mateix amb les im-
pressores de l'un o de l'altre. El servidor és compost de dos dimonis (processos
de sistema) anomenats smbd i nmbd (depenent de la versió de Samba també
n'hi ha un tercer anomenat winbind que s'utilitza en entorns de dominis Win-
dows per a unir-se o proporcionar serveis d'Active Directory).
Gràcies als programaris com Samba, la migració des d'entorns Windows
és molt flexible i ràpida i fins i tot amb millores de prestacions o en
rendiment.
El procés smbd gestiona les peticions dels clients cap als arxius o impressores
compartits. L'nmbd gestiona el sistema de noms de les màquines i els recursos
sota el protocol NetBIOS (creat per IBM). Aquest protocol és independent de la
xarxa que s'usa (actualment, Microsoft utilitza generalment en NT/2000/XP/
Vista/7 NetBIOS sobre TCP/IP). L'nmbd també proporciona serveis WINS, que
és el servei d'assignació de noms, que s'executa sobre Windows NT/Server si
tenim una col·lecció de màquines. És una espècie de combinació de DNS i
DHCP per a entorns Windows. El procés és una mica complex; en resum, quan
una màquina Windows arrenca, o bé té una adreça IP estàtica, o bé dinàmica
per mitjà d'un servidor DHCP, i a més pot ser que tingui un nom NetBIOS (el
nom que l'usuari assigna a la màquina: en identificació de xarxa). El client
WINS contacta amb el servidor per a informar de quina és la seva adreça IP. Si
Nota
Aquesta migració sol compor-tar un procés bastant més ex-tens que les bases exposades.Consulteu la bibliografia per aveure'n els passos complets.
GNUFDL • PID_00167524 33 Migració i coexistència amb sistemes no Linux
una màquina de xarxa pregunta posteriorment pel nom NetBios, es contacta
amb el servidor WINS per a obtenir-ne l'adreça IP i s'estableixen les comuni-
cacions. L'nmbd executa aquest procés sobre GNU/Linux.
Com qualsevol altre servei de xarxa, no s'hauria d'executar sense considerar
quins riscos pot representar l'activació i com els podem minimitzar. Pel que
fa a Samba, cal tenir presents els temes de seguretat, ja que estem obrint part
dels nostres arxius i les impressores locals o de la xarxa. Haurem de verificar
bé les restriccions de comunicació que posem per no donar accés a usuaris
o màquines no desitjades. En aquest exemple bàsic, no comentarem aquests
temes. En un cas real, hauríem d'examinar les opcions de seguretat i restringir
l'accés només a qui realment volem.
En el procés de migració, primer haurem de configurar el sistema GNU/Linux
per al suport de Samba [Woo00]. Es necessita el suport en el nucli dels sistemes
de fitxers Samba (smbfs), que ja està activat. Cal afegir que, actualment, hi ha
un suport addicional en el nucli per mitjà de mòdul (cifs) [Ste07], el qual, a
partir de la versió del nucli 2.6.20, es considera el mètode per defecte, i smbfs
queda en segon terme. El mòdul cifs aporta suport per a noves prestacions
relacionades amb el protocol CIFS (com a extensió de SMB). Aquests mòduls
ens permeten, mitjançant els noms de sistemes de fitxers smbfs i cifs, fer ope-
racions de muntatge de sistemes de fitxers Windows en l'arbre de directoris
de Windows (mount -t smbfs o mount -t cifs). A part que el suport del nucli es
decanta envers el mòdul cifs, hi ha algunes característiques que poden neces-
sitar suport smbfs, amb la qual cosa sol ser habitual disposar dels dos mòduls
activats en el nucli. També cal destacar la qüestió de la configuració: mentre
que smbfs basa la seva operació en la configuració Samba (com veurem, al fit-
xer smb.conf), al mòdul cifs se li proporciona la configuració en les operacions
(per exemple, en el procés de muntatge mitjançant mount).
En el cas de l'ús del servidor Samba, a més del suport de nucli, necessitarem
instal·lar els paquets de programari associats: caldrà examinar quins paquets
relacionats amb Samba hi ha en la distribució i instal·lar els que tinguin a veure
amb el funcionament de servidor. I, també si es vol, els relacionats amb Samba
com a client, en el cas que vulguem ser clients de màquines Windows o provar,
des del nostre GNU/Linux, els recursos compartits de les màquines Windows.
En una distribució Debian, aquests paquets són: samba, samba-common, smb-
client, smbfs. També pot ser interessant instal·lar swat, que és una eina gràfica
basada en web per a l'administració dels serveis Samba. Per al nostre servidor
GNU/Linux de Samba [Woo00] [War03], en l'exemple proposat, haurem de
transferir els continguts del disc D anterior (on teníem el nostre sistema de
fitxers compartit) de la màquina original a la nova màquina i col·locar el seu
contingut en alguna ruta per defecte, per exemple /home/DADES, ja sigui per
còpia de seguretat, transferència FTP, o usant Samba com a client per a trans-
ferir els arxius.
GNUFDL • PID_00167524 34 Migració i coexistència amb sistemes no Linux
Quant a la utilització de GNU/Linux com a client Samba, és bastant senzilla.
Mitjançant l'ús d'instruccions client per a un ús ocasional d'un sistema de fit-
xers:
1) Muntem un directori compartit Windows (suposem que host és el nom del
servidor Windows), en un punt de muntatge predefinit (ja existent):
smbmount //host/carpeta /mnt/windows
2) Col·loquem l'accés a la "carpeta" Windows de la màquina host en el nostre
directori local, i accedim en l'arbre de directoris al següent:
/mnt/windows
3) A continuació, quan ja no estigui en ús, podem desmuntar el recurs amb
el següent:
smbumount /mnt/windows
Si no coneixem els recursos compartits, en podem obtenir una llista amb el
següent:
smbclient -L host
I també podem utilitzar smbclient //host/carpeta, que és un programa semblant
a un client FTP.
En cas de voler fer els sistemes de fitxers disponibles permanentment, o pro-
porcionar determinades configuracions particulars, podem estudiar l'ús de
mount directament (les utilitats smbxxxx l'utilitzen), ja sigui amb els sistemes
de fitxers (suportats en el nucli) smbfs o cifs, tenint en compte els paràmetres
(autenticació d'usuaris/grups Windows o altres paràmetres de servei) que hau-
rem d'aportar depenent del cas, i de la configuració Samba preexistent [Ste07],
i integrar els punts de muntatge a l'arrencada del sistema (configuració de /
etc/fstab, entre d'altres).
En el cas del servidor Samba, una vegada tinguem instal·lat tot el programari
Samba, haurem de configurar el servidor per mitjà del seu fitxer de configura-
ció. Segons la versió (o la distribució), aquest fitxer pot estar en /etc/smb.conf o
bé en /etc/samba/smb.conf. Les opcions mostrades aquí pertanyen a un Sam-
ba 3.x.x instal·lat sobre Debian. Altres versions poden tenir algunes modifica-
cions menys importants.
Durant la instal·lació dels paquets de programari, és habitual que ens pregun-
tin algunes dades sobre la seva configuració. En el cas de Samba, ens pregunta
pel grup de treball a què se servirà, i haurem de col·locar el mateix nom del
grup que en Windows. També ens pregunta si volem contrasenyes xifrades,
Nota
És important consultar sempreles pàgines man, o "manuals",que acompanyin les ordres iaplicacions Samba, o els fitxersde configuració.
GNUFDL • PID_00167524 35 Migració i coexistència amb sistemes no Linux
recomanables per seguretat (abans en els Windows 9x s'enviaven en text en
brut, en el que constitueix un exemple clar d'escassa seguretat i d'alta vulne-
rabilitat del sistema).
A continuació, passem a veure el procés de configuració del fitxer smb.conf.
Aquest fitxer té tres apartats principals:
1) Global (característiques bàsiques de funcionament per a tots els serveis).
2) Browser, Name Resolution, Domain Options (controla el que altres màquines
veuen dels nostres recursos i com actuem, si de client o servidor dels recursos
compartits per samba/cifs).
3) Share (controla què compartim).
També podem examinar el fitxer de configuració de Samba des d'aquestes sec-
cions, que són apartats del fitxer separats per indicacions com [nom_seccio].
Així apareixen les seccions [globals] amb les configuracions corresponents als
apartats 1 (Global) i 2 (Browser, Name Resolution, Domain Options) esmentats.
En l'apartat 3 (Share), podem trobar diferents seccions:
a) [homes]: una secció especial que ens indica no un servei, sinó una sèrie
de serveis destinats perquè cada usuari amb directori personal en Linux pu-
gui ser accessible a la Xarxa mitjançant Samba, amb autenticació prèvia de la
màquina client, que ens demanarà l'usuari corresponent i la contrasenya. Un
mètode senzill de configurar aquests serveis en entorns locals de mida petita/
mitjana és utilitzar els mateixos usuaris i contrasenyes tant en l'entorn Win-
dows com en Samba sobre Linux. Com veurem més endavant en els materials
d'administració avançada, en entorns més grans hi ha determinats mètodes
que ens permeten tenir sincronitzats els usuaris entre els dos entorns, o substi-
tuir completament mitjançant un servidor Samba Linux els serveis de directori
tipus ADS (Active Directory Service), que ens permetran controlar tots els usu-
aris i serveis de la xarxa homogènia dels dos entorns des del servidor Samba.
b) [printers]: una altra secció especial, que ens permet proporcionar serveis
d'impressió des de Samba per a totes les impressores definides en el sistema.
És una solució ràpida, que es pot fer alternativament per a cada impressora, si
només en volem proporcionar algunes de concretes o limitar-ne l'ús.
c) Finalment, apareixeran diferents seccions dedicades a cada servei que do-
nem d'alta i configurem [resource], en què definirem quin recurs proporcionem
i sota quines característiques individuals.
Aquesta configuració podria quedar així:
[global]
workgroup = GRUP
GNUFDL • PID_00167524 36 Migració i coexistència amb sistemes no Linux
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 aquest exemple ràpid de configuració ens proporcionen uns paràmetres
globals. Es desactiven els homes i en canvi es fan disponibles totes les impres-
sores en printers i un recurs de disc disponible denominat media, que és acces-
sible per a dos usuaris per a lectura i escriptura.
Vegem una configuració bàsica, pas per pas, del fitxer de configuració Samba.
Al manual (extens) d'aquest fitxer de configuració Samba es poden veure les
opcions disponibles (man smb.conf). Editarem el fitxer amb algun editor i ani-
rem veient algunes de les línies del fitxer (els caràcters '#' o ';' al principi de línia
són comentaris, si la línia conté ';' és un comentari; per a habilitar una línia,
si és alguna línia opcional de configuració, l'haurem d'editar i treure el ';' ):
workgroup = GRUP
Aquí està indicat el grup de treball Windows del qual les màquines Windows
clients seran membres.
server string = %h server (Samba %v)
Podem col·locar una descripció textual del nostre servidor. La h i la v que apa-
reixen són variables de Samba, que fan referència al nom de host i a la versió de
Samba. Per seguretat, és millor treure la v, ja que amb això s'informa a l'exterior
de quina versió de Samba tenim. Si hi ha errors de seguretat coneguts, això
es pot aprofitar.
GNUFDL • PID_00167524 37 Migració i coexistència amb sistemes no Linux
hosts allow = 192.168.1
Aquesta línia pot ser present o no, i la podem incloure per a habilitar quins
amfitrions seran servits; en aquest cas, tots els del rang 192.168.1.x.
printcap name = /etc/printcap
El fitxer printcap és on GNU/Linux desa la definició de les impressores, i és
aquí on Samba en buscarà la informació.
guest account = nobody
Aquest és el compte de "convidat". Podem crear un compte diferent, o només
habilitar l'accés a Samba als usuaris donats d'alta en el sistema GNU/Linux (o
usuaris que definim nous només per a Samba).
log file = /var/log/samba/log.%m
Aquesta línia ens diu on es desaran els fitxers del registre de sessió (log) de Sam-
ba. Se'n desa un per cada client (la variable m és el nom del client connectat).
encrypt passwords = true
És convenient, per seguretat, usar xifratge de contrasenyes (passwords) si tenim
màquines clients amb Windows 98, NT o superiors. Aquestes contrasenyes es
desen en un fitxer /etc/samba/smbpasswd, que es genera per als usuaris de
la instal·lació de Samba. Les contrasenyes es poden canviar amb la instrucció
smbpasswd. També hi ha una opció anomenada UNIX passwdord sync, que per-
met que el canvi sigui simultani per a les dues contrasenyes (usuari Samba i
usuari Linux).
A continuació, descriurem la secció Share Definitions:
[homes]
Aquestes línies permeten donar accés als comptes dels usuaris des de les mà-
quines Windows. Si no ho volem, afegim ';' a l'inici d'aquestes línies, i les mà-
quines, en connectar-se, veuran el nom comment. En principi, l'escriptura està
deshabilitada, i per a habilitar-la només cal posar yes en l'opció writable.
Qualsevol compartició d'un directori concret (en Samba se sol denominar par-
tició un grup de dades compartides), es farà com els exemples que apareixen
(vegeu, per exemple, la definició de compartir el CD-ROM en les línies que
comencen per [cdrom]). En path es col·loca la ruta d'accés.
Nota
Vegeu man smb.conf
GNUFDL • PID_00167524 38 Migració i coexistència amb sistemes no Linux
En el nostre cas, per exemple, posaríem un nom DADES a la partició en la ruta
/home/DADES, on havíem copiat el disc D de la màquina original Windows i
la ruta per defecte on es pot trobar, a més d'un alt nombre d'opcions que pot
modificar l'usuari.
També hi ha una definició [profiles] que permet controlar els perfils (profiles)
dels usuaris Windows, és a dir, el directori on es desa la seva configuració
d'escriptori Windows, el menú d'inici, etc.
El mètode és semblant per a les impressores: es fa una partició amb el nom
de la impressora (el mateix que s'hagi donat en GNU/Linux) i en la ruta per
defecte es col·loca l'adreça de la cua associada a la impressora (en GNU/Linux
la trobem en: /var/spool/samba/PRINTER). Utilitzarem l'opció printable = yes si
volem que s'enviïn treballs amb Samba. També es pot determinar quins usuaris
poden accedir (valid users).
Una vegada fets aquests canvis, només els hem de desar i reiniciar Samba per-
què llegeixi la nova configuració. En Debian:
/etc/init.d/samba restart
Ara, el nostre directori compartit i la impressora per a Samba estaran disponi-
bles, de manera que serveixin als usuaris sense que aquests no notin cap di-
ferència respecte a les connexions anteriors amb el servidor Windows.
Abans d'utilitzar la configuració Samba anterior, també la podem comprovar
amb la instrucció testparam, que verificarà que la configuració de Samba sigui
correcta, i a més ens assenyalarà els errors de configuració comesos. Respecte al
reinici de Samba, depenent de la distribució haurem de reiniciar els diferents
serveis, que en les últimes versions són els dimonis/serveis smb, nmb i winbind
(per exemple, en Fedora serà necessari reiniciar aquests tres serveis).
GNUFDL • PID_00167524 39 Migració i coexistència amb sistemes no Linux
Activitats
1. En la descripció de serveis GNU/Linux, es troba a faltar alguna funcionalitat? Quin altretipus de serveis afegiríeu?
2. En el segon cas d'estudi del taller (el de l'organització), com canviaríeu la infraestructurainformàtica si disposéssiu d'un pressupost de cost zero, un pressupost mitjà o un pressupostalt? Presenteu algunes solucions diferents de les exposades.
3. Les tecnologies de virtualització com VMware o VirtualBox són màquines virtuals per pro-gramari que permeten instal·lar operatius sobre un PC virtual. Se'n pot aconseguir una versióde demostració a http://www.vmware.com o http://www.virtualbox.org. Proveu (en cas quedisposeu d'una llicència Windows) d'instal·lar-la sobre Windows, i després un GNU/Linuxsobre el PC virtual (o al revés). Quins avantatges ens aporta aquest sistema de compartir elsoperatius? Quins problemes ocasiona?
4. Si disposeu de dues màquines per a instal·lar-hi un servidor Samba, podeu provar lainstal·lació o configuració del servidor en configuracions de client Samba UNIX – servidorWindows, o client Windows – servidor Samba en GNU/Linux. Ho podeu provar també enuna sola màquina, utilitzant la mateixa màquina com a servidor i client Samba.
GNUFDL • PID_00167524 40 Migració i coexistència amb sistemes no Linux
Bibliografia
[Ban] Banerjee, T. "Linux Installation Strategies HOWTO". The Linux Documentation Project.The Dot GNU Project. <http://www.gnu.org/software/dotgnu/>
[Gon] Gonzato, G. "From DOS/Windows to Linux HOWTO". The Linux Documentation Pro-ject.
[knp] Distribució Knoppix. <http://knoppix.org>
[LPD] LPD. The Linux Documentation Project. <http://www.tldp.org>.
Proporciona guies de diferents aspectes d'un sistema GNU/Linux i un conjunt de manualsmés elaborats.
[Mon] Monit. <http://www.tildeslash.com/monit/>
[Mor03] Morill, D. (2003). Configuración de sistemes Linux. Anaya Multimedia.
Bona referència de configuració de sistemes Linux, amb alguns casos d'estudi en diferentsentorns; comenta diferents distribucions Debian i 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>.
[Ste07] French, S. "Linux CIFS Client Guide". <http://us1.samba.org/samba/ftp/cifs-cvs/li-nux-cifs-client-guide.pdf>
[Sun02] Sundaram, R. (2002). "The dosemu HOWTO". The Linux Documentation Project.
[Ubn] Distribució Ubuntu. <http://www.ubuntu.com>
[War] Ward, I. "Debian and Windows Shared Printing mini-HOWTO". The Linux Documen-tation Project.
[Woo] Wood, D. "SMB HOWTO". The Linux Documentation Project.
Wine Project. <http://www.winehq.com/>
GNUFDL • PID_00167525 Administració local
© 2010, FUOC. Es garanteix el permís per a copiar, distribuir i modificar aquest document segons els termes de la GNU FreeDocumentation License, Version 1.2 o qualsevol altra de posterior publicada per la Free Software Foundation, sense seccionsinvariants ni textos de la coberta anterior o posterior. Hi ha una còpia de la llicència en l'apartat "GNU Free DocumentationLicense" d'aquest document.
GNUFDL • PID_00167525 Administració local
Índex
Introducció.................................................................................................. 5
1. Eines bàsiques per a l'administrador........................................... 7
1.1. Eines gràfiques i línies d'instruccions ......................................... 8
1.2. Documents d'estàndards ............................................................. 10
1.3. Documentació del sistema en línia ............................................ 12
1.4. Eines de gestió de paquets .......................................................... 14
1.4.1. Paquets TGZ ................................................................... 15
1.4.2. Fedora/Red Hat: paquets RPM ....................................... 17
1.4.3. Debian: paquets DEB ..................................................... 21
1.5. Eines genèriques d'administració ................................................ 25
1.6. Altres eines .................................................................................. 26
2. Distribucions: particularitats......................................................... 28
3. Nivells d'arrencada i serveis............................................................ 30
3.1. Upstart, un nou sistema ............................................................. 33
4. Observar l'estat del sistema............................................................ 35
4.1. Arrencada del sistema ................................................................. 35
4.2. Nucli: directori /proc .................................................................. 36
4.3. Nucli: /sys .................................................................................... 37
4.4. Processos ...................................................................................... 38
4.5. Registres del sistema ................................................................... 39
4.6. Memòria ...................................................................................... 40
4.7. Discos i sistemes d'arxius ............................................................ 41
5. Sistema de fitxers.............................................................................. 44
5.1. Punts de muntatge ...................................................................... 46
5.2. Permisos ....................................................................................... 49
6. Usuaris i grups.................................................................................... 50
7. Servidors d'impressió........................................................................ 54
7.1. BSD LPD ...................................................................................... 58
7.2. CUPS ............................................................................................ 59
8. Discos i gestió de filesystems........................................................... 61
8.1. RAID en programari .................................................................... 63
8.2. Volums lògics (LVM) ................................................................... 74
GNUFDL • PID_00167525 Administració local
9. Programari: actualització................................................................ 78
10. Feines no interactives....................................................................... 80
11. Taller: pràctiques combinades dels apartats.............................. 82
Activitats...................................................................................................... 91
Bibliografia................................................................................................. 92
GNUFDL • PID_00167525 5 Administració local
Introducció
Una de les primeres tasques amb què s'haurà d'enfrontar l'administrador serà
la gestió dels recursos locals presents a la màquina. En aquest mòdul veurem
algunes d'aquestes tasques d'administració bàsiques, i alguns dels aspectes de
personalització i rendiment dels recursos.
Abans de començar amb els aspectes més pràctics de l'administració, revisarem
algunes de les eines bàsiques de què disposarà l'administrador (algunes, com
els shell scripts, ja les hem revisades prèviament).
Posteriorment, analitzarem el procés d'arrencada d'un sistema GNU/Linux,
que ens farà comprendre l'estructura inicial del sistema i la seva relació amb
els serveis que proporciona.
A continuació, aprendrem com podem obtenir una visió general de l'estat ac-
tual del sistema per mitjà dels diferents procediments i instruccions de què
disposem per a avaluar les parts del sistema. D'aquesta manera, podrem pren-
dre decisions d'administració si detectem algun error o deficiència de rendi-
ment, o la falta d'algun recurs.
Un dels principals punts de l'administració és la gestió d'usuaris, ja que qual-
sevol configuració de la màquina estarà destinada perquè la puguin utilitzar.
Veurem com podem definir nous usuaris en el sistema i controlar el seu nivell
d'accés als recursos.
Quant als perifèrics del sistema, com discos i impressores, disposem de dife-
rents possibilitats de gestió, ja sigui via diferents servidors (el cas de la impres-
sió) o diferents sistemes d'arxius que podem tractar, i també algunes tècniques
d'optimització del rendiment dels discos.
També examinarem el problema de l'actualització del sistema, i també la no-
va incorporació de programari d'aplicació i com el podem fer disponible als
usuaris. Així mateix, analitzarem el problema d'executar treballs temporitzats
en el sistema.
En el taller final examinarem l'avaluació d'estat d'una màquina, seguint
els punts vistos en aquest mòdul, i durem a terme algunes de les tasques
d'administració bàsiques descrites. En el desenvolupament de la unitat comen-
tarem algunes instruccions i, posteriorment, en el taller, en veurem algunes
amb més detall respecte al funcionament i les opcions.
Nota
L'administració local englobamoltes tasques variades, quepotser són les més utilitzadesper l'administrador en el seutreball diari.
GNUFDL • PID_00167525 7 Administració local
1. Eines bàsiques per a l'administrador
L'administrador de sistemes GNU/Linux s'ha d'enfrontar, diàriament, a una
gran quantitat de tasques. En general, en la filosofia UNIX no hi sol haver una
única eina per a cada tasca o una sola manera de fer les coses. El més comú és
que els sistemes UNIX proporcionin una gran quantitat d'eines més o menys
simples per a afrontar les diferents tasques.
Serà la combinació de les eines bàsiques, cada una amb una tasca molt
definida, la que ens donarà la possibilitat de solucionar un problema o
tasca d'administració.
En aquest apartat veurem diferents grups d'eines, identificarem algunes de les
seves funcions bàsiques i veurem diversos exemples dels seus usos. Comença-
rem per examinar alguns estàndards del món GNU/Linux, que ens permetran
trobar algunes de les característiques bàsiques que esperem de qualsevol distri-
bució de GNU/Linux. Aquests estàndards, com l'LSB (o Linux Standard Base)
[Linc] i l'FHS (Filesystem Hierarchy Standard) [Linb], ens parlen d'eines que
esperem trobar disponibles, d'una estructura comuna per al sistema de fitxers,
i també de diferents normes que s'han de complir perquè una distribució si-
gui considerada un sistema GNU/Linux i mantingui regles comunes per a la
compatibilitat entre aquests estàndards.
En l'automatització de tasques d'administració se solen utilitzar ordres agru-
pades en shell scripts (també anomenats guions d'instruccions), mitjançant llen-
guatges interpretats pel shell (intèrpret d'instruccions) del sistema. En la pro-
gramació d'aquests shell scripts podem unir les ordres del sistema amb estruc-
tures de control de flux, i així disposar d'un entorn de prototip ràpid d'eines
per a l'automatització de tasques.
Un altre esquema habitual és la utilització d'eines de compilació i depuració de
llenguatges d'alt nivell (com per exemple C). En general, seran utilitzades per
l'administrador per a generar nous desenvolupaments d'aplicacions o eines, o
per a incorporar al sistema aplicacions que vinguin com a codi font i s'hagin
d'adaptar i compilar.
També analitzarem l'ús d'algunes eines gràfiques respecte a les habituals de la
línia d'instruccions. Aquestes eines solen facilitar les tasques a l'administrador,
però el seu ús és limitat, ja que depenen fortament de la distribució de GNU/
Linux, o fins i tot de cada versió. Tot i així, hi ha algunes eines útils que són
compartides entre distribucions.
GNUFDL • PID_00167525 8 Administració local
Finalment, analitzarem un grup d'eines imprescindibles per a mantenir el sis-
tema actualitzat: les eines de gestió de paquets. El programari servit en la dis-
tribució GNU/Linux, o incorporat posteriorment, se sol oferir en unitats de-
nominades paquets, que inclouen els arxius d'un determinat programari, més
passos necessaris per a la preparació de la instal·lació, la configuració posteri-
or o, si és el cas, l'actualització o desinstal·lació d'un determinat programari.
I cada distribució sol aportar programari de gestió per mantenir les llistes de
paquets instal·lats, o per instal·lar, i també el control de les versions existents,
o possibilitats diverses d'actualització per mitjà de diferents fonts d'origen.
1.1. Eines gràfiques i línies d'instruccions
Hi ha un gran nombre d'eines; en aquest mòdul i en els següents examinem
una petita porció de les eines d'administració que són proporcionades per ter-
cers de manera independent a la distribució o pel distribuïdor mateix del sis-
tema GNU/Linux.
Aquestes eines poden cobrir més o menys aspectes de l'administració d'una
tasca concreta, i es poden presentar amb múltiples interfícies diferents: ja si-
guin eines de línia d'instruccions amb múltiples opcions o fitxers de configu-
ració associats, o eines textuals amb algun tipus de menús elaborats, o bé eines
gràfiques amb interfícies més adequades per al maneig d'informació, o assis-
tents que automatitzin les tasques, o bé interfícies web d'administració.
Tot això ens ofereix un gran nombre de possibilitats amb vista a
l'administració, però sempre n'hem de valorar la facilitat d'ús juntament amb
les prestacions i els coneixements que tingui l'administrador que es dedica a
aquestes tasques.
Les tasques habituals de l'administrador GNU/Linux poden implicar treballar
amb diferents distribucions (per exemple, les que comentarem, Fedora [Fed]
o Debian [Debb], o qualsevol altra), o fins i tot es pot treballar amb variants
comercials de d'altres UNIX. Això comporta que hàgim d'establir una certa
manera de treballar que ens permeti fer les tasques de la mateixa manera en
els diferents sistemes.
Per aquesta raó, en els diferents apartats intentarem destacar tots aquells as-
pectes més comuns, i les tècniques d'administració seran fetes majoritàriament
a baix nivell, mitjançant una línia d'instruccions o amb edició de fitxers de
configuració associats.
Qualsevol de les distribucions de GNU/Linux sol aportar eines del tipus línia
d'instruccions, textual, o en particular, gràfiques, que complementen les an-
teriors i simplifiquen, en més o menys mesura, l'administració de les tasques
[Sm]. Però cal tenir en compte diverses puntualitzacions:
Funcionalitat
Les eines gràfiquesd'administració no solen oferiruna funcionalitat completa, iés interessant conèixer quinssón els efectes de les seves ac-cions.
GNUFDL • PID_00167525 9 Administració local
a) Aquestes eines són una interfície més o menys elaborada de les eines bàsi-
ques de línia d'instruccions i els fitxers de configuració corresponents.
b) Normalment no ofereixen totes les prestacions o configuracions que es po-
den fer a baix nivell.
c) Els errors poden no gestionar-se bé, o simplement proporcionar missatges
del tipus "la tasca no s'ha pogut fer".
d) L'ús d'aquestes eines oculta, de vegades completament, el funcionament
intern del servei o tasca. Comprendre bé el funcionament intern és un conei-
xement bàsic per a l'administrador, i més si ha de desenvolupar tasques de
correcció d'errors o optimització de serveis.
e) Aquestes eines són útils en la millora de la producció. Una vegada que
l'administrador té els coneixements adequats, pot gestionar amb aquestes de
manera més eficaç les tasques rutinàries i automatitzar-les.
f) O també el cas contrari, la tasca pot ser tan complexa, o necessitar tants
paràmetres, o generar tantes dades, que es torna impossible controlar-la de
manera manual. En aquests casos, les eines d'alt nivell poden ser molt útils i
tornar practicables algunes tasques que d'una altra manera són difícils de con-
trolar. Per exemple, dins d'aquesta categoria entrarien les eines de visualitza-
ció, monitoratge i resum d'activitats o serveis complexos.
g) En l'automatització de tasques, aquestes eines (de nivell més alt) poden no
ser les més adequades: poden no haver estat pensades per als passos que cal fer,
o bé fer-ho d'una manera no eficaç. Un cas concret pot ser la creació d'usuaris;
una eina visual pot ser molt atraient, per la manera d'introduir les dades, però
què succeeix quan en lloc d'introduir un o pocs usuaris volem introduir una
llista de desenes o centenars? L'eina, si no està preparada, es torna totalment
ineficient.
h) Finalment, els administradors solen voler personalitzar les seves tasques
utilitzant les eines que consideren més còmodes i fàcils d'adaptar. En aquest
aspecte, sol ser habitual la utilització de les eines bàsiques de baix nivell i la
utilització de shell scripts per a combinar-les de manera que formin una tasca.
Hem de saber valorar aquestes eines extra segons la vàlua que tinguin
per a les nostres tasques.
GNUFDL • PID_00167525 10 Administració local
Podem donar a aquestes eines un ús casual (o quotidià), si tenim els conei-
xements suficients per a tractar els errors que es puguin produir, o bé amb
l'objectiu de facilitar algun procés per al qual hagi estat pensada l'eina, però
sempre controlant les tasques que implementem i el coneixement tècnic sub-
jacent.
1.2. Documents d'estàndards
Els estàndards, ja siguin genèrics del món UNIX o particulars de GNU/Linux,
ens permeten seguir uns criteris bàsics, pels quals ens guiem en el moment
d'aprendre o fer una tasca, i que ens proporcionen informació bàsica per a
començar la nostra feina.
En GNU/Linux ens podem trobar estàndards com l'FHS (Filesystem Hie-
rarchy Standard) [Linb], que ens explica què podem trobar (o on ho
podem buscar) en l'estructura del sistema de fitxers del nostre sistema.
O l'LSB (Linux Standard Base), que ens comenta diferents components
que solem trobar en els sistemes [Linc].
En l'estàndard FHS (Filesystem Hierchachy Standard) es descriu l'estructura en
arbre del sistema de fitxers principal (/), en què s'especifica l'estructura dels
directoris i els principals fitxers que contindran. Aquest estàndard és usat en
més o menys mesura també per als UNIX comercials, en els quals al principi hi
va haver moltes diferències que van fer que cada fabricant canviés l'estructura
al seu gust. L'estàndard pensat en origen per a GNU/Linux es va fer per a nor-
malitzar aquesta situació i evitar canvis dràstics. Tot i així, l'estàndard és seguit
amb diferents graus; la majoria de distribucions segueixen en un alt percen-
tatge l'FHS, i fan canvis menors o aporten fitxers o directoris que no hi havia
en l'estàndard.
Un esquema bàsic de directoris podria ser:
• /bin: utilitats de base del sistema, normalment programes emprats pels
usuaris, des de les instruccions bàsiques del sistema (com /bin/ls, que fa
una llista de directoris), passant pels intèrprets d'ordres (/bin/bash), etc.
• /boot: arxius necessaris durant l'arrencada del sistema, per exemple la
imatge del nucli Linux, en /boot/vmlinuz.
• /dev: aquí trobem fitxers especials que representen els dispositius possi-
bles en el sistema. L'accés als perifèrics en sistemes UNIX es fa com si fossin
fitxers. Podem trobar fitxers com /dev/console, /dev/modem, /dev/mou-
se, /dev/cdrom, /dev/floppy..., que solen ser enllaços a dispositius més es-
pecífics del tipus de controlador o interfície que utilitzen els dispositius,
com /dev/mouse, enllaçat a /dev/psaux, que representa un ratolí de tipus
L'estàndard FHS
El Filesystem Hierchachy Stan-dard és una eina bàsica per alconeixement d'una distribu-ció, que ens permet conèixerl'estructura i funcionalitat delsistema d'arxius principal delsistema.Vegeu FHS a http://www.pathname.com/fhs
GNUFDL • PID_00167525 11 Administració local
PS2, o /dev/cdrom a /dev/hdc, un CD-ROM que és un dispositiu del segon
connector IDE i mestre. Aquí trobem els dispositius IDE com /dev/hdx,
els SCSI /dev/sdx... amb x que varia segons el número de dispositiu. Cal
esmentar que les últimes distribucions, respecte als dispositius de disc, su-
porten en el nucli emulació de dispositius IDE com si fossin SCSI; per això
és corrent veure avui dia tots els discos com a dispositius de tipus /dev/
sdx. Aquí es pot comentar que, en el seu inici, aquest directori era estàtic,
amb els fitxers predefinits, o configurats en determinats moments. Actu-
alment, s'utilitzen tecnologies dinàmiques (com hotplug, i principalment
udev), que permeten detectar dispositius i crear els arxius /dev dinàmica-
ment, bé a l'inici del sistema o durant l'execució, amb la inserció de dis-
positius extraïbles.
• /etc: fitxers de configuració. La majoria de tasques d'administració neces-
sitaran examinar o modificar els fitxers continguts en aquest directori. Per
exemple /etc/passwd conté part de la informació dels comptes dels usuaris
del sistema.
• /home: conté els comptes dels usuaris, és a dir, els directoris personals de
cada usuari.
• /lib: les biblioteques del sistema, compartides pels programes d'usuari, ja
siguin estàtiques (extensió .a) o dinàmiques (extensió .so). Per exemple, la
biblioteca C estàndard, en fitxers libc.so o libc.a. També, en particular, se
solen trobar els mòduls dinàmics del nucli Linux, en /lib/modules.
• /mnt: punt per a muntar (instrucció mount) sistemes de fitxers de manera
temporal, com /mnt/cdrom, per a muntar un disc al lector de CD-ROM
momentàniament.
• /media: per a punt de muntatge habitual de dispositius extraïbles.
• /opt: s'hi sol col·locar el programari afegit al sistema posterior a la
instal·lació. Una altra instal·lació vàlida és en /usr/local.
• /sbin: utilitats de base del sistema. Solen ser instruccions reservades a
l'administrador (root). Per exemple, /sbin/fsck per a verificar l'estat dels sis-
temes de fitxers.
• /tmp: fitxers temporals de les aplicacions o del sistema. Encara que són
per a l'execució temporal, entre dues execucions l'aplicació o servei no pot
assumir que trobarà els fitxers anteriors.
• /usr: diferents elements instal·lats en el sistema. Algun programari de sis-
tema més complet s'instal·la aquí, a més de complements multimèdia (ico-
nes, imatges, sons, per exemple en /usr/share) i la documentació del siste-
GNUFDL • PID_00167525 12 Administració local
ma (/usr/share/doc). També /usr/local se sol utilitzar per a instal·lar docu-
mentació o elements complementaris.
• /var: fitxers de registre de sessió o d'estat (fitxers de tipus log) o errors del
sistema i de diferents serveis, tant locals com de xarxa. Per exemple, fitxers
de sessió en /var/log, contingut dels correus en /var/spool/mail o treballs
d'impressió en /var/spool/lpd.
Aquests són alguns dels directoris definits en l'FHS per al sistema arrel; després
s'especifiquen algunes subdivisions, com el contingut dels /usr i /var i els fit-
xers de dades o executables típics que s'esperen trobar com a mínim en els
directoris (vegeu les referències en els documents FHS).
Respecte a les distribucions, Fedora o Red Hat segueix l'estàndard FHS molt de
prop. Només presenta alguns canvis en els arxius presents en /usr i /var. En
/etc hi sol haver un directori per component configurable, i hi ha algun direc-
tori especial, com /etc/sysconfig, en què es troba gran part de la configuració
de diversos serveis bàsics del sistema. En /opt i /usr/local no hi sol haver pro-
gramari instal·lat, tret que l'usuari l'instal·li. Debian, per la seva part, segueix
l'estàndard, encara que afegeix alguns directoris de configuració especials en
/etc.
Un altre estàndard en procés és l'LSB (Linux Standard Base) [Linc]. La idea
d'aquest és definir uns nivells de compatibilitat entre les aplicacions, bibliote-
ques i utilitats, de manera que sigui possible la portabilitat de les aplicacions
entre distribucions sense gaires problemes. A més de l'estàndard, proporcionen
conjunts de prova (tests) per a verificar el nivell de compatibilitat. LSB en si
mateix és un recopilatori de diversos estàndards aplicats a GNU/Linux.
1.3. Documentació del sistema en línia
Un dels aspectes més importants per a les nostres tasques d'administració
serà disposar de la documentació correcta per al nostre sistema i el programa-
ri instal·lat. Hi ha moltes fonts d'informació, entre les quals destacarem les
següents:
a)�man és l'ajuda per excel·lència. Ens permet consultar el manual de GNU/
Linux, que està agrupat en diverses seccions, corresponents a instruccions,
administració, formats de fitxers, instruccions d'usuari, crides de llenguatge
C, etc. Normalment, per a obtenir l'ajuda associada, tindrem suficient amb el
següent:
man instrucció
Nota
Sobre estàndardsd'especificacions vegeu: http://www.linuxfoundation.org/en/SpecificationsLSB: http://www.linuxfoundation.org/collaborate/workgroups/lsb
GNUFDL • PID_00167525 13 Administració local
Cada pàgina descriuria la instrucció juntament amb les seves opcions i aporta-
ria alguns exemples d'utilització. De vegades, hi pot haver més d'una entrada
al manual. Per exemple, és possible que hi hagi una crida C amb el mateix nom
que una instrucció. En aquest cas, cal especificar quina secció volem veure:
man n instrucció
n és el número de secció (per exemple, 2 per a les crides a sistema, o 3 per a
les rutines de la biblioteca C).
Hi ha també unes quantes eines d'exploració dels manuals, per exemple xman i
tkman, que mitjançant una interfície gràfica faciliten l'examen de les diferents
seccions, i també índexs de les instruccions (també els entorns KDE i Gnome
permeten en els seus ajuts accedir a les pàgines man). Una altra instrucció
interessant és apropos, paraula que ens permetrà localitzar pàgines man que
parlin d'un tema determinat (associat amb la paraula buscada).
b)�info és un altre sistema d'ajuda habitual. És un programa desenvolupat per
GNU per a la documentació de moltes de les seves eines. Es tracta d'una eina
textual en la qual els capítols i les pàgines es poden recórrer per mitjà d'un
sistema de navegació simple (basat en teclat).
c)�Documentació�de�les�aplicacions: a més de certes pàgines man, és habitu-
al incloure en les aplicacions documentació extra, ja sigui en forma de guies
d'usuari o manuals. Aquests components de documentació s'instal·len en el
directori /usr/share/doc (o /usr/doc, depenent de la distribució), en què es crea
un directori per paquet d'aplicació (en general, l'aplicació pot disposar de pa-
quets de documentació separadament).
d)�Sistemes�propis�de�les�distribucions. Red Hat sol venir amb uns CD de
manuals de consulta que són instal·lables en el sistema i tenen formats HTML
o PDF. Fedora disposa d'un projecte de documentació en el seu web. Debian
porta els manuals com un paquet de programari més i se solen instal·lar en
/usr/doc. D'altra banda, disposa d'eines que classifiquen la documentació pre-
sent en el sistema i l'organitzen per menús per a la visualització, com dwww
o dhelp, que presenten interfícies web per a examinar la documentació del sis-
tema.
e) Finalment, els�escriptoris�X, com Gnome i KDE, també porten sistemes de
documentació propis amb la seva documentació i manuals, i també informa-
ció per a desenvolupadors, ja sigui en forma d'ajuts gràfics en les seves aplica-
cions, o en aplicacions pròpies que recopilen els ajuts (per exemple, devhelp
per a Gnome).
GNUFDL • PID_00167525 14 Administració local
1.4. Eines de gestió de paquets
En qualsevol distribució, els paquets són l'element bàsic per a tractar les tas-
ques d'instal·lació de programari nou, l'actualització de l'existent o l'eliminació
del no utilitzat.
Bàsicament, un paquet és un conjunt de fitxers que formen una aplica-
ció o una unió de diverses aplicacions relacionades, formant un únic
fitxer (denominat paquet), amb un format propi i comprimit, que és el
que es distribueix, ja sigui via CD, disquet o mitjançant accés a serveis
d'FTP o web.
L'ús de paquets facilita afegir o treure programari, en considerar-ho una unitat
i no haver de treballar amb els fitxers individuals.
En el contingut de la distribució (els seus CD) els paquets solen estar agru-
pats per categories com a) base: paquets indispensables per al funcionament
del sistema (utilitats, programes d'inici, biblioteques de sistema); b) sistema:
utilitats d'administració, instruccions d'utilitat; c) desenvolupament (develo-
pement): utilitats de programació, com editors, compiladors, depuradors...; d)
gràfics: controladors i interfícies gràfiques, escriptoris, gestors de finestres, i e)
altres categories.
Per a la instal·lació d'un paquet, serà necessari efectuar una sèrie de passos:
1) Previ (preinstal·lació): comprovar que hi ha el programari necessari (i amb
les versions correctes) per al seu funcionament (dependències), ja sigui bibli-
oteques de sistema o altres aplicacions que siguin usades pel programari.
2) Descompressió del contingut del paquet, copiant els fitxers a les seves lo-
calitzacions definitives, ja siguin absolutes (tindran una posició fixa) o, si es
permet, resituades en altres directoris.
3) Postinstal·lació: retocar els fitxers necessaris, configurar possibles paràme-
tres del programari, adequar-lo al sistema...
Depenent dels tipus de paquets, aquests passos poden ser automàtics majo-
ritàriament (així és en el cas d'RPM [Bai03] i DEB [Deb02]). També potser es
necessita fer-los tots manuals (cas TGZ), depenent de les eines que proporcioni
la distribució.
Veurem, a continuació, potser els tres paquets més clàssics de la majoria de
distribucions. Cada distribució en té un per estàndard i suporta algun dels
altres.
GNUFDL • PID_00167525 15 Administració local
1.4.1. Paquets TGZ
Els paquets TGZ són potser els d'utilització més antiga. Les primeres distribu-
cions de GNU/Linux els utilitzaven per a instal·lar el programari, i encara els
usen diverses distribucions (per exemple, Slackware) i alguns UNIX comerci-
als. Són una combinació de fitxers units per la instrucció tar en un únic fitxer
.tar, que després ha estat comprimit per la utilitat gzip, i sol aparèixer amb
l'extensió .tgz o bé .tar.gz. Així mateix, avui dia és comú trobar els tar.bz2, que
utilitzen, en lloc de gzip, una altra utilitat anomenada bzip2 que, en alguns
casos, aconsegueix més compressió de l'arxiu.
Aquest tipus de paquet no conté cap tipus d'informació de dependèn-
cies, i pot presentar tant contingut d'aplicacions en format binari com
en codi font. Ho podem considerar com una espècie de col·lecció de
fitxers comprimida.
En contra del que pot semblar, aquest és un format molt utilitzat i, sobretot,
per creadors o distribuïdors de programari extern a la distribució. Molts cre-
adors de programari que treballen per a plataformes diverses, com diversos
UNIX comercials i diferents distribucions de GNU/Linux, ho prefereixen com
a sistema més senzill i portable.
Exemple
Un d'aquests casos és el projecte GNU, que distribueix el seu programari en aquest format(en forma de codi font), ja que es pot utilitzar en qualsevol UNIX, ja sigui un sistema depropietat, una variant BSD o una distribució GNU/Linux.
Si es tracta de format binari, haurem de tenir en compte que sigui adequat per
al nostre sistema; per exemple, sol ser comuna alguna denominació com la
que segueix (en aquest cas, la versió 1.4 del navegador web Mozilla):
mozilla-i686-pc-linux-gnu-1.4-installer.tar.gz
en què tenim el nom del paquet, Mozilla, i l'arquitectura a la qual està destinat
(i686, Pentium II o superiors o compatibles). Podria ser i386, i586, i686, k6
(AMD k6), k7 (AMD Athlon), amd64 o x86_64 (per a AMD64 i alguns Intel
de 64 bits), o ia64 (Intel Itanium). N'hi ha altres per a arquitectures d'altres
màquines, com sparc, powerpc, mips, hppa, alpha... Després ens indica que és
per a Linux, en una màquina PC, amb la versió del programari 1.4.
Si fos en format font, sol aparèixer com a:
mozilla-source-1.4.tar.gz
Nota
Els paquets TGZ són una ei-na bàsica a l'hora d'instal·larprogramari no organitzat i sónmolt útils per a fer processosde còpia de seguretat i restau-ració d'arxius.
GNUFDL • PID_00167525 16 Administració local
on ens indiquen la paraula source. En aquest cas, no esmenta la versió de
l'arquitectura de màquina, la qual cosa ens indica que està preparat (en prin-
cipi) per a compilar-se en diferents arquitectures.
D'una altra manera, hi hauria diferents codis per a cada sistema operatiu o
font: GNU/Linux, Solaris, Irix, BSD...
El procés bàsic amb aquests paquets consisteix en el següent:
1) Descomprimir el paquet (no solen utilitzar ruta absoluta, amb la qual cosa
es poden descomprimir en qualsevol directori):
tar -xzvf fitxer.tar.gz (o fitxer.tgz)
Amb la instrucció tar posem les opcions x (extreure fitxers), z (descomprimir),
v (veure els passos del procés) i f (donar nom del fitxer per tractar).
També es pot fer separadament (sense la z del tar):
gunzip fitxer.tar.gz
(ens deixa un fitxer tar)
tar -xvf fitxer.tar
2) Una vegada tenim descomprimit el tgz, tindrem els fitxers que contenia;
normalment, el programari ha d'incloure algun fitxer de tipus Readme o Ins-
tall, en què ens especificaran les opcions d'instal·lació pas per pas, i també
possibles dependències del programari.
En primer lloc, caldrà verificar les dependències (se solen indicar en el fitxer
amb els passos d'instal·lació), per si disposem del programari adequat. Si no,
l'haurem de buscar i instal·lar.
Si es tracta d'un paquet binari, la instal·lació sol ser bastant fàcil, ja que o bé
directament ja serà executable on l'hàgim deixat, o portarà algun instal·lador
propi. Una altra possibilitat serà que ho hàgim de fer manualment, i llavors
n'hi haurà prou de copiar (cp -r, còpia recursiva) o moure (instrucció mv) el
directori a la posició volguda.
Un altre cas és el format de codi font. En aquest, abans d'instal·lar el progra-
mari, haurem de fer un pas de compilació. Per a això caldrà llegir amb cert de-
tall les instruccions que porti el programa. Però la majoria de desenvolupadors
usen un sistema de GNU anomenat autoconf (d'autoconfiguració), en el qual
habitualment s'usen els passos següents (si no apareixen errors):
GNUFDL • PID_00167525 17 Administració local
a)�.�/configure: es tracta d'un script que configura el codi per a poder ser com-
pilat a la nostra màquina, i verifica que hi hagi les eines adequades. L'opció --
prefix = directori permet especificar on s'instal·larà el programari. Normalment,
se suporten moltes opcions addicionals de configuració segons el programari
(amb -help es mostren les que accepta).
b)�make: la compilació pròpiament dita.
c)�make�install: la instal·lació del programari a un lloc adequat, especificat
prèviament com a opció en el configure o assumida per defecte.
Aquest és un procés general, però depenent del programari se seguirà o no; hi
ha casos bastant pitjors, en què tot el procés s'ha de fer a mà, retocant fitxers
de configuració o el Makefile mateix, o compilant un per un els fitxers, però
això, per sort, és com més va menys habitual.
En cas de voler esborrar el programari instal·lat, caldrà utilitzar el
desinstal·lador si ens en proporcionen, o si no, esborrar directament el direc-
tori o els fitxers que es van instal·lar, anant amb compte amb les possibles
dependències.
Els paquets tgz són bastant habituals com a mecanisme de còpia de seguretat
en tasques d'administració, per exemple, per a desar còpies de dades impor-
tants, fer còpies de comptes d'usuari, o guardar còpies antigues de dades que
no sabem si tornarem a necessitar. Se sol utilitzar el procés següent: suposem
que volem guardar una còpia del directori dir; llavors executem tar -cvf dir.tar
dir (c per a compactar dir en el fitxer dir.tar) i gzip dir.tar (comprimir) o bé en
una sola instrucció com la següent:
tar -czvf dir.tgz dir
El resultat serà un fitxer dir.tgz. Cal ser acurat si ens interessa conservar els atri-
buts dels fitxers o els permisos d'usuari, i també possiblement fitxers d'enllaç
(links) que hi pugui haver (haurem d'examinar les opcions de tar perquè s'ajusti
a les opcions que volem).
1.4.2. Fedora/Red Hat: paquets RPM
El sistema de paquets RPM [Bai] creat per Red Hat representa un pas
endavant, ja que inclou la gestió de dependències i tasques de configu-
ració del programari. A més, el sistema desa una petita base de dades
amb els paquets ja instal·lats, que es pot consultar i s'actualitza amb les
noves instal·lacions.
GNUFDL • PID_00167525 18 Administració local
Els paquets RPM, per convenció, solen usar un nom com el següent:
paquet-versio-rev.arq.rpm
en què paquet és el nom del programari, versio és la numeració de versió del pro-
gramari, rev sol ser la revisió del paquet RPM, que indica les vegades que s'ha
construït, i arq, l'arquitectura a la qual va destinat el paquet, ja sigui Intel/AMD
(i386, i586, i686, x86_64, ia64) o altres com alpha, sparc, ppc... L'"arquitectura"
noarch se sol usar quan és independent de l'arquitectura, com, per exemple, un
conjunt de scripts, i src en el cas que es tracti de paquets de codi font. L'execució
típica inclou l'execució del programa rpm, amb les opcions de l'operació que
volem dur a terme, juntament amb els noms de paquets per processar junts.
Exemple
El paquet apache-1.3.19-23.i686.rpm indicaria que es tracta del programari Apache (elservidor web), en la seva versió 1.3.19, revisió del paquet RPM 23, per a arquitecturesPentium II o superiors.
Les operacions típiques amb els paquets RPM inclouen:
• Gestió�de�dependències: els paquets RPM incorporen la idea de gestió de
dependències i de base de dades dels paquets existents.
• Informació�del�paquet: es consulta sobre el paquet una informació de-
terminada, s'usa l'opció -q acompanyada del nom del paquet (amb -p si es
fa sobre un arxiu rpm). Si el paquet no ha estat instal·lat encara, l'opció
seria -q acompanyada de l'opció d'informació que es vulgui demanar, i si
es volen preguntar tots els paquets instal·lats alhora, l'opció seria -qa. Les
preguntes a un paquet instal·lat poden ser:
Consulta Opci-ons RPM
Resultats
Arxius rpm -ql Llista dels arxius que conté el paquet (passat com a paràmetre)
Informació rpm -qi Descripció del paquet
Requisits rpm -qR Requisits previs, biblioteques o programari
• Instal·lació: simplement rpm -i paquet.rpm, o bé amb l'URL en què es tro-
ba el paquet, per a descarregar-lo des de servidors FTP o web. Només cal
utilitzar la sintaxi ftp:// o http:// per a donar la localització del paquet. La
instal·lació es podrà fer sempre que s'estiguin complint les dependències
del paquet, ja sigui programari previ o biblioteques que haurien d'estar
instal·lades. En cas de no complir-lo, ens dirà quin programari falta, i el
nom del paquet que el proporciona. Es pot forçar la instal·lació (a risc que
no funcioni) amb les opcions --force o --nodeps, o simplement no fer cas de
la informació de les dependències. La tasca d'instal·lació (duta a terme per
rpm) d'un paquet comporta diferents subtasques:
GNUFDL • PID_00167525 19 Administració local
– Verificar les possibles dependències.
– Examinar conflictes amb altres paquets prèviament instal·lats.
– Fer tasques prèvies a la instal·lació.
– Decidir què cal fer amb els fitxers de configuració associats al paquet
si existien prèviament.
– Desempaquetar els fitxers i col·locar-los al lloc correcte.
– Fer tasques de postinstal·lació.
– Finalment, emmagatzemar el registre de les tasques fetes en la base de
dades d'RPM.
• Actualització: equivalent a la instal·lació, però comprovant primer que
el programari ja existeix; rpm -U paquet.rpm. S'encarregarà d'esborrar la
instal·lació prèvia.
• Verificació: durant el funcionament normal del sistema, molts dels arxius
instal·lats canvien. En aquest sentit, RPM permet verificar els arxius per a
detectar les modificacions, bé pel procés normal, bé per algun error que
podria indicar dades corrompudes. Mitjançant rpm -V paquet verifiquem
un paquet concret, i mitjançant rpm -Va els verifiquem tots.
• Eliminació: esborrar el paquet del sistema RPM (-e o --erase). Si hi ha de-
pendències, pot ser necessari eliminar-ne d'altres primer.
Exemple
Per a un cas remot:
rpm -i ftp://lloc/directori/paquet.rpm
ens permetria descarregar el paquet des del lloc FTP o web proporcionat, amb la sevalocalització de directoris, i procedir en aquest cas a la instal·lació del paquet.
Cal vigilar la procedència dels paquets, i només utilitzar fonts de paquets cone-
gudes i fiables, ja sigui del fabricant mateix de la distribució o de llocs en què
confiem. Tenim juntament amb els paquets alguna "signatura" digital perquè
en puguem comprovar l'autenticitat; se solen utilitzar les sumes md5 per a
comprovar que el paquet no s'ha alterat, i altres sistemes com GPG (versió
GNU de PGP) per a comprovar l'autenticitat de l'emissor del paquet. Hi ha
també a Internet diferents magatzems de paquets RPM, en què estan disponi-
bles per a diferents distribucions que usin o permetin el format RPM.
Per a un ús segur de paquets, els repositoris (oficials, i alguns de tercers) firmen
electrònicament els paquets, per exemple amb el GPG esmentat. Això ens per-
met assegurar (si disposem de les firmes) que els paquets procedeixen de la font
Nota
Vegeu el llocwww.rpmfind.net
GNUFDL • PID_00167525 20 Administració local
fiable. Cada proveïdor (el repositori) inclou uns fitxers de firma PGP amb la
clau per al seu lloc. Les dels repositoris oficials ja es troben instal·lades, i de les
de tercers haurem d'obtenir el fitxer de clau, i incloure-la en RPM, típicament:
$ rpm --import GPG-KEY-FILE
GPP-KEY-FILE és el fitxer clau GPG o l'URL del fitxer esmentat; aquest fitxer
també tindrà suma md5 per a comprovar-ne la integritat. Podem conèixer les
claus existents en el sistema amb el següent:
$ rpm -qa | grep ^gpg-pubkey
Podem observar més detalls a partir de la clau obtinguda:
$ rpm -qi gpg-key-xxxxx-yyyyy
Per a un paquet rpm concret podrem comprovar si disposa de firma i quina
s'ha utilitzat:
$ rpm --checksig -v <paquet>.rpm
I per a verificar que un paquet és correcte partint de les firmes disponibles, es
pot comprovar amb:
$ rpm -K < paquet >.rpm
Hem de ser acurats en importar només aquelles claus dels llocs en què confiem.
Quan RPM trobi paquets amb firma que no tinguem en el nostre sistema, o el
paquet no estigui firmat, ens avisarà, i l'acció ja dependrà de la nostra actuació.
Quant al suport RPM en les distribucions, en Fedora (Red Hat, i també en les
seves derivades), RPM és el format per defecte de paquets i el que usa àmplia-
ment la distribució per a les actualitzacions i la instal·lació de programari. En
Debian s'utilitza el format denominat DEB (com veurem), hi ha suport per a
RPM (existeix la instrucció rpm), però només per a consulta o informació de
paquets. En el cas que sigui imprescindible instal·lar un paquet rpm en Debian,
es recomana utilitzar la utilitat alien, que permet convertir formats de paquets,
en aquest cas d'RPM a DEB, i procedir a la instal·lació amb el paquet convertit.
A més del sistema base d'empaquetament de la distribució, avui dia cada una
sol aportar un sistema de gestió de programari intermedi de nivell més alt,
que afegeix una capa superior al sistema base, facilita les tasques de gestió del
programari i afegeix una sèrie d'utilitats per a controlar millor el procés.
GNUFDL • PID_00167525 21 Administració local
En el cas de Fedora (Red Hat i derivats) s'utilitza el sistema YUM, que permet,
com a eina de nivell més alt, la instal·lació i gestió de paquets en sistemes RPM,
i també la gestió automàtica de dependències entre els paquets. Facilita l'accés
a múltiples repositoris diferents, centralitza la seva configuració en un fitxer
(/etc/yum.conf habitualment) i té una interfície d'instruccions simple.
La configuració de YUM es basa en:
/etc/yum.config (fitxer d'opcions)
/etc/yum (directori per a algunes utilitats associades)
/etc/yum.repos.d (directori d'especificació de repositoris, un fitxer per a cada un,
s'inclou informació de l'accés i localització de les firmes GPG).
Per a les operacions típiques de YUM, un resum seria:
Ordre Descripció
yum install <nom> Instal·la el paquet amb el nom
yum update <nom> Actualitza un paquet existent
yum remove <nom> Elimina un paquet
yum list <nom> Busca un paquet per nom (només nom)
yum search <nom> Busca més àmpliament
yum provices <arxiu> Busca paquets que proporcionin el fitxer
yum update Actualitza tot el sistema
yum upgrade Igual que l'anterior incloent-hi paquets addicionals
Per finalitzar, Fedora també ofereix un parell d'utilitats gràfiques per a YUM,
pup per a controlar les actualitzacions recents disponibles i pirut com a paquet
de gestió de programari (en noves versions de Fedora, s'han substituït per gpk-
update-viewer i gpk-application). També n'hi ha algunes altres com yumex, amb
més control de la configuració interna de YUM.
1.4.3. Debian: paquets DEB
Debian té eines interactives com tasksel, que permet escollir uns subconjunts
de paquets agrupats per tipus de tasques: paquets per a X, per a desenvolupa-
ment, per a documentació, etc.; o com dselect, que facilita navegar per tota
la llista de paquets disponible (n'hi ha milers) i escollir aquells que vulguem
instal·lar o desinstal·lar. De fet, aquestes són només una interfície del gestor
de programari de nivell intermedi APT (equivalent al YUM a Fedora).
Nota
Vegeu el YUM a http://yum.baseurl.org/
GNUFDL • PID_00167525 22 Administració local
En el nivell de línia d'instruccions disposa de dpkg, que és la instrucció de més
baix nivell (seria l'equivalent a rpm), per a gestionar directament els paquets
DEB de programari [Deb], típicament dpkg -i paquet.deb per a fer la instal·lació.
Es poden dur a terme tot tipus de tasques, d'informació, instal·lació, esborra-
ment o canvis interns en els paquets de programari.
El nivell intermedi (com el cas de YUM a Fedora) el presenten les eines APT
(la majoria són instruccions apt-xxx). APT permet gestionar els paquets per
mitjà d'una llista de paquets actuals i disponibles a partir de diverses fonts
de programari, ja sigui des dels CD de la instal·lació, llocs FTP o web (HTTP).
Aquesta gestió es fa de manera transparent, i el sistema és independent de les
fonts de programari.
La configuració del sistema APT s'efectua des dels arxius disponibles en /etc/
apt, en què /etc/apt/sources.list és la llista de fonts disponibles. Podria ser, per
exemple:
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 el qual hi ha recopilades diverses de les fonts "oficials" per a una Debian
(stable en aquest cas), des d'on es poden obtenir els paquets de programari, i
també les actualitzacions que estiguin disponibles. Bàsicament, s'especifica el
tipus de font (Web/FTP en aquest cas), el lloc, la versió de la distribució (stable),
i les categories del programari que es buscarà (lliure, o contribucions de tercers
o de llicència no lliure o comercial).
Els paquets de programari estan disponibles per a les diferents versions de la
distribució Debian. Hi ha paquets per a les versions stable, testing i unstable. L'ús
d'uns o d'altres determina el tipus de distribució (amb canvi previ de les fonts
de repositoris en sources.list). Es poden tenir fonts de paquets barrejades, però
no és gaire recomanable, ja que es podrien donar conflictes entre les versions
de les diferents distribucions.
Una vegada tenim les fonts de programari configurades, la principal eina per
a manejar-les en el nostre sistema és apt-get, que ens permet instal·lar, actua-
litzar o esborrar des del paquet individual fins a poder actualitzar la distribu-
ció sencera. Hi ha també una interfície a apt-get, anomenada aptitude, la in-
terfície d'opcions del qual és pràcticament igual (de fet, es podria qualificar
d'emulador d'apt-get, ja que la interfície és equivalent). Com a avantatge, apor-
ta una gestió millor de dependències dels paquets, i algoritmes per a solucio-
nar els conflictes de paquets que poden aparèixer. De fet, en les últimes versi-
ons de Debian, aptitude és la interfície per defecte en línia d'instruccions per
a la gestió de paquets.
Un sistema molt potent
Els paquets DEB de Debian sónpotser el sistema d'instal·laciómés potent existent en GNU/Linux. Una de les seves presta-cions més destacables és la in-dependència del sistema de lesfonts dels paquets (mitjançantAPT).
GNUFDL • PID_00167525 23 Administració local
Algunes funcions bàsiques d'apt-get són:
1) Instal·lació d'un paquet particular:
apt-get install paquet
2) Esborrament d'un paquet:
apt-get remove paquet
3) Actualització de la llista de paquets disponibles:
apt-get update
4) Actualització de la distribució; podríem efectuar els passos combinats:
apt-get update
apt-get upgrade
apt-get dist-upgrade
Mitjançant aquest últim procés, podem mantenir la nostra distribució actua-
litzada permanentment, actualitzant els paquets instal·lats i verificant les de-
pendències amb els nous. Una eina útil per a construir aquesta llista és apt-
spy, que intenta buscar els llocs oficials més ràpids, o netselect, que ens per-
met provar una llista de llocs. D'altra banda, podem buscar les fonts oficials
(configurar-les amb apt-setup), o bé copiar algun fitxer de fonts disponible.
El programari addicional (de tercers) pot necessitar afegir altres fonts més (a
/etc/apt/sources.list); es poden obtenir llistes de llocs de fonts disponibles (per
exemple, en http://www.apt-get.org).
L'actualització del sistema en particular genera una descàrrega d'un gran nom-
bre de paquets (en especial en unstable), i es fa recomanable buidar la memò-
ria cau, el repositori local, amb els paquets descarregats (es mantenen en /var/
cache/apt/archive) que ja no s'hagin d'utilitzar, bé amb apt-get clean, per a eli-
minar-los tots, o bé amb apt-get autoclean, per a eliminar aquells paquets no
necessaris perquè ja hi ha noves versions i ja no seran necessaris (en principi).
Cal tenir en compte que no tornem a necessitar aquests paquets per raons de
reinstal·lació, perquè en aquest cas els hauríem de tornar a descarregar.
El sistema APT també permet el que es denomina SecureAPT, que és la gestió
segura de paquets mitjançant verificació de sumes (md5) i la firma de fonts de
paquets (de tipus GPG). Si durant la descàrrega no estan disponibles les firmes,
apt-get n'informa i genera una llista amb els paquets no firmats, i demana si
es deixen instal·lar o, no, i en deixa la decisió a l'administrador. S'obté la llista
de fonts confiables actuals amb:
GNUFDL • PID_00167525 24 Administració local
# apt-key list
Les claus GPG dels llocs oficials de Debian són distribuïdes mitjançant un pa-
quet. Les instal·lem:
apt-get install debian-archive-keyring
evidentment considerant que tenim sources.list amb els llocs oficials. S'espera
que per defecte (depenent de la versió de Debian) aquestes claus ja s'instal·lin
amb la instal·lació inicial del sistema. Per a altres llocs no oficials (que no
proporcionin la clau en paquet), però que considerem confiables, en podem
importar la clau, obtenint-la des del repositori (haurem de consultar on tenen
la clau disponible, no hi ha un estàndard definit, encara que sol ser a la pàgina
web inicial del repositori). S'utilitza apt-key add amb el fitxer, per a afegir la
clau, o també:
# gpg --import arxiu.key
# gpg --export --armor XXXXXXXX | apt-key add -
X és un nombre hexadecimal relacionat amb la clau (vegeu les instruccions
del repositori per a comprovar la manera recomanada d'importar la clau i les
dades necessàries).
Una altra funcionalitat important del sistema APT són les funcions de consulta
d'informació dels paquets, amb l'eina apt-cache, que ens permet interactuar
amb les llistes de paquets de programari Debian.
Exemple
L'eina apt-cache disposa d'instruccions que ens permeten buscar informació sobre els pa-quets, com per exemple:
1) Buscar paquets sobre la base d'un nom incomplet:
apt-cache search nom
2) Mostrar la descripció del paquet:
apt-cache show paquet
3) De quins paquets depèn:
apt-cache depends paquet
Una altra eina o funcionalitat d'APT interessant és apt-show-versions, que ens
especifica quins paquets poden ser actualitzats (i per quines versions, vegeu
l'opció -u).
Altres tasques més específiques es necessitaran fer amb l'eina de nivell més
baix, dpkg. Es pot obtenir, per exemple, la llista d'arxius d'un paquet determinat
ja instal·lat:
GNUFDL • PID_00167525 25 Administració local
dpkg -L paquet
O la llista de paquets sencera amb:
dpkg -l
O buscar de quin paquet prové un element (fitxer, per exemple):
dpkg -S fitxer
Aquest en particular funciona per a paquets instal·lats; apt-file permet també
buscar per a paquets encara no instal·lats.
Finalment, es poden esmentar també algunes eines gràfiques per a APT, com
Synaptic, Gnome-apt per a Gnome (o gnome-app-install i update-manager per a
versions recents), i Kpackage o Adept per a KDE. O les textuals ja esmentades,
com aptitude o dselect.
En conclusió, es pot destacar que el sistema de gestió APT (en combinació amb
el base dpkg) és molt flexible i potent a l'hora de gestionar les actualitzacions,
i és el sistema de gestió de paquets usat a Debian i les seves distribucions deri-
vades, com Ubuntu, Kubuntu, Knoppix, Linex, etc.
1.5. Eines genèriques d'administració
En el camp de l'administració, també podríem considerar algunes eines, com
les pensades de manera genèrica per a l'administració. Es pot indicar, però,
que per a aquestes eines és difícil mantenir-se al dia, a causa dels plans actuals
de versions de les distribucions, amb evolució molt ràpida. Algunes d'aquestes
eines (encara que en un moment determinat poden no ser funcionals al com-
plet en una distribució donada) són:
a)�Webmin: és una eina d'administració pensada des d'una interfície web. Fun-
ciona amb una sèrie de connectors que es poden afegir per a cada servei per
administrar i té formularis en què s'especifiquen els paràmetres de configura-
ció dels serveis. A més, ofereix la possibilitat (si s'activa) de permetre adminis-
tració remota des de qualsevol màquina amb navegador.
b) Altres en desenvolupament, com cPanel, ISPConfig...
D'altra banda, els entorns d'escriptori Gnome i KDE solen disposar del con-
cepte de centre de control, que permet gestionar tant l'aspecte visual de les in-
terfícies gràfiques com tractar alguns paràmetres dels dispositius del sistema.
Quant a les eines gràfiques individuals d'administració, la distribució de GNU/
Linux mateixa n'ofereix algunes directament (eines que acompanyen tant
Gnome com KDE), eines dedicades a gestionar un dispositiu (impressores, so,
Nota
Podeu trobar aquesta eina aWebmin, www.webmin.com
GNUFDL • PID_00167525 26 Administració local
targeta de xarxa, etc.) i altres per a l'execució de tasques concretes (connexió a
Internet, configurar l'arrencada de serveis del sistema, configurar X Window,
visualitzar registres...). Moltes són simples frontends (o caràtules) a les eines
bàsiques de sistema, o bé estan adaptades a particularitats de la distribució.
Es pot destacar, en especial en aquest apartat, la distribució Fedora (Red Hat i
derivats), que intenta disposar de diferents utilitats (més o menys minimalis-
tes) per a diferents funcions d'administració. Les podem trobar a l'escriptori
(al menú d'administració), o en instruccions com system-config-xxxxx per a di-
ferents funcionalitats com la gestió de pantalla, la impressora, la xarxa, la se-
guretat, els usuaris, els paquets, etc. En podem veure algunes a la figura:
Figura 1. Algunes utilitats gràfiques d'administració en Fedora.
1.6. Altres eines
En l'espai limitat d'aquesta unitat no es poden arribar a comentar totes aque-
lles eines que ens poden aportar beneficis per a l'administració. Esmentarem
algunes de les eines que podríem considerar bàsiques:
• Les�múltiples�instruccions�d'utilitats�UNIX�bàsiques: grep, awk, sed, find,
diff, gzip, bzip2, cut, sort, df, du, cat, more, file, which...
• Els�editors, imprescindibles per a qualsevol tasca d'edició; tenim editors
com vi, molt utilitzat en tasques d'administració per la rapidesa d'efectuar
petits canvis als fitxers. Vim és l'editor compatible amb vi que sol por-
tar GNU/Linux. Permet sintaxi acolorida en diversos llenguatges. L'Emacs,
editor molt complet, adaptat a diferents llenguatges de programació (sin-
taxi i modes d'edició), disposa d'un entorn molt complet i d'una versió X
Nota
Consulteu les pàgines man deles instruccions, o una referèn-cia d'eines com [Stu01].
GNUFDL • PID_00167525 27 Administració local
denominada XEmacs. Joe és un editor compatible amb Wordstar. I molts
d'altres...
• Llenguatges�de�tipus�script, útils per a administració, com Perl, molt ade-
quat per a tractament d'expressions regulars i anàlisi de fitxers (filtratge,
ordenació, etc.); PHP, llenguatge molt utilitzat en entorns web; Python,
un altre llenguatge que permet fer prototips ràpids d'aplicacions...
• Eines�de�compilació�i�depuració�de�llenguatges�d'alt�nivell: GNU GCC
(compilador de C i C++, entre d'altres), GDB (depurador), XXGDB (interfí-
cie X per a GDB), DDD (depurador per a diversos llenguatges).
GNUFDL • PID_00167525 28 Administració local
2. Distribucions: particularitats
Intentem destacar ara algunes diferències tècniques menors (que com més va
es redueixen més) en les distribucions (Fedora/Red Hat i Debian) [Mor03] uti-
litzades, que anirem veient amb més detall al llarg de les unitats, a mesura que
vagin apareixent.
Canvis o particularitats de Fedora/Red Hat:
• Ús�del�gestor�d'arrencada�GRUB (una utilitat GNU). A diferència de ver-
sions anteriors de la majoria de distribucions, que solen usar LILO, Fedora
utilitza GRUB. GRUB (Grand Unified Bootloader) té una configuració en
mode text (normalment en /boot/grub/grub.conf) bastant senzilla, i que
es pot modificar en l'arrencada. És potser més flexible que LILO. Última-
ment les distribucions tendeixen a l'ús de GRUB; Debian també l'inclou
ja per defecte.
• Gestió�d'alternatives. En el cas que hi hagi més d'un programari equiva-
lent present per a una tasca concreta, mitjançant un directori (/etc/alter-
natives) s'indica quina és l'alternativa que s'usa. Aquest sistema es va aga-
far de Debian, que en fa un ús ampli en la seva distribució.
• Programa�d'escolta�de�ports�TCP/IP�basat�en�xinetd. En /etc/xinetd.d
podem trobar, de manera modular, els fitxers de configuració per a al-
guns dels serveis TCP/IP, juntament amb el fitxer de configuració /etc/
xinetd.conf. En els sistemes UNIX clàssics, el programa utilitzat és l'inetd,
que tenia un únic fitxer de configuració en /etc/inetd.conf, com el cas, per
exemple, de la distribució Debian, que utilitza inetd, i deixa xinetd com a
opció.
• Alguns� directoris� de� configuració� especials: /etc/profile.d, arxius que
s'executen quan un usuari obre un intèrpret d'ordres; /etc/xinetd.d, con-
figuració d'alguns serveis de xarxa; /etc/sysconfig, dades de configuració
de diversos aspectes i serveis del sistema; /etc/cron., diversos directoris en
què s'especifiquen treballs per fer periòdicament (mitjançant crontab); /
etc/pam.d, en què pam són els denominats mòduls d'autenticació, en cada
un dels arxius del qual es configuren permisos per al programa o servei
particular; /etc/logrotate.d, configuració de rotació (quan cal netejar, com-
primir, etc.) d'alguns dels fitxers de registre per a diferents serveis.
• Disposa�d'un�programari�anomenat�kudzu, en algunes de les versions
prèvies de Fedora, i en Red Hat empresarial, que examina el maquinari
en arrencada per a detectar possibles canvis de configuració i generar els
Nota
És important conèixer els de-talls d'una distribució, ja quepoden ser bàsics per a resoldreuna tasca o accelerar-ne la so-lució (per exemple, si disposad'eines pròpies addicionals es-pecialitzades per a alguna tas-ca).
GNUFDL • PID_00167525 29 Administració local
dispositius o configuracions adequats, encara que s'està migrant progres-
sivament a l'API HAL, que controla precisament aquest tema.
En el cas de Debian:
• Sistema�d'empaquetament�propi�basat�en�els�paquets�DEB, amb eines
de diversos nivells per a treballar amb els paquets com: dpkg, apt-get, dselect,
tasksel.
• Debian�segueix�l'FHS, sobre l'estructura de directoris, i afegeix alguns di-
rectoris particulars en /etc, com per exemple: /etc/default, arxius de con-
figuració, i valors per defecte per a alguns programes; /etc/network, dades
i guions de configuració de les interfícies de xarxa; /etc/dpkg i /etc/apt,
informació de la configuració de les eines de gestió de paquets; /etc/alter-
natives, enllaços als programes per defecte, en aquells en què hi ha (o hi
pot haver) diverses alternatives disponibles.
• Sistema�de�configuració de molts paquets de programari per mitjà de
l'eina dpkg-reconfigure. Per exemple:
dpkg-reconfigure gdm
permet escollir el gestor d'entrada per a X Window, o:
dpkg-reconfigure X-Window-system
ens permet configurar els diferents elements d'X Window.
• Utilitza�configuració�de�serveis�TCP/IP�per�inetd, amb la configuració en
el fitxer /etc/inetd.conf. Disposa d'una eina update-inetd per a inhabilitar
o crear entrades de serveis.
• Alguns directoris de configuració especials: /etc/cron, diversos directoris
en què s'especifiquen treballs per fer periòdicament (mitjançant crontab);
/etc/pam.d, en què pam són mòduls d'autenticació.
GNUFDL • PID_00167525 30 Administració local
3. Nivells d'arrencada i serveis
Un primer punt important en l'anàlisi del comportament local del sistema
és el seu funcionament en els anomenats nivells d'execució (o runlevels), que
determinen (en el nivell) el mode actual de treball del sistema i els serveis que
es proporcionen [Wm02].
Un servei és una funcionalitat proporcionada per la màquina, normalment
basada en dimonis (o processos en segon pla d'execució, que controlen peti-
cions de xarxa, activitat del maquinari, o altres programes que proveeixin al-
guna tasca).
L'activació o parada de serveis es fa mitjançant la utilització de scripts. La ma-
joria dels serveis estàndard, que solen tenir la seva configuració en el direc-
tori /etc, se solen controlar mitjançant els scripts presents en /etc/init.d/. En
aquest directori solen aparèixer scripts amb noms similars al servei als quals
estan destinats, i se solen acceptar paràmetres d'activació o parada. Es fa:
/etc/init.d/servei start
Arrencada del servei.
/etc/init.d/servei stop
Parada del servei.
/etc/init.d/servei restart
Aturada i arrencada posterior del servei.
Quan un sistema GNU/Linux arrenca, primer es carrega el nucli del siste-
ma, i després s'inicia el primer procés, denominat init, que és el responsa-
ble d'executar i activar la resta del sistema, mitjançant la gestió dels nivells
d'execució (o runlevels).
Un nivell d'execució és senzillament una configuració de programes i
serveis que s'executaran orientats a un determinat funcionament.
Els nivells típics solen ser (hi pot haver diferències en l'ordre, en especial en
els nivells 2-5; a la taula hi ha la configuració en Fedora, i la recomanada per
l'estàndard LSB):
GNUFDL • PID_00167525 31 Administració local
Runlevel Funció Descripció
0 Parada Finalitza serveis i programes actius, i també desmunta sistemes d'arxius actius i parala CPU.
1 Monousuari Finalitza la majoria de serveis, i permet només l'entrada de l'administrador (root).S'usa per a tasques de manteniment i correcció d'errors crítics.
2 Multiusuari sense xarxa No s'inicien serveis de xarxa, i permet només entrades locals en el sistema.
3 Multiusuari Inicia tots els serveis excepte els gràfics associats a X Window.
4 Multiusuari No se sol usar, típicament és igual que el 3.
5 Multiusuari X Igual que el 3, però amb suport X per a l'entrada d'usuaris (connexió gràfica).
6 Reinici Para tots els programes i serveis. Reinicia el sistema.
Al contrari, es pot assenyalar que Debian usa un model en què pràcticament
els nivells 2-5 són equivalents, i fan exactament la mateixa funció (encara que
podria ocórrer que en alguna versió això canviï per coincidir amb l'estàndard
LSB).
Aquests nivells solen estar configurats en els sistemes GNU/Linux (i UNIX) per
dos sistemes diferents: el BSD i el System V (de vegades abreujat com a sysV).
En el cas de Fedora i Debian, s'utilitza el sistema System V, que és el que mos-
trarem, però d'altres UNIX i alguna distribució GNU/Linux (com Slackware)
utilitzen el model BSD.
En el cas del model runlevel de System V, quan el procés init arrenca, utilitza un
fitxer de configuració anomenat /etc/inittab per a decidir el mode d'execució
en el qual entrarà. En aquest fitxer es defineix el runlevel per defecte (initdefault)
en arrencada (per a la instal·lació per defecte, en Fedora el 5, en Debian el 2) i
una sèrie de serveis de terminal per activar per a atendre l'entrada de l'usuari.
Després, el sistema, segons el runlevel escollit, consulta els fitxers continguts
en /etc/rcn.d, en què n és el número associat al runlevel (nivell escollit), en el
qual es troba una llista de serveis per activar o parar en cas que arrenquem
en el runlevel o l'abandonem. Dins del directori trobarem una sèrie de scripts
o enllaços als scripts que controlen el servei.
Cada script té un nom relacionat amb el servei, una S o K inicial que indica
si és l'script per a iniciar (S) o matar (K) el servei, i un número que reflecteix
l'ordre en el qual s'executaran els serveis.
Una sèrie d'instruccions de sistema serveixen d'ajuda per a manejar els nivells
d'execució. Es poden esmentar:
• Els�scripts, que ja hem vist, en /etc/init.d/ ens permeten arrencar, parar o
reiniciar serveis individuals.
GNUFDL • PID_00167525 32 Administració local
• telinit ens deixa canviar de nivell d'execució; només n'hem d'indicar el
número. Per exemple, necessitem fer una tasca crítica en root; sense usua-
ris treballant, podem fer un telinit 1 (també es pot usar S) per a passar a
runlevel monousuari, i després de la tasca un telinit 3 per a tornar a mul-
tiusuari. També es pot utilitzar la instrucció init per a la mateixa tasca, en-
cara que telinit aporta algun paràmetre extra. Per exemple, el reinici típic
d'un sistema UNIX es feia amb sync; sync; sync; init 6. La instrucció sync
força el buidatge de les memòries intermèdies del sistema d'arxius, i després
reiniciem en runlevel 6.
• shutdown permet parar ('-h' de halt) o reiniciar el sistema ('–r' de reboot).
Es pot donar un interval de temps o fer-ho immediatament. Per a aquestes
tasques també hi ha les instruccions halt i reboot.
• wall permet enviar missatges d'advertència als usuaris del sistema. Con-
cretament, l'administrador pot anunciar que es pararà la màquina en un
determinat moment. Instruccions com shutdown el solen utilitzar de ma-
nera automàtica.
• pidof permet esbrinar el PID (process ID) associat a un procés. Amb ps obte-
nim la llista de processos, i si volem eliminar un servei o procés mitjançant
kill, en necessitarem el PID.
Respecte a tot el model d'arrencada, les distribucions presenten algun petit
canvi:
• Fedora/Red�Hat: el runlevel 4 no té un ús declarat. Els directoris /etc/rcn.d
existeixen com a enllaços cap a subdirectoris de /etc/rc.d, on són centra-
litzats els scripts d'arrencada. Els directoris són, així: /etc/rc.d/rcn.d; però
com que hi ha els enllaços, és transparent a l'usuari. El runlevel per defecte
és el 5, amb arrencada amb X. Les instruccions i fitxers relacionats amb
l'arrencada del sistema són en els paquets de programari sysvinit i initscripts.
Respecte als canvis de fitxers i guions en Fedora, es pot destacar: en /etc/
sysconfig podem trobar arxius que especifiquen valors per defecte de la
configuració de dispositius o serveis. El guió /etc/rc.d/rc.sysinit és invocat
una vegada quan el sistema arrenca; el guió /etc/rc.d/rc.local s'invoca al fi-
nal del procés de càrrega i serveix per a indicar inicialitzacions específiques
de la màquina que ens interessin sense passar per tot el sistema següent.
L'arrencada real dels serveis es fa per mitjà dels guions emmagatzemats en
/etc/rc.d/init.d. Hi ha també un enllaç des de /etc/init.d. A més, Fedora
proporciona uns scripts d'utilitat per a manejar serveis: /sbin/service per a
parar o iniciar un servei pel nom i /sbin/chkconfig per a afegir enllaços
als fitxers S i K necessaris per a un servei, o l'obtenció d'informació sobre
els serveis.
• Debian disposa d'instruccions de gestió dels runlevels com update-rc.d, que
permet instal·lar o esborrar serveis engegant-los o parant-los en un o més
GNUFDL • PID_00167525 33 Administració local
runlevels. Una altra instrucció és invoke-rc.d, que permet les clàssiques acci-
ons d'engegar, parar o reiniciar el servei. El runlevel per defecte en Debian és
el 2, l'X Window System no es gestiona des de /etc/inittab, sinó que hi ha
el gestor (per exemple, gdm o kdm), com si fos un servei més del runlevel 2.
3.1. Upstart, un nou sistema
Upstart és un nou sistema d'arrencada basat en esdeveniments, dissenyat per a
substituir el procés comentat generat per l'init del sistema d'arrencada sysvinit.
Un dels principals problemes del dimoni init de System V és que no va ser
pensat per a maquinari modern, que permet dispositius removibles, o dispo-
sitius que puguin ésser connectats/substituïts en calent (hotplug).
Aquest sistema va ser dissenyat per l'empresa Canonical, per a incorporar-se a
l'Ubuntu 6.10 (2006) i ha estat incorporat posteriorment a les diferents versi-
ons d'Ubuntu, i en Fedora (a partir de la versió 9) i openSUSE (11.3). Debian
manté l'anterior sistema amb certes modificacions (initng, una alternativa a
Upstart) fins a les últimes versions, però migrarà progressivament al nou sis-
tema (a causa dels intents, per totes dues parts, per mantenir el màxim nivell
de semblança amb Ubuntu i Debian).
Encara que es pot destacar que Upstart (almenys de moment) manté una com-
patibilitat total amb els scripts inicials del procés d'init (vistos en aquest apar-
tat, "Nivells d'arrencada i serveis"), el que es modifica és el procés intern que
gestiona els serveis d'arrencada, que passa a ser controlat pel dimoni d'Upstart.
El dimoni init d'Upstart està basat en esdeveniments que permeten executar
programes (o accions) específiques a partir de canvis en el sistema, que solen
ser típicament (respecte a l'init System V) scripts de parada o arrencada de ser-
veis. En System V això només es produïa per canvi de nivell d'execució; en
Upstart ho pot provocar qualsevol esdeveniment que succeeixi dinàmicament
en el sistema. Per exemple, Upstart se sol comunicar (per esdeveniments) amb
dimonis (com udev) que controlen els canvis del maquinari de la màquina; per
exemple, si apareix/desapareix un maquinari determinat, es poden activar o
desactivar els serveis de sistema associats a aquest maquinari.
La gestió d'aquests esdeveniments està centralitzada en /etc/event.d i, a mesura
que es vagi migrant (en les distribucions) cap a Upstart, aquest directori anirà
reemplaçant els continguts de /etc/init.d i els directoris associats als nivells
d'execució /etc/rc<n>.d.
En la terminologia d'Upstart, un esdeveniment és un canvi d'estat del sistema
que pot ser informat al procés init. Un job és un conjunt d'instruccions que
init llegeix, típicament o bé un binari o un shell script, juntament amb el nom
de l'esdeveniment. Així, quan l'esdeveniment apareix en el sistema, Upstart
llança el job associat (els jobs del sistema els podem trobar definits en el direc-
GNUFDL • PID_00167525 34 Administració local
tori esmentat /etc/event.d). Els jobs poden ser de dos tipus, task o service. Una
task és un job que fa la seva tasca i retorna a un estat d'espera quan acaba; un
service no acaba per si mateix, sinó per una decisió basada en un esdeveniment
o bé una intervenció manual de parada.
Així, el procés general init d'Upstart és un funcionament de màquina d'estats;
manté control de l'estat dels treballs (jobs) i els esdeveniments que dinàmica-
ment apareixen, i gestiona els canvis d'estat dels treballs en reacció als esde-
veniments apareguts.
Hi ha una sèrie de treballs (jobs) predefinits amb noms rcn que serveixen per
a emular els canvis de runlevel de System V, per a així emular el concepte de
nivell d'execució.
Per a examinar el sistema Upstart, podem usar com a eina bàsica la instrucció
initctl, que ens permet (entre altres tasques):
• initctl list (mostrar els jobs i el seu estat).
• initctl emit EVENT (emetre manualment esdeveniments concrets).
• Initctl start/stop/status JOB (l'acció sobre un job).
Per finalitzar, podem observar que Upstart és un sistema bastant nou i podrà
tenir certa evolució futura, ja substituint completament el System V inicial
o evolucionant a noves funcionalitats, ja que el sistema basat en màquina
d'estats és molt complet per integrar diferents funcionalitats que ara estan re-
partides per diversos elements del sistema. Es preveu que podria arribar a re-
emplaçar la programació de tasques periòdiques de sistema (usada actualment,
com veurem, per elements com cron, anacron, atd) i possiblement gestions di-
verses de dimonis de xarxa (com les fetes per inetd o xinetd).
Upstart és un aspecte al qual haurem de parar atenció en futures evolucions,
sense descuidar el System V, ja que es manté certa compatibilitat en no estar
totes les distribucions migrades a Upstart. D'altra banda, SystemV es continua
utilitzant en la majoria de UNIX de propietat i en les versions empresarials de
GNU/Linux.
GNUFDL • PID_00167525 35 Administració local
4. Observar l'estat del sistema
Una de les principals tasques de l'administrador (root) en el seu dia a dia serà
verificar el funcionament correcte del sistema i vigilar l'existència de possibles
errors o de saturació dels recursos de la màquina (memòria, discos, etc.). Pas-
sarem a detallar, en els apartats següents, els mètodes bàsics per a examinar
l'estat del sistema en un determinat moment i dur a terme les accions necessà-
ries per a evitar problemes posteriors.
Al taller final d'aquesta unitat farem un examen d'un sistema exemple, perquè
pugueu veure algunes d'aquestes tècniques.
4.1. Arrencada del sistema
En l'arrencada d'un sistema GNU/Linux es produeix tot un bolc d'informació
interessant. Quan el sistema arrenca, solen aparèixer les dades de detecció de
les característiques de la màquina, la detecció de dispositius, l'arrencada de
serveis de sistema, etc., i s'esmenten els problemes apareguts.
En la majoria de les distribucions, això es pot veure a la consola del sistema
directament durant el procés d'arrencada. Tanmateix, o la velocitat dels mis-
satges o algunes distribucions modernes que els oculten darrere caràtules grà-
fiques, poden impedir seguir els missatges correctament, amb la qual cosa ne-
cessitarem una sèrie d'eines per a aquest procés.
Bàsicament, podem utilitzar:
• Instrucció�dmesg: dóna els missatges de l'última arrencada del nucli.
• Fitxer�/var/log/messages: registre general del sistema, que conté els mis-
satges generats pel nucli i altres dimonis (hi pot haver multitud d'arxius
diferents de log, normalment en /var/log, depenent de la configuració del
servei syslog).
• Instrucció�uptime: indica quant temps fa que el sistema és actiu.
• Sistema�/proc: pseudosistema de fitxers (procfs) que utilitza el nucli per a
emmagatzemar la informació de processos i de sistema.
• Sistema�/sys: pseudosistema de fitxers (sysfs) que va aparèixer amb la bran-
ca 2.6.x del nucli, amb objectiu de proporcionar una manera més coherent
d'accedir a la informació dels dispositius i els seus controladors (drivers).
GNUFDL • PID_00167525 36 Administració local
4.2. Nucli: directori /proc
El nucli, durant la seva arrencada, posa en funcionament un pseudosistema
de fitxers anomenat /proc, on bolca la informació que recopila de la màquina,
i també moltes de les seves dades internes, durant l'execució. El directori /proc
està implementat sobre memòria i no es desa en disc. Les dades contingudes
són tant de naturalesa estàtica com dinàmica (varien durant l'execució).
Cal tenir en compte que com que /proc és fortament dependent del nucli, això
propicia que la seva estructura depengui del nucli de què disposa el sistema i
l'estructura i els fitxers inclosos poden canviar.
Una de les característiques interessants és que en el directori /proc podrem
trobar les imatges dels processos en execució, juntament amb la informació
que el nucli maneja sobre aquests processos. Cada procés del sistema es pot
trobar en el directori /proc/<pidproces>, en què hi ha un directori amb fitxers
que representen el seu estat. Aquesta informació és bàsica per a programes de
depuració, o bé per a les instruccions mateixes del sistema, com ps o top, que
la poden utilitzar per a veure l'estat dels processos. En general, moltes de les
utilitats del sistema consulten la informació dinàmica del sistema des de /proc
(en especial, algunes utilitats proporcionades amb el paquet procps).
D'altra banda, en /proc podem trobar altres fitxers d'estat global del sistema.
Comentem, de manera breu, alguns fitxers que podrem examinar per a obtenir
informació important:
Arxiu Descripció
/proc/bus Directori amb informació dels busos PCI i USB
/proc/cmdline Línia d'arrencada del nucli
/proc/cpuinfo Informació de la CPU
/proc/devices Llista de dispositius del sistema de caràcters o blocs
/proc/driver Informació d'alguns mòduls de maquinari
/proc/filesystems Sistemes de fitxers habilitats en el nucli
/proc/ide Directori d'informació del bus IDE, característiques de discos
/proc/interrups Mapa d'interrupcions de maquinari (IRQ) utilitzades
/proc/ioports Ports E/S utilitzats
/proc/meminfo Dades de l'ús de la memòria
/proc/modules Mòduls del nucli
/proc/mounts Sistemes d'arxius muntats actualment
Nota
El directori /proc és un recursextraordinari per a obtenir in-formació de baix nivell sobreel funcionament del sistema.Moltes instruccions de sistemas'hi basen per a les seves tas-ques.
GNUFDL • PID_00167525 37 Administració local
Arxiu Descripció
/proc/net Directori amb tota la informació de xarxa
/proc/scsi Directori de dispositius SCSI, o IDE emulats per SCSI
/proc/sys Accés a paràmetres del nucli configurables dinàmicament
/proc/version Versió i data del nucli
A partir de la branca 2.6 del nucli, s'ha iniciat una transició progressiva de
procfs (/proc) a sysfs (/sys) amb l'objectiu de moure tota aquella informació
que no estigui relacionada amb processos, en especial dispositius i els seus
controladors (mòduls del nucli) cap al sistema /sys.
4.3. Nucli: /sys
El sistema sys s'encarrega de fer disponible la informació de dispositius i con-
troladors, informació de la qual disposa el nucli, a l'espai d'usuari, de mane-
ra que altres API o aplicacions puguin accedir d'una manera flexible a la in-
formació dels dispositius (o els seus controladors). Sol ser utilitzada per capes
com HAL i el servei udev per al monitoratge i la configuració dinàmica dels
dispositius.
Dins del concepte de sys hi ha una estructura de dades en arbre dels dispositius
i controladors (diguem-ne, el model conceptual fix), i després s'hi accedeix
per mitjà del sistema de fitxers sysfs (l'estructura del qual pot canviar entre
versions).
Quan es detecta o apareix en el sistema un objecte afegit, en l'arbre del model
de controladors (controladors, dispositius incloent-hi les seves diferents clas-
ses), es crea un directori en sysfs. La relació pare/fill es reflecteix amb subdi-
rectoris sota /sys/devices/ (s'hi reflecteix la capa física i els seus identificadors).
En el subdirectori /sys/bus es col·loquen enllaços simbòlics, reflectint la ma-
nera en la qual els dispositius pertanyen als diferents busos físics del sistema.
I /sys/class mostra els dispositius agrupats d'acord amb la seva classe, com per
exemple xarxa, mentre que /sys/block/ conté els dispositius de blocs.
Alguna de la informació proporcionada per /sys es pot trobar també en /proc,
però es va considerar que aquest estava barrejant diferents coses (dispositius,
processos, dades de maquinari, paràmetres del nucli) de manera no coherent,
i això va ser un dels motius per a crear /sys. S'espera que, progressivament, es
migri informació de /proc a /sys per a centralitzar la informació dels disposi-
tius.
GNUFDL • PID_00167525 38 Administració local
4.4. Processos
Els processos que es trobin en execució en un determinat moment seran, en
general, de diferent naturalesa. Podem trobar:
• Processos�de�sistema, ja siguin processos associats al funcionament local
de la màquina, el nucli, o bé processos (denominats dimonis) associats al
control de diferents serveis. D'altra banda, poden ser locals, o de xarxa, si
estem oferint el servei (actuem de servidor) o rebent els resultats del servei
(actuem de clients). La majoria d'aquests processos de sistema apareixeran
associats a l'usuari root (encara que se solen migrar a pseudousuaris especi-
alitzats per servei), encara que no siguem presents en aquell moment com
a usuaris. Hi pot haver alguns serveis associats a altres usuaris de sistema
(lp, bin, www, mail, etc.). Aquests són pseudousuaris "virtuals", no interac-
tius, que utilitza el sistema per a executar certs processos.
• Processos�de�l'usuari�administrador: en cas d'actuar com a root, els nos-
tres processos interactius o aplicacions llançades també apareixeran com
a processos associats a l'usuari root.
• Processos�d'usuaris�del�sistema: associats a l'execució de les seves aplica-
cions, ja siguin tasques interactives en mode text o en mode gràfic.
Com a instruccions ràpides i més útils, podem utilitzar:
• ps: la instrucció estàndard, mostra els processos amb les seves dades
d'usuari, temps, identificador de procés i línia d'instruccions usada. Una
de les opcions més utilitzada és ps -ef (o -ax), però hi ha moltes opcions
disponibles (vegeu man ps).
• top: una versió que ens dóna una llista actualitzada a intervals, monito-
ritzant dinàmicament els canvis. I ens permet ordenar la llista de proces-
sos per diferents categories, com despesa de memòria, d'ús de CPU, amb
propòsit d'obtenir un rànquing dels processos que acaparen els recursos.
Molt útil per a donar indicis en situacions extremes de saturació d'ús de
recursos, de la possible font de problemes.
• kill: ens permet eliminar processos del sistema mitjançant la tramesa de
senyals al procés com, per exemple, la d'acabament kill -9 pid_del_proces (9
correspon a SIGKILL), on indiquem l'identificador del procés. Resulta útil
per a processos amb comportament inestable o programes interactius que
han deixat de respondre. Podem veure una llista dels senyals vàlids en el
sistema amb man 7 signal.
GNUFDL • PID_00167525 39 Administració local
4.5. Registres del sistema
Tant el nucli com molts dels dimonis de serveis, i també diferents aplicacions o
subsistemes de GNU/Linux, poden generar missatges que van a parar a fitxers
log, ja sigui per a tenir una traça del seu funcionament, o bé per a detectar
errors o advertències de mal funcionament o situacions crítiques. Aquest tipus
de registre és imprescindible, en molts casos, per a les tasques d'administració,
i se sol emprar bastant temps d'administració en el processament i l'anàlisi
dels seus continguts.
La major part dels registres es generen en el directori /var/log, encara
que algunes aplicacions poden modificar aquest comportament. La ma-
joria de registres del sistema sí que es troben en aquest directori.
Un dimoni particular del sistema (important) és el syslogd, que s'encarrega de
rebre els missatges que envia el nucli i altres dimonis de serveis i els envia a
un fitxer log que es troba en /var/log/messages. Aquest és el fitxer per defecte,
però syslogd és també configurable (en el fitxer /etc/syslog.conf), de manera
que es poden generar altres fitxers, depenent de la font, segons el dimoni que
envia el missatge, i així dirigir-lo a un log o a un altre (classificant així per font),
o també classificar els missatges per importància (nivell de prioritat): alarm,
warning, error, critical, etc.
Depenent de la distribució, pot estar configurat de diferents maneres per de-
fecte; en /var/log sol generar (per exemple) en Debian fitxers com kern.log,
mail.err, mail.info..., que són els registres de diferents serveis. Podem examinar
la configuració per a determinar d'on provenen els missatges i en quins fitxers
els desa. Una opció que sol ser útil és la possibilitat d'enviar els missatges a una
consola virtual de text (en /etc/syslog.conf s'especifica per als tipus de missat-
ge una consola de destinació, com /dev/tty8 o /dev/xconsole), de manera que
podrem anar veient els missatges a mesura que es produeixin. Això sol ser útil
per a monitoritzar l'execució del sistema sense haver d'estar mirant els fitxers
de registre a cada moment. Una modificació simple d'aquest mètode podria
ser introduir, des d'un terminal, la instrucció següent (per al log general):
tail -f /var/log/messages
Aquesta sentència ens permet deixar el terminal o finestra de terminal, de
manera que aniran apareixent els canvis que es produeixin al fitxer.
Altres instruccions relacionades són:
Nota
El dimoni syslogd és el ser-vei més important d'obtenciód'informació dinàmica de lamàquina. El procés d'anàlisidels logs ens ajuda a entendreel funcionament, els possibleserrors i el rendiment del siste-ma.
GNUFDL • PID_00167525 40 Administració local
• uptime: temps que fa que el sistema està actiu. Útil per a comprovar que
no hi ha existit alguna rearrencada del sistema inesperat.
• last: analitza el registre d'entrades/sortides del sistema (/var/log/wtmp)
dels usuaris, i les arrencades del sistema. O lastlog, el control de l'última
vegada que els usuaris han estat vistos en el sistema (informació en /var/
log/lastlog).
• Diverses� utilitats� per� a� processament� combinat� de� logs, que emeten
resums (o alarmes) del que ha succeït en el sistema, com per exemple
logwatch, logcheck (Debian), log_analysis (Debian)...
4.6. Memòria
Respecte a la memòria del sistema, haurem de tenir en compte que disposem
de la memòria física de la màquina mateixa i de la memòria virtual, que pot
ser direccionada pels processos. Normalment (tret que estiguem tractant amb
servidors empresarials), no disposarem de quantitats gaire grans, de manera
que la memòria física serà menor que la mida de memòria virtual necessària
(4 GB en sistemes de 32 bits). Això obligarà a utilitzar una zona d'intercanvi
(swap) sobre disc, per a implementar els processos associats a memòria virtual.
Aquesta zona d'intercanvi (swap) es pot implementar com un fitxer en el sis-
tema d'arxius, però és més habitual trobar-la com una partició d'intercanvi
(anomenada de swap), creada durant la instal·lació del sistema. En el moment
de particionar el disc, es declara com de tipus Linux swap.
Per a examinar la informació sobre memòria, tenim diversos mètodes i ins-
truccions útils:
• Fitxer�/etc/fstab: apareix la partició swap (si n'hi ha). Amb una instrucció
fdisk en podem esbrinar la mida (o consultar-la en /proc/swaps).
• Instrucció�ps: permet conèixer quins processos tenim, i amb les opcions
de percentatge i memòria usada.
• Instrucció�top: és una versió de ps dinàmica actualitzable per períodes de
temps. Pot classificar els processos segons la memòria que s'usa o el temps
de CPU.
• Instrucció�free: informa sobre l'estat global de la memòria. Dóna també
la mida de la memòria virtual.
• Instrucció�vmstat: informa sobre l'estat de la memòria virtual, i l'ús que
s'hi dóna.
GNUFDL • PID_00167525 41 Administració local
• Alguns�paquets com dstat permeten recollir dades dels diferents paràme-
tres (memòria, swap i d'altres) a intervals de temps (de manera semblant
a top).
4.7. Discos i sistemes d'arxius
Examinarem quins discos tenim disponibles, com són organitzats i de qui-
nes particions i quins sistemes d'arxius (filesystems) disposem. Quan disposem
d'una partició i d'un determinat filesystem accessible, haurem de fer un procés
de muntatge per a integrar-la en el sistema, ja sigui explícitament o bé progra-
mada en arrencada. En el procés de muntatge, es connecta el sistema d'arxius
associat a la partició a un punt de l'arbre de directoris.
Per a conèixer els discos (o dispositius d'emmagatzematge) que tenim en el
sistema, ens podem basar en la informació d'arrencada del sistema (instrucció
dmesg o /var/log/messages), en què es detecten els presents, com els /dev/hdx
per als dispositius IDE o els SCSI amb dispositius /dev/sdx. Últimament els
discos SATA i antics IDE són presentats com si fossin SCSI, a causa d'una capa
d'emulació del nucli que tracta els discos com a SCSI. Altres dispositius, com
discos durs connectats per USB, discos flaix (els de tipus pen drive), unitats
extraïbles o CD-ROM externs, solen ser dispositius amb algun tipus d'emulació
SCSI, per la qual cosa també es veuran com a dispositius d'aquest tipus.
Qualsevol dispositiu d'emmagatzematge presentarà una sèrie de partici-
ons del seu espai. Típicament, un disc IDE suporta un màxim de quatre
particions físiques, o més si són lògiques (permeten col·locar diverses
particions d'aquest tipus sobre una de física). Cada partició pot contenir
tipus de filesystems diferents, ja sigui d'un mateix operatiu o d'operatius
diferents.
Per a examinar l'estructura d'un dispositiu conegut o canviar-ne l'estructura
particionant el disc, podem utilitzar la instrucció fdisk, o qualsevol de les seves
variants més o menys interactives (cfdisk, sfdisk). Per exemple, en examinar un
disc exemple IDE /dev/hda, ens dóna la informació següent:
# 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
GNUFDL • PID_00167525 42 Administració local
Disc de 20 GB amb tres particions (s'identifiquen amb el número afegit al nom
del dispositiu), en què observem dues particions amb arrencada (columna Boot
amb *) de tipus NTFS i Linux, fet que representa l'existència d'un Windows NT/
2000/XP/Vista/7 juntament amb una distribució GNU/Linux, i l'última parti-
ció, que és usada de swap per a Linux. A més, tenim informació de l'estructura
del disc i de les mides de cada partició. També es pot obtenir informació de
totes les particions presents en el sistema consultat el fitxer /proc/partitions.
Dels discos i particions de què disposem, alguns es trobaran muntats en el
nostre sistema de fitxers, o estaran preparats per a muntar-los sota demanda
o bé muntar-los en el moment en què en disposem (en el cas de dispositius
extraïbles).
Aquesta informació la podem obtenir de diferents maneres (ho veurem amb
més detall en el taller final):
• Fitxer�/etc/fstab: indica dispositius que estan preparats per a muntar-se
en l'arrencada o els extraïbles que podran ser muntats. No han d'estar ne-
cessàriament tots els del sistema, sinó només aquells que vulguem tenir
en arrencada. Els altres els podem muntar sota demanda amb la instrucció
mount, o desmuntar-los amb umount.
• Instrucció�mount: ens informa dels filesystems muntats en aquell moment
(ja sigui dispositius reals o filesystems virtuals, com /proc). Podem obtenir
aquesta informació també des del fitxer /etc/mtab.
• Instrucció�df�-k: ens informa dels filesystems d'emmagatzemament, i ens
permet verificar l'espai usat i disponible. Es tracta d'una instrucció bàsica
per a controlar l'espai de disc disponible. Respecte a aquesta instrucció df
-k, una de les nostres tasques bàsiques d'administració de la màquina és
controlar-ne els recursos, i en aquest cas l'espai disponible en els filesystems
utilitzats. Aquestes mides cal monitoritzar-les amb certa freqüència per a
evitar la caiguda del sistema; mai no s'hauria de deixar un filesystem (sobre-
tot si és el /) per sota d'un 10-15%, ja que hi ha molts processos (dimonis
de serveis) que escriuen informació temporal o registres, que poden con-
sumir molt espai. Un cas particular el formen els fitxers core, generats per
errors de programari i que contenen informació de depuració dels errors
que els han provocat juntament amb la imatge del procés, els quals poden
tenir (depenent del procés) mides molt grans d'arxiu. Normalment, caldrà
tenir algunes precaucions de "neteja del sistema" si es detecten situacions
de saturació del filesystem:
• Eliminar�temporals�antics. Els directoris /tmp i /var/tmp solen acumular
molts arxius generats per diferents usuaris o aplicacions. Alguns sistemes
o distribucions ja prenen mesures de neteja, com netejar /tmp en cada
arrencada del sistema.
GNUFDL • PID_00167525 43 Administració local
• Registres: cal evitar-ne el creixement excessiu, ja que segons la configura-
ció del sistema (per exemple, de syslogd) la informació generada de missat-
ges pot ser molt gran. Caldrà netejar periòdicament en arribar a determi-
nades mides, i en tot cas, si necessitem la informació per a anàlisis poste-
riors, podem fer còpies de seguretat en mitjans extraïbles. Aquest procés
es pot automatitzar mitjançant ús de scripts cron, o bé per mitjà d'eines
especialitzades com logrotate.
• Hi ha altres punts del sistema que solen créixer molt, com poden ser:
– Fitxers core dels usuaris: els podem eliminar periòdicament o fer que
no es generin.
– El sistema de correu electrònic: emmagatzema tots els correus enviats
i rebuts; podem demanar als usuaris que facin neteja periòdica, o bé
posar sistemes de quotes.
– Les memòries cau dels navegadors o altres aplicacions: també solen
tenir mides grans, una altra neteja que caldrà fer periòdicament.
– Els comptes dels usuaris mateixos: poden tenir quotes per a no superar
les mides prefixades...
GNUFDL • PID_00167525 44 Administració local
5. Sistema de fitxers
A cada màquina amb un sistema GNU/Linux podem veure sistemes de fitxers
de diferents tipus [Hin]. Per començar, és habitual trobar-se amb els sistemes
de fitxers propis de Linux creats en diferents particions dels discos [Koe].
La configuració habitual sol ser de dues particions:
1) la corresponent a "/" (root filesystem) i
2) la corresponent al fitxer d'intercanvi o de swap.
Amb tot, en configuracions més professionals sol ser habitual separar partici-
ons amb parts "diferenciades" del sistema. Una tècnica habitual és, per exem-
ple (en veurem més opcions després), crear particions diferents per al següent:
/ /boot /home /opt /tmp /usr /var swap
que segurament es trobaran muntades des de diferents orígens (diferents dis-
cos, o fins i tot xarxa en alguns casos).
Les particions es fan per a separar clarament parts estàtiques i dinàmi-
ques del sistema, per a permetre d'una manera més fàcil, davant de pro-
blemes de saturació, estendre les particions o aïllar més fàcilment parts
per a fer còpies de seguretat (per exemple, els comptes dels usuaris en
la partició /home).
El tipus de particions swap és de tipus Linux swap, i la corresponent a / sol
ser d'algun dels sistemes de fitxers estàndard, ja sigui ext2 (el tipus per defecte
fins als nuclis 2.4), ext3 o el nou ext4, que són millores de l'ext2 compatibles
però amb journaling, la qual cosa permet tenir un registre del que va passant al
sistema de fitxers, per a recuperacions més ràpides en cas d'error. També poden
ser habituals altres sistemes d'arxius, com Reiser o XFS.
Una altra configuració habitual pot ser de tres particions: /, swap, /home, en
què /home es dedicarà als comptes dels usuaris. Això permet separar els comp-
tes dels usuaris del sistema, aïllant en dues particions separades, i podem do-
nar l'espai necessari per als comptes en una altra partició.
Un altre esquema molt utilitzat és el de separar en particions les parts estàti-
ques del sistema de les dinàmiques; per exemple, una partició per a / amb la
part estàtica (/bin /sbin i /usr en alguns casos) que s'espera que no creixerà o
GNUFDL • PID_00167525 45 Administració local
ho farà molt poc, i una altra o diverses amb la part dinàmica (/var /tmp /opt),
suposant que /opt, per exemple, és el punt d'instal·lació del programari nou.
Això permet ajustar millor l'espai de disc i deixar més espai per a les parts del
sistema que en necessitin.
Respecte als sistemes de fitxers suportats, n'hem de destacar la gran varietat;
actualment, podem trobar (entre d'altres):
• Sistemes�associats�a�GNU/Linux, com l'estàndard ext2, ext3, evolució de
l'anterior amb concepte de journaling (suport de registre d'operacions fetes
en el sistema de fitxers que en pot permetre la recuperació en cas d'algun
desastre que ho faci inconsistent). O el nou ext4.
• Compatibilitat�amb�entorns�no�GNU/Linux: msdos, vfat, ntfs, accés als
diferents sistemes de fat16, fat32 i ntfs. En particular, es pot destacar que el
suport del nucli és limitat a lectura. Però com ja hem dit, hi ha solucions
en l'espai d'usuari (mitjançant FUSE, un component que permet escriure
sistemes de fitxers en espai d'usuari), que permeten l'escriptura, com l'ntfs-
3g ja esmentat. També es disposa de compatibilitat en altres entorns com
Mac amb hfs i hfsplus.
• Sistemes� associats� a� suports� físics, com el cas de CD/DVD, amb els
iso9660 i udf.
• Sistemes�usats�en�diferents�UNIX, que ofereixen generalment un rendi-
ment millor (de vegades, a costa de més consum de recursos, en CPU per
exemple), com JFS2 (IBM), XFS (SGI), o ReiserFS.
• Sistemes�de�fitxers�en�xarxa (més tradicionals): NFS, Samba (smbfs, cifs),
permeten accedir a sistemes de fitxers disponibles en altres màquines de
manera transparent per xarxa.
• Sistemes�distribuïts�en�xarxa: com GFS o Coda.
• Pseudosistemes�de�fitxers, com procfs (/proc) o sysfs (/sys).
En la majoria (excepte algun cas especial) d'aquests sistemes de fitxers, GNU/
Linux ens permetrà crear particions d'aquests tipus, construir el sistema de fit-
xers del tipus requerit i muntar-les com a part integrant de l'arbre de directoris,
ja sigui de manera temporal o permanent.
GNUFDL • PID_00167525 46 Administració local
5.1. Punts de muntatge
A part del filesystem principal / i de les seves possibles divisions en particions
extres (/usr, /var, /tmp, /home), es pot tenir en compte la possibilitat de deixar
punts de muntatge preparats per al muntatge d'altres sistemes de fitxers, ja
siguin particions de disc o altres dispositius d'emmagatzematge.
A les màquines en les quals GNU/Linux comparteix la partició amb altres sis-
temes operatius, mitjançant algun sistema d'arrencada (LILO o GRUB), hi pot
haver diverses particions assignades als diferents operatius. Moltes vegades
és interessant compartir dades amb aquests sistemes, ja sigui per a llegir els
seus fitxers o modificar-los. A diferència d'altres sistemes (que només tenen en
compte les seves pròpies dades i els seus sistemes de fitxers, i en els quals en
algunes versions no se suporten alguns dels seus sistemes de fitxers propis),
GNU/Linux és capaç de tractar, com hem vist, amb una quantitat enorme de
sistemes de fitxers de diferents operatius i poder compartir la informació.
Exemple
Si en els PC personals hem instal·lat GNU/Linux, segurament trobarem més d'un opera-tiu; per exemple, una altra versió de GNU/Linux amb ext2 o ext3 de sistema de fitxers;podríem trobar un antic MSDOS amb el seu sistema de fitxers FAT, un Windows98/ME/XP Home amb FAT32 (o vfat per a Linux) o un Windows NT/2000/XP/Vista/7 amb siste-mes NTFS (ntfs per a Linux) i FAT32 (vfat) alhora.
El nostre sistema GNU/Linux pot llegir dades (és a dir, fitxers i directoris) de
tots aquests sistemes de fitxers i escriure en la majoria.
En el cas d'NTFS, fins a certs moments hi va haver problemes en l'escriptura,
que estava en forma experimental en la majoria de controladors del nucli apa-
reguts, a causa, principalment, de les diferents versions que van apareixent del
sistema de fitxers, ja que hi ha dues versions principals anomenades NTFS i
NTFS2, i algunes extensions com els anomenats volums dinàmics, o els sistemes
de fitxers xifrats. Accedir amb segons quina opció de controladors presentava
certes incompatibilitats, que podrien causar corrupcions de dades o errors en
el sistema de fitxers.
A causa de FUSE, un mòdul integrat en el nucli (a partir del 2.6.11), s'ha permès
un desenvolupament més flexible de sistemes de fitxers, directament en l'espai
d'usuari (de fet, FUSE actua com un "pont" entre les peticions del nucli i l'accés
que es fa des del controlador).
Gràcies a les possibilitats de FUSE, es té un suport més o menys complet d'NTFS
(mentre Microsoft no faci més canvis en l'especificació), en especial des de
l'aparició del controlador (basat en FUSE) ntfs-3g i la combinació amb les uti-
litats ntfsprogs.
GNUFDL • PID_00167525 47 Administració local
Perquè es puguin llegir o escriure les dades, la partició ha d'estar dispo-
nible dins del nostre sistema de fitxers arrel (/). Per tant, cal dur a terme
un procés de "muntatge" del sistema de fitxers en algun punt del nostre
arbre de directoris. Se seguirà el mateix procés si es tracta d'un dispositiu
d'emmagatzematge, ja sigui disquet o floppy.
Depenent de la distribució, s'usen uns sistemes o d'altres, o també els podem
crear nosaltres. Normalment, solen existir o bé com a subdirectoris de l'arrel,
per exemple /cdrom, /win, /floppy, o bé com a subdirectoris dins de /mnt, el
punt estàndard de muntatge (apareixen com a /mnt/cdrom, /mnt/floppy...), o
el directori /media, que és el preferit últimament per les distribucions. Segons
l'estàndard FHS /mnt s'hauria d'usar per a muntatges temporals de sistemes
d'arxiu, mentre que /media s'utilitzaria per a muntar dispositius extraïbles.
El procés de muntatge es fa mitjançant l'ordre mount amb el format següent:
mount -t filesystem-type device mount-point
El tipus de filesystem pot ser: msdos (FAT), vfat (FAT32), ntfs (NTFS de lectura),
iso9660 (per a CDROM), ext2, ext3, xfs... (dels disponibles).
El dispositiu és l'entrada corresponent en el directori /dev a la localització del
dispositiu; els IDE tenien /dev/hdxy, en què x és a, b, c o d (1 mestre, 1 esclau,
2 mestre, 2 esclau) i y, el número de partició; en els SCSI (/dev/sdx), x és a, b,
c, d... (segons l'ID SCSI associat 0, 1, 2, 3, 4...).
En veurem alguns casos:
mount -t iso9660 /dev/hdc /mnt/cdrom
muntaria el CD-ROM (si és l'IDE que és en el segon IDE en forma de mestre)
en el punt /mnt/cdrom.
mount -t iso9660 /dev/cdrom /mnt/cdrom
muntaria el CD-ROM; /dev/cdrom s'usa com a sinònim (és un enllaç) del dis-
positiu on està connectat.
mount -t vfat /dev/fd0H1440 /mnt/floppy
muntaria el disquet, /dev/fd0H1440. Seria la disquetera A en alta densitat (1,44
MB). També es pot usar /dev/fd0.
mount -t ntfs /dev/hda2 /mnt/winXP
GNUFDL • PID_00167525 48 Administració local
muntaria la segona partició del primer dispositiu IDE (la C:), de tipus NTFS
(per exemple, un Windows XP).
Si aquestes particions són més o menys estables en el sistema (és a dir, no can-
vien freqüentment) i les volem utilitzar, el millor serà incloure els muntatges
perquè es facin en temps d'execució, en iniciar el sistema, mitjançant la con-
figuració del fitxer /etc/fstab:
# /etc/fstab: Informació estàtica del sistema de fitxers
#
#<Sis. fitxers> <Punt muntatge> <Tipus><Opcions> <Bolcat> <Passada>
/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
Per exemple, aquesta configuració inclou alguns dels sistemes estàndard, com
l'arrel en /dev/hda2, la partició de swap que està en hdb3, el sistema proc (que
utilitza el nucli per a desar la seva informació). I el disquet, el CD-ROM, i
en aquest cas un disc USB de tipus flaix (que es detecta com un dispositiu
SCSI). En alguns casos, s'especifica auto com a tipus de filesystem. Això permet
que s'autodetecti el sistema de fitxers. Si es coneix, és millor indicar-ho en
la configuració i, d'altra banda, el noauto en les opcions permet que no sigui
muntat de manera automàtica sempre, sinó sota petició (o accés al directori).
Si tenim aquesta informació en el fitxer, el procés de muntatge se simplifica
molt, ja que es farà o bé en execució, en arrencada, o bé sota demanda (per
als noauto). I es pot fer ara simplement demanant que es munti el punt de
muntatge o el dispositiu:
mount /mnt/cdrom
mount /dev/fd0
ja que el sistema ja té la resta de la informació. El procés contrari, el desmun-
tatge, és bastant senzill, amb la instrucció umount amb el punt o dispositiu:
umount /mnt/cdrom
umount /dev/fd0
En el cas de mitjans extraïbles, de tipus CD-ROM (o d'altres), es pot usar eject
per a l'extracció del suport físic:
eject /dev/cdrom
GNUFDL • PID_00167525 49 Administració local
o, en aquest cas, només:
eject
Les instruccions mount i umount munten o desmunten tots els sistemes dispo-
nibles. En el fitxer /etc/mtab es manté una llista dels sistemes muntats. En
un moment concret es pot consultar o executar mount sense paràmetres per
a obtenir aquesta informació.
5.2. Permisos
Un altre assumpte que caldrà controlar, en el cas dels fitxers i directoris, és el
dels permisos que volem establir en cada un; cal recordar que cada fitxer pot
disposar de la sèrie de permisos rwxrwxrwx, que són: rwx del propietari, rwx del
grup a què l'usuari pertany i rwx per a altres usuaris. En cada un es pot establir
el permís de lectura (r), escriptura (w) o execució (x). En el cas d'un directori,
x denota el permís per a poder entrar en aquest directori (amb la instrucció
cd, per exemple).
Per a modificar els drets sobre un directori o fitxer, tenim les instruccions:
• chown: canvia el propietari dels fitxers.
• chgrp: canvia el grup propietari dels fitxers.
• chmod: canvia els permisos específics (rwx) dels arxius.
Aquestes instruccions també permeten l'opció -R, que és recursiva si es tracta
d'un directori.
GNUFDL • PID_00167525 50 Administració local
6. Usuaris i grups
Els usuaris d'un sistema GNU/Linux disposen d'un compte associat (definit
amb algunes de les seves dades i preferències), juntament amb l'espai en disc
perquè puguin desenvolupar els seus arxius i directoris. Aquest espai està as-
signat a l'usuari, i només el pot usar ell (tret que els permisos especifiquin co-
ses diferents).
Dins dels comptes associats a usuaris, en podem trobar diferents tipus:
• El�de�l'administrador, amb identificador root, que només és (o hauria de
ser) utilitzat per a les operacions d'administració. L'usuari root és el que
disposa de més permisos i accés complet a la màquina i als arxius de con-
figuració. Per tant, també és el que més mal pot causar per errors o omissi-
ons. És millor evitar usar el compte de root com si fos un usuari més, per la
qual cosa es recomana deixar-lo només per a operacions d'administració.
• Comptes�d'usuaris: els comptes normals per a qualsevol usuari de la mà-
quina tenen els permisos restringits a l'ús de fitxers del seu compte, i a
algunes altres zones particulars (per exemple, els temporals en /tmp), i
també a utilitzar alguns dispositius per als quals s'hagin habilitat permisos.
• Comptes�especials�dels�serveis: lp, news, wheel, www-data... comptes que
no són usats per persones, sinó per serveis interns del sistema, que els
usa sota aquests noms d'usuari. Alguns dels serveis també són usats sota
l'usuari de root (encara que per raons de seguretat s'hauria d'evitar).
Un usuari normalment es crea mitjançant l'especificació d'un nom (o identi-
ficador d'usuari), una paraula de pas (contrasenya) i un directori personal asso-
ciat (el compte).
La informació dels usuaris del sistema està inclosa en els arxius següents:
/etc/passwd
/etc/shadow
/etc/group
/etc/gshadow
Unes línies de /etc/passwd podrien ser:
joan:x:1000:1000:Joan Garcia,,,:/home/joan:/bin/bash
root:x:0:0:root:/root:/bin/bash
GNUFDL • PID_00167525 51 Administració local
en què s'indica (si apareixen :: seguits és que el camp és buit):
• joan: identificador d'usuari en el sistema.
• x: paraula de pas de l'usuari codificada, si hi ha una x és que es troba en
el fitxer /etc/shadow.
• 1000: codi de l'usuari; l'usa el sistema com a codi d'identitat de l'usuari.
• 1000: codi del grup principal a què pertany; la informació del grup es troba
en /etc/group.
• Joan García: comentari; se sol col·locar el nom complet de l'usuari, o algun
comentari per a identificar l'objectiu del compte.
• /home/juan: directori personal associat al seu compte.
• /bin/bash: intèrpret d'ordres interactiu que utilitzarà l'usuari en interactuar
amb el sistema, en mode text, o amb el terminal gràfic. En aquest cas,
l'intèrpret Bash de GNU, que és l'utilitzat per defecte. El fitxer /etc/passwd
solia contenir les paraules de pas dels usuaris en forma xifrada, però el
problema era que qualsevol usuari podia veure el fitxer, i en el seu moment
es van dissenyar cracks que intentaven trobar en forma bruta la paraula de
pas, mitjançant la paraula de pas xifrada com a punt de partida (paraula
codificada amb el sistema crypt).
Per a evitar això, avui dia ja no es col·loquen les paraules de pas en aquest
arxiu, sinó només una x que indica que es troben en un altre fitxer, que és
només de lectura per a l'usuari root, /etc/shadow, el contingut del qual podria
ser semblant al següent:
juan:a1gNcs82ICst8CjVJS7ZFCVnu0N2pBcn/:12208:0:99999:7:::
en què es troba l'identificador de l'usuari juntament amb la paraula de pas
xifrada. A més, apareixen (com a camps separats per ":" amb informació sobre
la contrasenya):
• Dies des de l'1 de gener de 1970 en què la paraula de pas es va canviar per
última vegada.
• Dies que falten perquè es canviï (0 vol dir que no s'ha de canviar).
• Dies després dels quals cal canviar-la (és a dir, termini de canvi).
• Dies en què l'usuari serà avisat abans que li expiri.
• Dies, una vegada expirat, que es produirà la deshabilitació del compte.
• Dies des de l'1 de gener de 1970 en què el compte està deshabilitat.
• I un camp reservat.
GNUFDL • PID_00167525 52 Administració local
A més, les claus de xifratge poden ser més difícils, ja que ara es pot utilitzar
un sistema denominat md5 (sol aparèixer com a opció a l'hora d'instal·lar el
sistema) per a protegir les paraules de pas dels usuaris. Veurem més detalls
sobre això en la unitat dedicada a la seguretat.
En /etc/group hi ha la informació dels grups d'usuaris:
jose:x:1000:
en què tenim:
nom-grup:contrasenya-grup:identificador-del-grup:llista-usuaris
La llista d'usuaris del grup pot ser present o no, ja que la informació ja està en
/etc/passwd, i no se sol posar en /etc/group. Si s'hi posa, sol aparèixer com una
llista d'usuaris separada per comes. Els grups també poden tenir una contrase-
nya associada (encara que no sol ser tan normal), com en el cas dels d'usuari,
i llavors també hi ha un fitxer de tipus shadow: /etc/gshadow.
Altres fitxers interessants són els del directori /etc/skel, en què es troben els
fitxers que s'inclouen en cada compte d'usuari en crear-lo. Recordeu que, com
hem vist amb els intèrprets d'ordres interactius, podem tenir uns scripts de
configuració que s'executen en entrar o sortir del compte. En el directori skel
es desen els "esquelets" que es copien al directori de cada usuari en crear-lo. Sol
ser responsabilitat de l'administrador crear uns fitxers adequats per als usuaris,
posant les rutes necessàries d'execució, la inicialització de variables de sistema,
les variables que es necessitin per al programari, etc.
A continuació, veurem una sèrie d'instruccions útils per a aquesta administra-
ció d'usuaris (n'esmentem la funcionalitat i en el taller farem algunes proves):
• useradd: afegeix un usuari al sistema.
• userdel: esborra un usuari del sistema.
• usermod: modifica un usuari del sistema.
• groupadd,�groupdel,�groupmod: el mateix per a grups.
• newusers,�chpasswd: poden ser d'utilitat en grans instal·lacions amb molts
usuaris, ja que permeten crear diversos comptes des de la informació
introduïda en un fitxer (newusers) o bé canviar les contrasenyes a un gran
nombre d'usuaris (chpasswd).
• chsh: canvia l'intèrpret d'ordres per defecte de l'usuari.
• chfn: canvia la informació de l'usuari, present en el comentari del fitxer
/etc/passwd.
• passwd: canvia la contrasenya d'un usuari. Es pot executar com a usuari, i
llavors demana la contrasenya antiga i la nova. En el cas de fer-ho, root ha
d'especificar l'usuari a qui canviarà la contrasenya (si no, estaria canviant
la seva) i no necessita la contrasenya antiga. És potser la instrucció més
usada per root, quan als usuaris se'ls oblida la contrasenya antiga.
GNUFDL • PID_00167525 53 Administració local
• su: una espècie de canvi d'identitat. L'utilitzen tant usuaris com root per a
canviar l'usuari actual. En el cas de l'administrador, és bastant utilitzat per
a provar que el compte de l'usuari funcioni correctament. Hi ha diferents
variants: su (sense paràmetres, serveix per a passar a usuari root, prèvia
identificació, i permet, quan estem en un compte d'usuari, passar a root
per a fer alguna tasca). La instrucció su iduser canvia l'usuari a iduser, però
deixant l'entorn com està, és a dir, en el mateix directori. L'ordre su - iduser
fa una substitució total, com si el segon usuari hagués entrat en el sistema
fent una connexió.
Respecte a l'administració d'usuaris i grups, el que hem comentat aquí fa re-
ferència a l'administració local d'una sola màquina. En sistemes amb múlti-
ples màquines que comparteixen els usuaris se sol utilitzar un altre sistema
de gestió de la informació dels usuaris. Aquests sistemes, denominats genèri-
cament sistemes d'informació de xarxa, com NIS, NIS+ o LDAP, utilitzen bases
de dades per a emmagatzemar la informació dels usuaris i grups, de manera
que s'utilitzen màquines servidores, en què s'emmagatzema la base de dades,
i altres màquines clients, en què es consulta aquesta informació. Això permet
tenir una sola còpia de les dades dels usuaris (o diverses de sincronitzades), i
que aquests puguin entrar a qualsevol màquina disponible del conjunt admi-
nistrat amb aquests sistemes. A més, aquests sistemes incorporen conceptes
addicionals de jerarquies o dominis/zones de màquines i recursos, que perme-
ten representar adequadament els recursos i el seu ús en organitzacions amb
diferents estructures d'organització interna del seu personal i les seves seccions
internes.
Podem comprovar si estem en un entorn de tipus NIS si en les línies passwd
i group de l'arxiu de configuració /etc/nsswitch.conf apareix files en primer
terme, si estem treballant amb els fitxers locals, o bé nis o nisplus, segons el
sistema amb què estiguem treballant. En general, per a l'usuari simple no re-
presenta cap modificació, ja que la gestió de les màquines li és transparent,
i més si es combina amb fitxers compartits per NFS, que permet disposar del
seu compte sense que importi amb quina màquina treballa. La major part de
les instruccions anteriors es poden continuar usant sense problema sota NIS
o NIS+; són equivalents a excepció del canvi de contrasenya, que en lloc de
passwd es fa amb yppasswd (NIS) o nispasswd (NIS+), encara que sol ser habitual
que l'administrador els rebategi (amb un enllaç) a passwd, amb la qual cosa els
usuaris no notaran la diferència.
Veurem aquest i altres modes de configuració en les unitats d'administració
de xarxa.
GNUFDL • PID_00167525 54 Administració local
7. Servidors d'impressió
El sistema d'impressió de GNU/Linux [Gt] [Smi02] està heretat de la variant
BSD de UNIX. Aquest sistema es denominava LPD (Line Printer Daemon). És
un sistema d'impressió molt potent, ja que integra capacitats per a gestionar
tant impressores locals com de xarxa i ofereix tant el client com el servidor
d'impressió. De manera semblant també UNIX ha disposat generalment del
System V Line Printer (o LPR), que era el sistema comú en les altres variants
de UNIX. GNU/Linux ha integrat originalment tots dos sistemes, bé usant
principalment LPD i emulant LPR, o depenent de la distribució integrant-ne
per defecte un o un altre.
LPD és un sistema bastant antic, ja que es remunta als orígens de la branca
BSD de UNIX (mitjan anys vuitanta). Per tant, a LPD li sol faltar suport per
als dispositius moderns, ja que en origen el sistema no va estar pensat per als
tipus d'impressores actuals. Tampoc no va ser concebut com un sistema basat
en controladors de dispositiu, ja que es produïen només impressores en sèrie
o paral·lel d'escriptura de caràcters de text.
Per a la situació actual, el sistema LPD es combina amb un altre programari
comú, com el sistema Ghostscript, que ofereix sortida de tipus PostScript per
a un rang molt ampli d'impressores per a les quals té controladors. A més, se
sol combinar amb algun programari de filtratge, que segons el tipus de docu-
ment per imprimir, selecciona filtres adequats per a adaptar la impressió de
documents o formats binaris al sistema d'impressió de destinació. Així, nor-
malment el procés que se segueix és (bàsicament):
1) El treball és iniciat per una instrucció del sistema LPD.
2) El sistema de filtre identifica quin tipus de treball (o fitxer) és utilitzat i
converteix el treball a un fitxer PostScript de sortida, que és el que s'envia a
la impressora. En GNU/Linux i UNIX, la majoria d'aplicacions suposen que
la sortida serà cap a una impressora PostScript, i moltes generen sortida PostS-
cript directament, i per aquesta raó es necessita el pas següent.
3)�Ghostscript s'encarrega d'interpretar el fitxer PostScript rebut, i segons el
controlador de la impressora al qual ha estat enviat el treball, fa la conversió al
format propi de la impressora. Si és de tipus PostScript, la impressió és directa;
si no, caldrà fer-ne la traducció. El treball s'envia a la cua d'impressió.
Com hem dit, a més del sistema d'impressió LPD (amb origen en els BSD
UNIX), també hi ha el denominat sistema System V (d'origen en l'altra branca
UNIX System V) o LPR. Per compatibilitat, actualment la major part de UNIX
els integra tots dos, de manera que o bé un o un altre és el principal, i l'altre se
Potència i flexibilitat
Els sistemes UNIX dispo-sen, potser, dels sistemesd'impressió més potents icomplexos, que aporten unagran flexibilitat als entornsd'impressió.
GNUFDL • PID_00167525 55 Administració local
simula sobre el principal. En el cas de GNU/Linux, passa una cosa semblant;
segons la instal·lació que fem podem tenir només les instruccions LPD de sis-
tema d'impressió, però també serà habitual disposar de les instruccions System
V. Una manera senzilla d'identificar els dos sistemes (BSD o System V) és amb
la instrucció principal d'impressió (la que envia els treballs al sistema), que en
BSD és lpr, i en System V és lp.
Aquest era el panorama inicial dels sistemes d'impressió de GNU/Linux, però
en els últims anys han sorgit més sistemes, que permeten més flexibilitat i dis-
posició de controladors per a les impressores. Els dos principals sistemes són
CUPS i, en grau menor, LPRng (de fet, ja obsolet, que es va utilitzar en algunes
versions de Fedora, i ja no el comentarem en aquesta revisió del material; es
pot trobar en edicions anteriors). Últimament és CUPS l'estàndard de facto per
a GNU/Linux, encara que els altres sistemes han de ser suportats per compa-
tibilitat amb sistemes UNIX existents.
Els dos (tant CUPS com LPRng) són una espècie de sistema de nivell més alt,
però que no es diferencien gaire amb vista a l'usuari respecte als BSD i System
V estàndard. Per exemple, s'utilitzen les mateixes instruccions clients (o com-
patibles en opcions) per a imprimir. Per a l'administrador sí que representen
diferències, ja que els sistemes de configuració són diferents. En certa mane-
ra, podem considerar LPRng i CUPS com a noves arquitectures de sistemes
d'impressió, que són compatibles per a l'usuari amb les instruccions antigues.
En les distribucions GNU/Linux actuals podem trobar els diferents sistemes
d'impressió. Si la distribució és antiga, pot ser que porti incorporat tan sols
el sistema BSD LPD. En les actuals, tant Debian com Fedora/Red Hat utilitzen
CUPS. En algunes versions de Red Hat hi havia una eina, Print switch, que
permitia canviar el sistema, commutar de sistema d'impressió, encara que úl-
timament només està disponible CUPS. En Debian es poden instal·lar tots dos
sistemes, però són exclusius, i només un pot gestionar la impressió.
En el cas de Fedora, el sistema d'impressió per defecte és CUPS (LPRng va des-
aparèixer en Fedora Core 4), i l'eina Print switch ja no existeix perquè no és
necessària. S'utilitza system-config-printer per a la configuració de dispositius.
Debian, per defecte, utilitzava BSD LPD, però ja és comú instal·lar CUPS (i és
l'opció per defecte en noves versions), i també pot utilitzar LPRng. A més, es
pot recordar que també teníem la possibilitat (vista en la unitat de migració)
d'interaccionar amb sistemes Windows mitjançant protocols Samba, que per-
metien compartir les impressores i accedir-hi.
Respecte a cada un dels sistemes [Gt]:
• BSD�LPD: és un dels estàndards de UNIX, i algunes aplicacions assumei-
xen que tindran les instruccions i el sistema d'impressió disponibles, per la
qual cosa, tant LPRng com CUPS emulen el funcionament i les instrucci-
ons de BDS LPD. El sistema LPD és utilitzable, però no gaire configurable,
GNUFDL • PID_00167525 56 Administració local
sobretot en el control d'accés; per això les distribucions s'han mogut als
altres sistemes més moderns.
• LPRng: es va dissenyar per a ser un reemplaçament del BSD; per tant, la
major part de la configuració és semblant i només difereix en alguns fitxers
de configuració.
• CUPS: es tracta d'una desviació més important del BSD original, i la con-
figuració és pròpia. Es proporciona informació a les aplicacions sobre les
impressores disponibles (també en LPRng). En CUPS, tant el client com el
servidor han de disposar de programari CUPS.
Els dos sistemes tenen emulació de les instruccions d'impressió de System V.
Per a la impressió en GNU/Linux, cal tenir en compte diversos aspectes:
• Sistema�d'impressió�que�s'utilitza: BSD, CUPS, o LPRng (avui pràctica-
ment obsolet).
• Dispositiu�d'impressió (impressora): pot disposar de connexió local a una
màquina o estar col·locada en xarxa. Les impressores actuals poden ser
col·locades per connexions locals a una màquina mitjançant interfícies
en sèrie, paral·lel, USB, etc., o disponibles simplement en xarxa, com una
màquina més, o amb protocols especials de propietat. Les connectades a
xarxa poden actuar elles mateixes de servidor d'impressió (per exemple,
moltes de làser són servidors BSD LPD), o bé es poden penjar d'una mà-
quina que actuï de servidor d'impressió.
• Protocols� de� comunicació utilitzats amb la impressora o el sistema
d'impressió: ja sigui TCP/IP directe (per exemple, una HP amb LPD), o
bé altres de més alt nivell sobre TCP/IP, com IPP (CUPS), JetDirect (algu-
nes impressores HP), etc. Aquest paràmetre és important, ja que l'hem de
conèixer per a instal·lar la impressora en un sistema.
• Sistema�de�filtres�usat: cada sistema d'impressió en suporta un o diversos.
• I�els�controladors�de�les�impressores: en GNU/Linux n'hi ha bastants ti-
pus diferents; podem esmentar, per exemple, controladors de CUPS, pro-
pis o dels fabricants (per exemple, HP i Epson en proporcionen); Gimp,
el programa de retoc d'imatges, també té controladors optimitzats per a la
impressió d'imatges; Foomatic, un sistema de gestió de controladors que
funciona amb la majoria de sistemes (CUPS, LPD, LPRng i d'altres); els
controladors de Ghostscript, etc. Gairebé totes les impressores tenen un o
més controladors d'aquests conjunts.
Nota
Podeu trobar informació deles impressores més adequa-des i dels controladors a:http://www.openprinting.org/printer_list.cgi
GNUFDL • PID_00167525 57 Administració local
Respecte a la part client del sistema, les instruccions bàsiques són iguals per als
diferents sistemes. Aquestes són les instruccions del sistema BSD (cada sistema
suporta emulació d'aquestes instruccions):
• lpr: envia un treball a la cua de la impressora per defecte (o a la que se se-
lecciona); el dimoni d'impressió (lpd) s'encarrega d'enviar-lo a la cua cor-
responent i assigna un número de treball, que serà usat amb les altres ins-
truccions. La impressora, per defecte, estaria indicada per una variable de
sistema PRINTER, o s'utilitzarà la primera que estigui definida. En alguns
sistemes s'utilitza la cua lp (com a nom per defecte).
lpr -Pepson dades.txt
Aquesta instrucció enviaria el fitxer dades.txt a la cua d'impressió associada a una impres-sora que hem definit com a "epson".
• lpq: ens permet examinar els treballs existents en la cua.
# lpq -P epsonRank Owner Job Files Total Size1st juan 15 dades.txt 74578 bytes2nd marta 16 fpppp.F 12394 bytes
Aquesta instrucció ens mostra els treballs en cua, amb l'ordre i les mides. Els
fitxers poden aparèixer amb noms diferents, ja que depèn de si els hem enviat
amb lpr o amb una altra aplicació que pot canviar els treballs de nom en en-
viar-los, o si han hagut de passar per algun filtre en convertir-los.
• lprm: elimina treballs de la cua. Podem especificar un número de treball,
o un usuari per a cancel·lar els treballs.
lprm -Pepson 15
Elimina el treball amb ID 15 de la cua.
Respecte a la part administrativa (en BSD), la instrucció principal seria lpc.
Aquesta instrucció permet activar i desactivar cues, moure treballs en l'ordre
de les cues i activar o desactivar les impressores (es poden rebre treballs a les
cues, però no s'envien a les impressores).
Es pot esmentar, així mateix que, per al cas de System V, les instruccions
d'impressió solen també estar disponibles, simulades sobre les de BSD. En el
cas client, les instruccions són lp, lpstat, cancel i, per a temes d'administració,
lpadmin, accept, reject, lpmove, enable, disable, lpshut.
En els apartats següents veurem com cal configurar un servidor d'impressió
per a dos dels sistemes principals. Aquests servidors serveixen tant per a la
impressió local com per a atendre les impressions de clients de xarxa (si estan
habilitats).
GNUFDL • PID_00167525 58 Administració local
7.1. BSD LPD
En el cas del servidor BSD LPD, hi ha dos fitxers principals per examinar: per
una part, la definició de les impressores en /etc/printcap i, per l'altra, els per-
misos d'accés per xarxa en /etc/hosts.lpd.
Respecte als permisos, per defecte BSD LPD només deixa accés local a la im-
pressora, i per tant, cal habilitar-lo expressament en /etc/hosts.lpd.
Exemple
El fitxer podria ser:
#arxiu [email protected]
que indicaria que està permesa la impressió en una sèrie de màquines, mostrades bé pelseu nom DNS o per l'adreça IP. Es poden afegir grups de màquines que pertanyin a unservidor NIS (com en l'exemple groupnis) o bé permetre accés a determinades màquinesindicant-ho amb un guionet "-".
Quant a la configuració del servidor en /etc/printcap, es defineixen entrades,
en què cada una representa una cua del sistema d'impressió a la qual poden
anar a parar els treballs. La cua pot estar tant associada a un dispositiu local
com a un servidor remot, ja sigui una impressora o un altre servidor.
En cada entrada, hi pot haver les opcions:
• lp=: ens indica a quin dispositiu està connectada la impressora; per exem-
ple lp = /dev/lp0 indicaria el primer port paral·lel. Si la impressora és de ti-
pus LPD, per exemple una impressora de xarxa que accepta el protocol LPD
(com una HP), llavors podem deixar el camp buit i emplenar els següents.
• rm=: adreça amb nom o IP de la màquina remota que disposa de la cua
d'impressió. Si es tracta d'una impressora de xarxa, serà l'adreça d'aquesta.
• rp=: nom de la cua remota, a la màquina indicada abans amb rm.
# Entrada d'una impressora locallp|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 d'impressora remotahpremota|hpr||hp remota del departament:\ :lp = :\ :rm = servidor:rp = cuahp:\ :lf = /var/adm/lpd_rem_errs:\arxiu de log. :sd = /var/spool/lpd/hpremota:gestió de cues local associada
GNUFDL • PID_00167525 59 Administració local
7.2. CUPS
CUPS és una nova arquitectura per al sistema d'impressió bastant diferent; té
una capa de compatibilitat amb BSD LPD, que li permet interaccionar amb
servidors d'aquest tipus. Suporta també un nou protocol d'impressió anome-
nat IPP (basat en HTTP), però només disponible quan client i servidor són
de tipus CUPS. A més, utilitza un tipus de controladors denominats PPD que
identifiquen les capacitats de la impressora. CUPS ja porta alguns d'aquests
controladors, i alguns fabricants també n'ofereixen (com HP i Epson).
CUPS té un sistema d'administració completament diferent, basat en di-
ferents fitxers: /etc/cups/cupsd.conf centralitza la configuració del sistema
d'impressió, /etc/cups/printers.conf controla la definició d'impressores i /etc/
cups/classes.conf els grups d'impressores.
En /etc/cups/cupsd.conf configurem el sistema segons una sèrie de seccions
de l'arxiu i les directives de les diferents accions. L'arxiu és bastant gran; des-
tacarem algunes directives importants:
• Allow: ens permet especificar quines màquines podran accedir al servidor,
ja sigui grups o màquines individuals, o segments IP de xarxa.
• AuthClass: permet indicar si es demanarà que s'autentifiquin els usuaris
clients o no.
• BrowseXXX: hi ha una sèrie de directives relacionades amb la possibilitat
d'examinar la xarxa per a trobar impressores servides. Aquesta possibilitat
està activada per defecte (browsing en on); per tant, trobarem disponibles
totes les impressores disponibles a la xarxa. La podem desactivar, per a ob-
servar només les impressores que hàgim definit. Una altra opció important
és BrowseAllow, que diu a qui li donem la possibilitat de preguntar per les
nostres impressores. Per defecte està habilitada, per la qual cosa qualsevol
pot veure la nostra impressora des de la xarxa.
Es pot assenyalar que CUPS, en principi, està pensat perquè tant els clients
com el servidor funcionin sota el mateix sistema; si els clients utilitzen LPD,
cal instal·lar un dimoni de compatibilitat anomenat cups-lpd (en paquets com
cupsys-bsd). En aquest cas, CUPS accepta treballs que provinguin d'un sistema
LPD, però no controla els accessos (cupsd.conf només serveix per al sistema
CUPS mateix), per la qual cosa caldrà implementar alguna estratègia de control
d'accés, de tipus tallafocs.
Per a l'administració des de línia d'instruccions, CUPS és una mica pecu-
liar, ja que accepta tant instruccions LPD com System V en els clients, i
l'administració se sol fer amb la instrucció lpadmin de System V. Quant a eines
GNUFDL • PID_00167525 60 Administració local
gràfiques, disposem de gnome-cups-manager, gtklp, utilitats com system-config-
printers o la interfície per web que porta el sistema CUPS mateix, accessible en
http://localhost:631.
Figura 2. Interfície per a l'administració del sistema CUPS.
Respecte als paquets de programari relacionats amb CUPS, en una Debian tro-
bem (entre d'altres):
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
gnome-cups-manager - CUPS printer admin tool for GNOME
gtklp - Frontend for cups written in gtk
GNUFDL • PID_00167525 61 Administració local
8. Discos i gestió de filesystems
Respecte a les unitats d'emmagatzemament, com hem vist, tenen una sèrie de
dispositius associats, depenent del tipus d'interfície:
• IDE: dispositius com:
– /dev/hda disk master, primer connector IDE;
– /dev/hdb disk slave, del primer connector;
– /dev/hdc master, segon connector;
– /dev/hdd slave, segon connector.
• SCSI: dispositius /dev/sda /dev/sdb... seguint la numeració que tinguin els
perifèrics al bus SCSI. Els discos SATA i IDE del mateix sistema també solen
seguir aquesta nomenclatura, a causa de la capa d'emulació SCSI present
en el nucli per a aquests dispositius.
• Disquets: dispositius /dev/fdx, amb x com a número de disquetera (co-
mençant pel 0). Hi ha diferents dispositius, depenent de la capacitat del
disquet; per exemple, el disquet de 1,44 MB a la disquetera A seria /dev/
fd0H1440.
Respecte a les particions presents, el número que segueix el dispositiu repre-
senta l'índex de la partició dins del disc, i és tractat com un dispositiu inde-
pendent: /dev/hda1 és la primera partició del primer disc IDE, o /dev/sdc2, la
segona partició del tercer dispositiu SCSI. En el cas dels discos IDE, permeten
quatre particions denominades primàries i un major nombre d'esteses (o lògi-
ques). Així, si en /dev/hdan, n és inferior o igual a 4, es tractarà d'una partició
primària; si no, es tractarà d'una partició lògica amb n superior o igual a 5.
Amb els discos i els sistemes de fitxers (filesystems) associats, els processos bà-
sics que podem fer s'engloben en els següents:
• Creació�de�particions, o modificació. Mitjançant instruccions com fdisk
o semblants (cfdisk, sfdisk).
• Formatació�de�disquets: en cas de disquets, es poden utilitzar diferents
eines: fdformat (formatació de baix nivell), superformat (formatació a dife-
rents capacitats en format MSDOS), mformat (formatació específica creant
un filesystem MSDOS estàndard).
GNUFDL • PID_00167525 62 Administració local
• Creació� de� filesystems� Linux, en particions, mitjançant la instrucció
mkfs. Hi ha versions específiques per a crear filesystems diferents: mkfs.ext2,
mkfs.ext3, i també filesystems no Linux: mkfs.ntfs, mkfs.vfat, mkfs.msdos,
mkfs.minix o d'altres. Per a CD-ROM, com mkisofs, a l'hora de crear els
ISO9660 (amb extensions joliet o rockridge), que puguin ser una imatge del
que després s'acabarà gravant sobre un CD/DVD, i juntament amb instruc-
cions com cdrecord (o wodim), es podrà finalment crear/gravar els CD/DVD.
Un altre cas particular és l'ordre mkswap, que permet crear àrees de swap
en particions que, més tard, es poden activar o desactivar amb swapon i
swapoff.
• Muntatge�dels�filesystems: instruccions mount, umount.
• Verificació�d'estat: la principal eina de verificació de filesystems Linux és
la instrucció fsck. Aquesta instrucció comprova les diferents àrees del sis-
tema de fitxers per a verificar la consistència i comprovar possibles errors
i, en els casos en els quals sigui possible, corregir-los. El sistema mateix
activa automàticament la instrucció fsck en l'arrencada quan detecta situ-
acions en què s'ha produït una parada incorrecta (una apagada elèctrica
o accidental de la màquina), o bé ha passat un cert nombre de vegades
des que el sistema s'ha engegat. Aquesta comprovació sol comportar cert
temps, normalment alguns minuts (depenent de la mida de dades). També
hi ha versions particulars per a altres sistemes de fitxers: fsck.ext2, fsck.ext3,
fsck.vfat, fsck.msdos, etc. El procés de l'fsck es fa amb el dispositiu en mo-
de de "només lectura" amb particions muntades. Es recomana desmuntar
les particions per a fer el procés si es detecten errors i cal aplicar correcci-
ons. En determinats casos, per exemple, si el sistema per a comprovar és
l'arrel / i es detecta algun error crític, ens demanarà que canviem de mode
d'execució del sistema (runlevel) a un mode només root i fem allà la veri-
ficació. En general, si cal fer la verificació, es recomana fer-les en mode
superusuari (podem commutar de mode de runlevel amb les instruccions
init o telinit).
• Processos�de�còpia�de�seguretat: ja siguin del disc, blocs de disc, partici-
ons, filesystems, fitxers... Hi ha diverses eines útils per a això: tar ens permet
copiar fitxers cap a un fitxer o a unitats de cinta; cpio, de manera semblant,
pot fer còpies de fitxers cap a un fitxer; tant cpio com tar mantenen la in-
formació de permisos i propietaris dels fitxers; dd permet còpies, ja sigui
de fitxers, dispositius, particions o discos a fitxer; és una mica complex i
cal conèixer informació de baix nivell, tipus, mides, nombre de blocs o
sectors... Es pot enviar també a cintes.
• Utilitats�diverses, algunes utilitzades pels processos anteriors per a fer trac-
taments diferents: badblocks per a trobar blocs defectuosos al dispositiu;
dumpe2fs per a obtenir informació sobre filesystems Linux; tune2fs permet
GNUFDL • PID_00167525 63 Administració local
fer processos de tunning de filesystems Linux de tipus ext2, ext3 o ext4 i
ajustar diferents paràmetres de comportament.
A continuació, destaquem dos temes relacionats amb la concepció de l'espai
d'emmagatzemament, que són utilitzats en diversos ambients per a la creació
base de l'espai d'emmagatzemament: l'ús de RAID en programari i la creació
de volums dinàmics.
8.1. RAID en programari
La configuració de discos mitjançant esquemes RAID és un dels esquemes
d'emmagatzemament d'alta disponibilitat més usats actualment, quan dispo-
sem de diversos discos per a implementar els nostres sistemes de fitxers.
L'enfocament principal de les diferents tècniques existents és la tolerància a
errors que es proporciona des d'un nivell de dispositiu, el conjunt de discos,
a diferents tipus possibles d'errors tant físics com de sistema, per a evitar les
pèrdues de dades o els errors de coherència en el sistema. Així, també alguns
esquemes que estan dissenyats per a augmentar les prestacions del sistema de
discos, ampliant l'amplada de banda disponible cap al sistema i les aplicacions.
Típicament, avui dia el RAID en maquinari (mitjançant targetes controlado-
res de maquinari) es pot trobar en servidors empresarials (i comencen a tenir
certa presència en equips d'escriptori, amb plaques base amb capacitats per a
alguns RAID), en què es troben disponibles diferents solucions de maquinari
que compleixen aquests requisits de fiabilitat i de maximitzar prestacions. En
particular, per a ambients amb aplicacions intensives en disc, com reproduc-
ció d'àudio o vídeo en temps real, o grans bases de dades.
Convé destacar un error comú en el tema RAID, que proporciona certes capa-
citats de tolerància a errors, però no evita haver de fer còpies de seguretat de les
dades disponibles de manera periòdica. Si se supera la capacitat de tolerància
a errors, també es perden dades (en alguns casos, completament).
En general, aquest maquinari es troba en forma de targetes (o integrat a la
màquina) de tipus controladora RAID de discos, que implementen la gestió
d'un o més nivells (de l'especificació RAID), sobre un conjunt de discos (des
d'un mínim de dos discos) administrat per aquesta controladora.
En RAID es distingeix una sèrie de nivells (o configuracions possibles) que es
poden proporcionar (cada fabricant de maquinari, o el programari concret, pot
suportar un o diversos d'aquests nivells). Cada nivell de RAID s'aplica sobre
un conjunt de discos, de vegades denominat array RAID (o matriu de discos
RAID), que solen ser (idealment) discos iguals en mida (o iguals en mides per
grups). Per exemple, per a fer un cas de matriu es podrien utilitzar quatre discos
de 500 GB, o en un altre cas, dos grups (a 500 GB) de dos discos, un de 150
GB i un altre de 350 GB. En alguns casos de controladors de maquinari, no
GNUFDL • PID_00167525 64 Administració local
es permet que els discos (o en grups) siguin de diferents mides; en d'altres es
poden utilitzar, però la matriu queda definida per la mida del disc (o grup)
més petit.
Descrivim conceptes bàsics d'alguns nivells en la llista següent (teniu en comp-
te que, en alguns casos, la terminologia no és plenament acceptada, i pot de-
pendre de cada fabricant):
• RAID�0: es distribueixen les dades equitativament entre un o més discos
sense informació de paritat o redundància; no s'està oferint tolerància a
l'error. Només s'estan repartint dades; si el disc falla físicament la informa-
ció es perd i l'hem de recuperar a partir de còpies de seguretat. El que sí
que augmenta és el rendiment, depenent de la implementació de RAID 0,
ja que les operacions de lectura i escriptura es dividiran entre els diferents
discos.
Figura 3
• RAID�1: es crea una còpia exacta (mirror) en un conjunt de dos o més discos
(denominada matriu RAID). En aquest cas, resulta útil per al rendiment de
lectura (que es pot arribar a incrementar de manera lineal amb el nombre
de discos), i en especial per a disposar de tolerància a l'error d'un dels dis-
cos, ja que (per exemple, amb dos discos) es disposa de la mateixa infor-
mació. RAID 1 sol ser adequat per a alta disponibilitat, com en entorns de
24 x 7, en què hem de disposar críticament dels recursos. Aquesta configu-
ració ens permet també (si el maquinari ho suporta) l'intercanvi en calent
(hot-swap) dels discos. Si detectem l'error en un, el podem substituir, sense
apagar el sistema, per un disc nou.
GNUFDL • PID_00167525 65 Administració local
Figura 4
• RAID�2: en els anteriors es divideixen les dades en blocs per repartir. Aquí
es divideix en bits i s'utilitzen codis de redundància per a la correcció de
dades. No és utilitzat pràcticament, malgrat les altes prestacions que asso-
liria, ja que necessita idealment un nombre molt alt de discos, un per bit
de dades i diversos per al càlcul de la redundància (per exemple, en un
sistema de 32 bits, arribaria a usar 39 discos).
• RAID�3: utilitza divisió en bytes amb un disc dedicat a la paritat dels blocs.
Tampoc no és gaire utilitzada, ja que segons la mida de les dades i posicions
no permet accessos simultanis. RAID 4 és semblant, encara que divideix en
l'àmbit de blocs en lloc de bytes, la qual cosa permet que sí que es puguin
servir peticions simultànies quan se sol·licita un únic bloc.
• RAID�5: s'usa divisió en l'àmbit de blocs, distribuint la paritat entre els
discos. Té un ús ampli, a causa de l'esquema senzill de paritat, i al fet que
aquest càlcul s'implementa de manera senzilla per maquinari, amb bones
prestacions.
GNUFDL • PID_00167525 66 Administració local
Figura 5
• RAID� 0� +� 1� (o� 01): un mirror de divisions és un nivell de RAID niat.
S'implementen, per exemple, dos grups de RAID 0, els quals són usats en
RAID 1 per a crear mirror entre ells. Un avantatge és que, en cas d'error,
es pot reconstruir el nivell de RAID 0 usat gràcies a l'altra còpia, però si es
volen afegir discos cal afegir-los a tots els grups de RAID 0 de la mateixa
manera.
• RAID�10�(1�+�0): divisió de mirrors, grups de RAID 1 sota RAID 0. Així,
en cada grup de RAID 1 pot arribar a fallar un disc sense que es perdin
dades. És clar que això obliga a reemplaçar-los, ja que si no el disc que
quedi al grup es converteix en possible punt d'error de tot el sistema. És
una configuració que se sol usar per a base de dades d'altes prestacions (per
la tolerància a errors i la velocitat, en no estar basada en càlculs de paritat).
GNUFDL • PID_00167525 67 Administració local
Figura 6
Algunes consideracions per tenir en compte sobre RAID en general:
• RAID millora l'uptime del sistema, ja que alguns dels nivells permeten que
els discos fallin i el sistema continuï essent consistent, i depenent del ma-
quinari, fins i tot es pot canviar el maquinari problemàtic en calent sense
necessitat de parar el sistema, qüestió especialment important en sistemes
crítics.
• RAID pot millorar el rendiment de les aplicacions; en especial, en els siste-
mes amb implementacions de mirror és possible que la divisió de dades per-
meti que les operacions lineals de lectura s'incrementin significativament,
a causa de la possibilitat que els discos ofereixin, de manera simultània,
parts d'aquesta lectura, amb l'augment de la taxa de transferència de dades.
• RAID no protegeix les dades; evidentment, la destrucció per altres mitjans
(virus, mal funcionament general o desastres naturals) no està protegida.
Ens hem de basar en esquemes de còpies de seguretat. Tinguem en compte
que alguns esquemes protegeixen contra un o dos errors de discos de la
matriu, però si n'hi ha més, o depenent de l'esquema, directament (el cas
del RAID 0) es perdran dades.
GNUFDL • PID_00167525 68 Administració local
• No se simplifica la recuperació de dades; si un disc pertany a una matriu
RAID, s'ha d'intentar recuperar en aquest ambient. Es necessita programari
específic o els controladors de maquinari per a accedir a les dades.
• Al contrari, no sol millorar aplicacions típiques d'usuari –d'escriptori– a
causa que aquestes aplicacions tenen components alts d'accés aleatori a
dades, o a conjunts de dades petites; pot ser que no es beneficiïn de lectures
lineals o de transferències de dades sostingudes. En aquests ambients, és
possible que no es noti a penes millora de prestacions.
• Alguns esquemes augmenten de velocitat les operacions de lectura, però
d'altra banda penalitzen les d'escriptura (el cas del RAID 5 per al càlcul de
paritat que cal escriure). Si l'ús és bàsicament d'escriptura, caldrà buscar
quins esquemes no penalitzen o aconsegueixen la proporció d'escriptura
que necessitem (alguns casos, com RAID 0,1, o algunes modalitats de RAID
10, són equivalents a escriure en un disc únic, o fins i tot augmenten les
prestacions en aquest sentit).
• No es facilita el trasllat d'informació; sense RAID és bastant fàcil traslladar
dades, simplement movent el disc d'un sistema a un altre. En el cas de
RAID és gairebé impossible (tret que disposem del mateix maquinari con-
trolador) moure una matriu de discos a un altre sistema.
En el cas de GNU/Linux, es dóna suport al maquinari RAID mitjançant diver-
sos mòduls del nucli, associats a diferents conjunts de fabricants o circuits base,
joc de xips, d'aquestes controladores RAID. Es permet així al sistema abstreure's
dels mecanismes de maquinari i fer-los transparents al sistema i a l'usuari fi-
nal. Així, aquests mòduls del nucli ens permeten l'accés als detalls d'aquestes
controladores, i a la configuració de paràmetres de nivell molt baix, que en
alguns casos (especialment en servidors que suporten càrrega elevada d'E/S),
poden ser interessants per a processos de tunning del sistema de discos que usi
el servidor. Es busca maximitzar les prestacions del sistema.
L'altra possibilitat que analitzarem aquí és la realització d'aquests processos
mitjançant components de programari, concretament el component progra-
mari RAID de GNU/Linux.
GNU/Linux disposa en el nucli del controlador anomenat multiple device (md),
que podem considerar com el suport del nucli per a RAID. Mitjançant aquest
controlador podem implementar nivells de RAID, generalment 0, 1, 4, 5, 6 i
niats (per exemple, RAID 10) sobre diferents dispositius de bloc com discos
IDE, SATA o SCSI. També disposa del nivell linear, com a nivell en què es pro-
dueix una combinació lineal dels discos disponibles (és igual que siguin de
diferents mides), de manera que s'escriu consecutivament en els discos.
GNUFDL • PID_00167525 69 Administració local
Per a la utilització del RAID programari en Linux, hem de disposar del suport
RAID en el nucli, i en el seu cas els mòduls md actius (a més d'alguns controla-
dors específics segons el nivell; vegeu els controladors disponibles associats a
RAID, per exemple en Debian amb modconf). El mètode preferit per a la imple-
mentació de matrius de discos RAID, mitjançant el programari RAID ofert per
Linux, és mitjançant el procés d'instal·lació del sistema inicial, o bé mitjançant
la utilitat mdadm. Aquesta utilitat ens permet crear les matrius i gestionar-les.
Webs recomanats
Per a consultar conceptes de programari RAID, vegeu el Linux RAID wiki:
https://raid.wiki.kernel.org/index.php/Linux_Raid
http://www.linuxfoundation.org/collaborate/workgroups/linux-raid
Vegeu també els nivells RAID suportats:
https://raid.wiki.kernel.org/index.php/Introduction#The_RAID_levels
Observem-ne alguns casos pràctics. Suposem uns discos SCSI /dev/sda, /dev/
sdb... en els quals disposem de diverses particions disponibles per a implemen-
tar RAID:
Creació d'una matriu linear:
# mdadm -create -verbose /dev/md0 -level=linear -raid-devices=2 /dev/sda1 /dev/sdb1
en què es genera una matriu linear a partir de les particions primeres de /dev/
sda i /dev/sdb, creant el nou dispositiu /dev/md0, que ja pot ser usat com a
nou disc (suposant que existeixi el punt de muntatge /media/discRAID):
# mkfs.ext2fs /dev/md0
# mount /dev/md0 /media/discRAID
Per a un RAID 0 o RAID 1 podem canviar simplement el nivell (-level) a raid0
o raid1. Amb mdadm -detail /dev/md0 podrem comprovar els paràmetres de la
matriu nova creada.
També podem consultar l'entrada mdstat en /proc per a determinar les matrius
actives, i també els seus paràmetres. En especial, en els casos amb mirror (per
exemple, en els nivells 1, 5...) podrem observar en la seva creació la construc-
ció inicial de la matriu de les còpies, en /proc/mdstat indicarà el nivell de re-
construcció (i el temps aproximat d'acabament).
mdadm disposa de moltes opcions que ens permeten examinar i gestionar les
diferents matrius RAID de programari creades (en podem veure una descripció
i exemples en man mdadm).
GNUFDL • PID_00167525 70 Administració local
Una altra qüestió important és que les matrius RAID per programari no són
automàticament reconegudes en l'arrencada (com sí que passa amb el RAID
de maquinari suportat), ja que de fet depenen de la construcció amb mdadm.
Perquè la definició d'una matriu de programari sigui persistent, cal registrar-
la al fitxer de configuració /etc/mdadm.conf (la ubicació pot dependre de la
distribució). Un pas senzill és crear-lo automàticament a partir del resultat de
l'ordre.
mdadm -detail -scan (també es pot afegir --verbose)
Una altra consideració important són les optimitzacions a què es poden sot-
metre les matrius RAID per a millorar-ne el rendiment, tant per a monitoritzar
el comportament com per a optimitzar paràmetres del sistema de fitxers, per
a fer un ús més efectiu dels nivells RAID i les seves característiques.
Passarem a detallar un altre cas de configuració RAID més elaborat basat en
l'elaboració d'un RAID 5.
Aquest nivell RAID (com a mínim de tres discos) presenta una configuració
distribuïda de dades i paritat en els discos que formen la matriu. Es presenta
molt bon rendiment en lectura, però disminueix l'escriptura (respecte a un
únic disc), ja que cal calcular la paritat i distribuir-la entre els discos (en casos
RAID de maquinari, aquest cas de càlcul de paritat s'accelera mitjançant ma-
quinari). Una altra dada que cal tenir en compte és que la capacitat final ob-
tinguda és la suma de N – 1 discos, i aquesta configuració és resistent a un error
de disc present en la matriu, el qual es pot reemplaçar i tornar a reconstruir
la matriu. El nivell no suporta dos errors de disc (probabilitat que, de fet, pot
augmentar si en la matriu RAID s'integra un nombre elevat de discos), amb
la qual cosa, com ja comentem, disposar de RAID no ens inhibeix del procés
de còpia de seguretat de dades. Si volguéssim disposar de més fiabilitat, ens
podríem moure a RAID 6, que té càlcul amb paritat dual, a costa de baixar
rendiment, o a configuracions amb RAID 10, que té un bon compromís entre
rendiment i fiabilitat.
Farem, en aquest cas, el procés de construcció amb quatre discos SATA d'alta
capacitat 1,5 TB, amb un emmagatzemament final de 4,5 TB (aproximada-
ment). La matriu RAID és complementària al sistema existent; en casos en què
hagi d'incloure particions de boot, el procés és més delicat (vegeu les recoma-
nacions del RAID software wiki, comentat anteriorment).
Utilitzarem quatre discos SATA presents en el sistema com a /dev/sdb, sdb,
sdc, sdd, sde. El disc /dev/sda se suposa que inclou el sistema i les particions
d'arrencada, i no forma part del RAID. Primer hem de passar per la inicialit-
zacio dels discos (aquest procés esborra qualsevol contingut previ); definirem
una partició única (en aquest cas, integrarem tot l'emmagatzemament dispo-
nible; en altres esquemes es podrien fer diverses particions), creada amb fdisk.
Fonamentalment, seleccionem una nova partició primària, requisits per de-
Nota
L'optimització de les ma-trius RAID pot ser una fontimportant de sintonitzaciódel sistema. Examineu al-gunes qüestions en https://raid.wiki.kernel.org/index.php/Performance o en la pàginaman mateixa d'mdadm.
GNUFDL • PID_00167525 71 Administració local
fecte i canviem el tipus de partició a Linux Raid autodetect (codi fd), fent el
procés amb fdisk, si x és cada disc diferent de la matriu, i el parèntesi inclou
les opcions mitjançant teclat de fdisk:
# fdisk /dev/sdx (d n p 1 ENTER ENTER t fd w)
(per al nostre cas, 4 vegades amb x=b,c,d,e).
Respecte a aquesta inicialització, cal anar amb compte amb les mides de disc, ja
que fdisk amb particions de tipus msdos només suporta particions fins a 2 TB. Si
els discos fossin majors ens hauríem de moure a altres eines de particionament,
com gparted/parted, que suporta nous tipus de particions com GPT, que ja no
disposa d'aquestes restriccions de mida.
Una vegada feta aquesta inicialització, ja podem passar a construir la matriu:
# mdadm --create /dev/md0 --level=5 --verbose --force --chunk=512
--raid-devices=4 /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1
Un paràmetre important en RAID més avançats és la mida del paràmetre chunk
(per defecte, 64 unitats en kB), que té especial rellevància en les prestacions
del RAID. Hi ha estudis que determinen mides adequades de chunk en funció
de la funcionalitat final del RAID (escriptura o lectura, mida mitjana dels ac-
cessos, accés principalment aleatori o seqüencial, etc.). En general, en RAID
5 es recomanen mides de 128 o més, i fins i tot més elevades, de 512-1024,
depenent de la mida mitjana dels arxius.
Una vegada llançada la instrucció anterior, començarà la construcció del RAID
en segon pla. Podem anar consultant /proc/mdstat, que ens esmentarà la ve-
locitat de construcció i el percentatge, i també una estimació de temps per
a finalitzar. Els temps de construcció són bastant grans per a altes capacitats
d'espai, i poden anar des d'algunes hores fins a dies, depenent de les capacitats
dels discos i la màquina.
Podríem estar veient 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>
I una vegada finalitzat:
GNUFDL • PID_00167525 72 Administració local
# 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 pas següent és crear un filesystem en el nostre recentment creat array, vist pel
sistema com el dispositiu /dev/md0 (aquest pas es podria iniciar simultània-
ment durant la reconstrucció, però per velocitat i seguretat en alguns passos
crítics inicials es recomana fer-ho al final del procés).
En el nostre cas, optimitzarem lleugerament aquesta creació examinant alguns
paràmetres; crearem un filesystem ext3 en la matriu completa (és recomanable
usar un gestor de volums primer, com LVM, que veurem a continuació, perquè
ens permetrà crear diverses particions lògiques, que es puguin expandir en el
futur o contreure's segons les necessitats).
Per a la creació del filesystem hi ha algunes recomanacions generals que pro-
venen a partir de la mida de chunk (nombre de dades consecutives que resideix
en un disc en kB), que de fet ens defineix com s'accedeix a la matriu, i dels
discos presents, un possible esquema de creació d'un filesystem ext3:
mkfs.ext3 -v -b 4096 -E stride=128,stripe-width=384 /dev/md0
en què -b 4096 és la mida de bloc de disc, recomanada per a filesystems molt
grans, i -E defineix opcions del filesystem per a optimitzar-ne el rendiment.
Aquestes opcions es poden variar després amb la instrucció tune2fs.
En aquestes opcions se sol suggerir un càlcul relacionat amb el chunk, que pot
ser en el nostre exemple:
• chunk size = 512 kB (col·locat en la instrucció mdadm en la creació
de la matriu)
• block size = 4 kB (recomanat per a grans filesystems)
• stride = chunk / block = 512 kB / 4k = 128 kB
• stripe-width = stride * ( (n discos en el raid 5) – 1 ) = 128 kB * ( (4) –
1 ) = 128 kB * 3 = 384 kB
Això ens permet ajustar els paràmetres del sistema de fitxers a l'ús del chunk
escollit.
GNUFDL • PID_00167525 73 Administració local
Una vegada creat el sistema de fitxers, ja tenim la matriu disponible perquè
pugui ser muntada en una ubicació del sistema (suposant un directori previ
/mnt/raid5):
# mount -t ext3 /mnt/raid5 /dev/md0
I ja el tenim disponible en el sistema. Si el volem fer fix, recordeu introduir
els paràmetres en /etc/fstab perquè es munti en l'arrencada. I en aquest cas
de matriu de programari és recomanable (encara que alguns nuclis recents ja
suporten autodetecció de RAID de programari), col·locar la informació RAID
en el fitxer /etc/mdadm.conf, mitjançant la consulta de l'identificador de la
matriu amb les instruccions # mdadm -detail -scan (amb -verbose si es necessita
la identificació de dispositius):
#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 reinici següent del sistema ja disposarem de la matriu muntada en ar-
rencada. També, com a punt final, podem obtenir la informació de la matriu
amb 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_00167525 74 Administració 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
Respecte al funcionament del sistema, cal examinar tant aquest informe com
el proporcionat per /proc/mdstat per a controlar de manera periòdica (manu-
alment, mitjançant cron, o per notificacions mitjançant el correu) l'estat del
RAID (en aquest cas actiu), per a determinar si es produeix algun error de disc.
En aquest estat la matriu passaria a degraded, i el sistema perdria la seva capa-
citat de tolerància a un error següent. És llavors necessari detectar quin disc
està fallant i substituir-lo, perquè comenci la reconstrucció de la matriu (mit-
jançant mdadm es pot eliminar un disc de la matriu, i afegir una vegada fet el
canvi de maquinari el nou disc). També és possible mitjançant mdadm simular
degradacions o errors, la qual cosa ens permet provar la nostra matriu davant
de condicions extremes.
Finalment, destaquem que la creació de matrius RAID és molt interessant per
a la realització de grans suports de discos per a entorns empresarials en què
s'intenta maximitzar la tolerància a errors, la recuperació ràpida davant de pro-
blemes i un suport continu de serveis sense interrupcions. És un camp també
en què es necessita un entorn acurat d'anàlisi de rendiment de les solucions,
dels requisits inicials del servei i experimentació amb les diferents solucions
possibles.
8.2. Volums lògics (LVM)
En un moment determinat, sorgeix la necessitat d'abstreure's del sistema físic
de discos, i de la seva configuració i nombre de dispositius, que el sistema
(operatiu) s'encarregui d'aquesta feina i no ens hàgim de preocupar d'aquests
paràmetres directament. En aquest sentit, es pot veure el sistema de volums
lògics com una capa de virtualització de l'emmagatzemament que permet una
visió més simple que faciliti la utilització fluida i senzilla.
En el nucli Linux es disposa d'LVM (logical volume manager), que es va basar
en idees desenvolupades de gestors de volums d'emmagatzemament usats en
HP-UX (una versió UNIX propietat d'HP). Actualment n'hi ha dues versions,
de les quals LVM2 és la més utilitzada, per una sèrie de prestacions afegides
que incorpora.
L'arquitectura d'una LVM consisteix típicament en els components (princi-
pals):
GNUFDL • PID_00167525 75 Administració local
1)�Volums�físics (PV): són els discos durs, o particions d'aquests discos, o qual-
sevol altre element que aparegui com un disc dur amb vista al sistema (per
exemple, un RAID per programari o maquinari).
2)�Volums�lògics (LV): és l'equivalent a la partició del disc físic. Aquesta LV
és visible en el sistema com un dispositiu de blocs (absolutament equivalent a
una partició física), i pot contenir un sistema de fitxers (per exemple, el /home
dels usuaris). Els volums tenen més sentit per als administradors, ja que es
poden usar noms per a identificar-los (així podem utilitzar un dispositiu lògic,
anomenat stock o marketing en lloc d'hda6 o sdc3).
3)�Grups�de�volums (VG): és l'element de la capa superior. La unitat adminis-
trativa que engloba els nostres recursos, ja siguin volums lògics (LV) o físics
(PV). En aquesta unitat es desen les dades dels PV disponibles, i com es formen
les LV a partir dels PV. Evidentment, per a poder utilitzar un grup VG, hem de
disposar de suports físics PV, que s'organitzen en diferents unitats lògiques LV.
A la figura següent observem un grup de volums, en què disposem de set PV,
en forma de particions de discos, que s'han agrupat per a formar dos volums
lògics (que s'han acabat utilitzant per a formar els sistemes de fitxers /usr i
/home):
Figura 7. Esquema d'un exemple d'LVM.
Amb l'ús dels volums lògics permetem un tractament més flexible de l'espai
en el sistema d'emmagatzematge (que podria tenir un gran nombre de discos
i particions diferents), segons les necessitats que ens apareguin. Podem gesti-
onar l'espai, tant amb identificadors més adequats com amb operacions que
ens permetin adequar les necessitats a l'espai disponible en cada moment.
GNUFDL • PID_00167525 76 Administració local
Els sistemes de gestió de volums ens permeten:
1) Redimensionar dinàmicament grups i volums lògics, aprofitant nous PV, o
extraient-ne alguns dels disponibles inicialment.
2) Instantànies del sistema d'arxius (lectura en LVM1 i lectura o escriptura en
LVM2). Això facilita la creació d'un nou dispositiu que sigui una instantània
en el temps de la situació d'una LV. Es pot crear, per exemple, la instantània,
muntar-la, provar diverses operacions o una configuració nova de programari,
o altres elements, i si no funciona com esperàvem, tornar el volum original al
seu estat abans de les proves.
3) RAID 0 de volums lògics.
En LVM no s'implementen configuracions de RAID de tipus 1 o 5, si són ne-
cessàries (és a dir, redundància i tolerància a error). El procés és utilitzar pro-
gramari de RAID o controladora de maquinari RAID que l'implementi en un
determinat nivell de RAID, i després col·locar LVM com a capa superior al RAID
creat prèviament.
Fem un breu exemple de creació típica (en molts casos, l'instal·lador de la
distribució fa un procés semblant, si permetem un LVM com a sistema inicial
d'emmagatzemament). Bàsicament, es fa:
a) la creació dels volums físics (PV),
b) creació del grup lògic (VG),
c) creació del volum lògic (LV), i
d) utilització per a creació d'un sistema de fitxers, i muntatge posterior:
1) Disposem, per exemple, de tres particions de diferents discos. Creem tres PV
(els passos inicials esborren qualsevol contingut dels discos) i n'inicialitzem
el contingut:
# 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
GNUFDL • PID_00167525 77 Administració local
Physical volume "/dev/hdb1" successfully created
2) Col·loquem en un VG creat dels diferents PV:
# vgcreate grup_discos /dev/hda1 /dev/hda2 /dev/hdb1
Volume group "grup_discos" successfully created
3) Creem l'LV (en aquest cas, de mida 1 GB) a partir dels elements que tenim
en el grup VG (-n indica el nom del volum):
# lvcreate -L1G -n volum_logic grup_discos
lvcreate -- doing automatic backup of "grup_discos"
lvcreate -- logical volume "/dev/grup_discos/volum_logic" successfully created
4) I finalment, creem un sistema de fitxers (un reiser en aquest cas):
# mkfs.reiserfs /dev/grup_discos/volum_logic
Que, per exemple, podríem col·locar d'espai per a còpies de seguretat:
mkdir /mnt/backup
mount -t reiserfs /dev/grup_discos/volum_logic /mnt/backup
I disposem finalment del dispositiu com un volum lògic que implementa un
sistema de fitxers.
GNUFDL • PID_00167525 78 Administració local
9. Programari: actualització
Per a l'administració de la instal·lació o actualització de programari en el nostre
sistema, dependrem en primera instància del tipus de paquets de programari
que utilitzi el nostre sistema:
• RPM: paquets que utilitza la distribució Fedora/Red Hat (i derivades). Se
solen manejar mitjançant la instrucció rpm. Contenen informació de de-
pendències del programari. A alt nivell mitjançant YUM (o up2date en al-
gunes distribucions derivades de Red Hat).
• DEB: paquets de Debian, se solen manejar amb un conjunt d'eines que
treballen a diferents nivells amb paquets individuals o grups. Entre aques-
tes eines, es poden esmentar dselect, tasksel, dpkg, apt-get i aptitude.
• Tar, o bé els tgz (també tar.gz): són purament paquets de fitxers units i
comprimits mitjançant instruccions estàndard com tar i gzip (s'usen els
mateixos per a la descompressió). Aquests paquets no contenen informa-
ció de dependències i es poden instal·lar en diferents llocs, si no és que
porten informació de ruta (path) absoluta.
Per a manejar aquests paquets hi ha diverses eines gràfiques, com, per a RPM,
Kpackage; per a DEB, Synaptic o Gnome-apt; per a tgz, Kpackage o des del
gestor de fitxers gràfics mateix (en el Gnome o el KDE). També hi sol haver
utilitats de conversió de paquets. Per exemple, en Debian tenim la instrucció
alien, que permet convertir paquets RPM a DEB. Encara que cal prendre les
precaucions oportunes perquè el paquet, per tenir una distribució de destina-
ció diferent, no modifiqui algun comportament o fitxer de sistema no esperat.
Depenent de l'ús dels tipus de paquets o eines, l'actualització o instal·lació de
programari del nostre sistema es podrà produir de diferents maneres:
1) Des dels CD mateixos d'instal·lació del sistema. Totes les distribucions bus-
quen el programari en els seus CD. Però cal tenir en compte que aquest pro-
gramari no sigui antic i no inclogui, per aquesta raó, alguns pegats com a
actualitzacions, o noves versions amb més prestacions, amb la qual cosa, si
s'instal·la a partir de CD, és bastant comú verificar després que no hi hagi al-
guna versió més recent.
2) Mitjançant serveis d'actualització o cerca de programari, ja sigui de manera
gratuïta, com el cas de l'eina apt-get de Debian, o YUM a Fedora, o serveis de
subscripció (de pagament o amb facilitats bàsiques), com el Red Hat Network
de les versions Red Hat comercials.
Vegeu també
En l'apartat 1, "Eines bàsi-ques per a l'administrador,"desenvolupem en profunditataquests conceptes.
GNUFDL • PID_00167525 79 Administració local
3) Amb repositoris de programari que ofereixen paquets de programari
preconstruïts per a una distribució determinada.
4) El creador o distribuïdor mateix del programari, que ofereix una sèrie de
paquets d'instal·lació del seu programari. Podem no trobar el tipus de paquets
necessari per a la nostra distribució.
5) Programari sense empaquetament o amb un empaquetament només de
compressió sense cap tipus de dependències.
6) Només codi font, en forma de paquet o bé fitxer comprimit.
GNUFDL • PID_00167525 80 Administració local
10.Feines no interactives
En les tasques d'administració, sol ser necessària l'execució a intervals tempo-
rals de certes tasques, ja sigui per a programar les tasques per a fer-les en ho-
raris de menys ús de la màquina, o bé per la naturalesa periòdica mateixa de
les tasques que es vulguin desenvolupar.
Per a dur a terme aquest tipus de feines "fora d'hores", com a serveis periòdics
o programats, hi ha diversos sistemes que ens permeten construir un tipus
d'agenda de tasques (planificació d'execució de tasques):
• nohup: és potser el cas més simple utilitzat pels usuaris. Els permet
l'execució d'una tasca no interactiva una vegada que hagin sortit del seu
compte. En sortir del compte, l'usuari perd els seus processos, i nohup per-
met deixar-los en execució, malgrat que l'usuari es desconnecti.
• at: ens deixa llançar una acció per a executar-la més tard, programant un
determinat instant en què s'iniciarà, especificant l'hora (hh:mm) i la data,
o bé si es farà avui (today) o demà (tomorrow).
at 10pm tasca
fer la tasca a les deu de la nit.
at 2am tomorrow tasca
fer la tasca a les dues de la matinada.
• cron: permet establir una llista de feines per fer amb la seva programació;
aquesta configuració es desa en /etc/crontab. Concretament, en cada en-
trada d'aquest fitxer tenim: minuts i hora que s'efectuarà la tasca, quin dia
del mes, quin mes, quin dia de la setmana, juntament amb què (ja sigui
una tasca, o bé un directori en què hi haurà les tasques per executar).
De manera estàndard, el contingut és semblant al següent:
25 6 * * * root test -e /usr/sbin/anacron || run-parts --report/etc/cron.daily47 6 * * 7 root test -e /usr/sbin/anacron || run-parts --report/etc/cron.weekly52 6 1 * * root test -e /usr/sbin/anacron || run-parts --report/etc/cron.monthl
en què s'està programant que una sèrie de tasques es faran: cada dia (* indica qualsevol),setmanalment (el setè dia de la setmana), o mensualment (el primer de cada mes). Lesfeines serien executades per la instrucció crontab, però el sistema cron implica que la mà-quina està sempre encesa. Si no és així, és millor utilitzar anacron, que verifica si l'accióno es va fer quan l'hauria hagut de fer, i llavors l'executa. En cada línia del fitxer anteriores verifica que hi hagi la instrucció anacron i s'executen els scripts associats a cada acció,que en aquest cas estan desats en uns directoris assignats per a això, els cron.
GNUFDL • PID_00167525 81 Administració local
També hi pot haver uns fitxers cron.allow, cron.deny, per a limitar qui pot
col·locar (o no) tasques en cron. Mitjançant la instrucció crontab, un usuari pot
definir tasques en el mateix format que hem vist abans, que es guardaran en /
var/spool/cron/crontabs. En alguns casos, hi ha també un directori /etc/cron.d
on es poden col·locar feines i que és tractat com si fos una extensió del fitxer
/etc/crontab. En algunes versions, el sistema ja especifica les seves feines pe-
riòdiques de sistema directament sobre subdirectoris de /etc com cron.hourly/,
cron.daily/, cron.weekly i cron.montly/, on es col·loquen les feines de sistema
que necessiten aquesta periodicitat.
GNUFDL • PID_00167525 82 Administració local
11.Taller: pràctiques combinades dels apartats
Començarem per examinar l'estat general del nostre sistema. Farem els dife-
rents passos en un sistema Debian. Encara que es tracta d'un sistema Debian,
els procediments són majoritàriament traslladables a altres distribucions, com
Fedora/Red Hat (esmentarem alguns dels canvis més importants). El maquina-
ri consisteix en un Pentium 4 a 2.66 MHz amb 768 MB i diversos discos, DVD
i gravador de CD, a més d'altres perifèrics, però ja anirem obtenint aquesta
informació pas per pas.
Vegem primer com ha engegat el nostre sistema l'última vegada:
# uptime
17:38:22 up 2:46, 5 users, load average: 0.05, 0.03, 0.04
Aquest instrucció ens dóna el temps que fa que funciona el sistema des que
es va arrencar l'última vegada: 2 hores i 46 minuts. En el nostre cas tenim
cinc usuaris. Aquests no han de ser necessàriament cinc usuaris diferents, sinó
que seran les sessions d'usuari obertes (per exemple, mitjançant un terminal).
La instrucció who permet mostrar aquests usuaris. El load average és la càrrega
mitjana del sistema en els últims 1, 5 i 15 minuts.
Vegem el registre de l'arrencada del sistema (instrucció dmesg), les línies que
s'anaven generant en la càrrega del sistema (s'han suprimit diferents línies per
claredat):
Linux version 2.6.20-1-686 (Debian 2.6.20-2) ([email protected]) (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_00167525 83 Administració local
759MB LOWMEM available.
Aquestes primeres línies ja ens indiquen diverses dades interessants: la versió
del nucli Linux és la 2.6.20-1-686, una versió 2.6 revisió 20 amb revisió 1 de
Debian, i per a màquines 686 (arquitectura Intel x86 de 32 bits). Indica, també,
que estem arrencant un sistema Debian, amb aquest nucli, que va ser compilat
amb un compilador GNU GCC versió 4.1.2. A continuació, es veu un mapa
de zones de memòria usades (reservades) per la BIOS, i a continuació el total
de memòria detectada a la màquina: 759 MB, als quals caldria sumar el primer
1 MB, amb un 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í ens refereix com ha estat l'arrencada de la màquina, quina línia
d'instruccions se li ha passat al nucli (es poden passar diferents opcions, per
exemple des del LILO o GRUB). I estem arrencant en mode consola de 80 × 25
caràcters (això es pot canviar). Els BogoMIPS són una mesura interna del nucli
de la velocitat de la CPU; hi ha arquitectures en què és difícil detectar a quants
MHz o GHz funciona la CPU, i per això s'utilitza aquesta mesura de velocitat.
Després ens dóna més dades de la memòria principal, i ens diu per a què s'està
usant en aquest moment de l'arrencada.
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
A més, ens proporciona dades diverses de la CPU, la mida de les memòries cau
de primer nivell, la memòria cau interna de la CPU, L1 dividida en una Trace-
Cache del Pentium 4 (o instruction cache), i la cau de dades, i la cau unificada
de segon nivell (L2), el tipus de CPU, la seva velocitat i la 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_00167525 84 Administració 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
Continuen les inicialitzacions del nucli i els dispositius; esmenta la inicialit-
zació de protocols de xarxa. Els terminals, els ports sèrie ttyS0 (seria el COM1),
ttyS01 (el COM2), dóna informació dels discos RAM que usem i detecta dispo-
sitius PS2, teclat i ratolí.
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.
Detecció de dispositius IDE, detecta el xip IDE al bus PCI i informa que està
controlant dos dispositius: hda i hdc, que són, respectivament, un disc dur
(Fujitsu), un segon disc dur, un DVD Samsung i una enregistradora de CD (ja
GNUFDL • PID_00167525 85 Administració local
que en aquest cas es tracta d'una unitat combinada). Indica particions actives
en el disc. Més endavant, detecta el sistema principal de fitxers de Linux, un
ext3 amb journal, que activa i afegeix l'espai de swap disponible en una partició.
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
Més detecció de dispositius, USB en aquest cas (i els mòduls que hi correspo-
nen). Ha detectat dos dispositius hub (amb un total de 8 ports USB).
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_00167525 86 Administració local
I la detecció final de la resta de dispositius: port paral·lel, model de ratolí, port
Firewire (ieee1394), targeta de xarxa (Intel), un tauler tàctil, la targeta de vídeo
AGP (i845). Més dades de la targeta de xarxa: una Intel Pro 100, registre d'USB
com a mass storage (indica un dispositiu d'emmagatzematge per USB, com un
disc extern) i detecció del port paral·lel.
Tota aquesta informació, que hem vist mitjançant la instrucció dmesg, també
la podem trobar bolcada en el registre principal del sistema, /var/log/messages.
En aquest registre, entre altres, trobarem els missatges del nucli i dels dimonis,
i errors de xarxa o dispositius, els quals comuniquen els seus missatges a un
dimoni especial anomenat syslogd, que és l'encarregat d'escriure els missatges
en aquest fitxer. Si hem arrencat la màquina recentment, observarem que les
últimes línies contenen exactament la mateixa informació que la instrucció
dmesg; per exemple, si ens quedem amb la part final del fitxer (sol ser molt
gran):
tail 200 /var/log/messages
Observem les línies d'abans, i també algunes informacions més, com per exem-
ple:
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) ([email protected]) (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 part correspon a l'aturada anterior del sistema; ens informa que el
nucli ha deixat de col·locar informació en /proc, s'està parant el sistema... Al
principi de l'arrencada nova, s'activa el dimoni syslogd, que genera el registre i
comença la càrrega del sistema, que ens diu que el nucli començarà a escriure
informació en el seu sistema /proc. Veiem les primeres línies de dmesg d'esment
de la versió que s'està carregant de nucli, i després trobarem el que hem vist
amb dmesg.
GNUFDL • PID_00167525 87 Administració local
En aquest punt, una altra instrucció útil per a saber com s'ha produït la càrrega
és lsmod, que ens permetrà saber quins mòduls dinàmics s'han carregat amb
el nucli (versió 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_00167525 88 Administració 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
Veiem que disposem dels controladors per al maquinari que hem detectat, i
d'altres de relacionats o necessaris per dependències.
Ja tenim, doncs, una idea de com s'han carregat el nucli i els seus mòduls. En
aquest procés pot ser que ja hàgim observat algun error; si hi ha maquinari
mal configurat o mòduls del nucli mal compilats (no eren per a la versió del
nucli adequada), inexistents, etc.
El pas següent serà l'observació dels processos en el sistema, amb la instrucció
ps (process status), per exemple (només s'han mostrat els processos de sistema,
no els dels usuaris):
#ps -ef
UID PID PPID C STIME TTY TIME CMD
Informació dels processos: UID, usuari que ha llançat el procés (o amb quin
identificador s'ha llançat); PID, codi del procés assignat pel sistema –són con-
secutius a mesura que es llancen els processos, el primer sempre és el 0, que
correspon al procés d'init–; PPID és l'ID del procés pare de l'actual; STIME, el
temps en què va ser engegat el procés; TTY, el terminal assignat al procés (si
en té algun); CMD, línia d'instruccions amb què va ser llançat.
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]
root 357 6 0 14:52 ? 00:00:01 [kjournald]
GNUFDL • PID_00167525 89 Administració local
root 477 1 0 14:52 ? 00:00:00 udevd --daemon
root 719 6 0 14:52 ? 00:00:00 [khubd]
Diversos dimonis de sistema, com kswapd, dimoni que controla l'intercanvi
de pàgines amb memòria virtual. Gestió de memòries intermèdies del sistema
(bdflush). Gestió de journal de filesystem (kjournald), gestió d'USB (khubd). O el
dimoni udev, que controla la connexió en calent de dispositius. En general
(no sempre) els dimonis se solen identificar per una d final, i si porten una k
inicial, normalment són fils (threads) interns del nucli.
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
Tenim: dhclient, que indica que aquesta màquina és clienta d'un servidor
DHCP, per a obtenir la seva IP; syslogd, dimoni que envia missatges al registre;
el dimoni de cups, com hem vist, està relacionat amb el sistema d'impressió; i
inetd, que, com veurem en la part de xarxes, és una espècie de "superservidor"
o mediador d'altres dimonis relacionats amb serveis de xarxa.
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
També hi ha sshd, servidor d'accés remot segur (una versió millorada que per-
met serveis compatibles amb Telnet i FTP); xfs és el servidor de tipus de lletra
d'X Window. Les instruccions atd i cron serveixen per a manejar tasques pro-
gramades en un moment determinat. Apache és el servidor web, que pot tenir
diverses cadenes actives (threads) per a atendre diferents peticions.
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_00167525 90 Administració local
Així, gdm és la connexió gràfica del sistema d'escriptori Gnome (l'entrada que
ens demana la connexió i la contrasenya); els processos getty són els que gesti-
onen els terminals virtuals de text (els que podem veure amb les tecles Alt+Fn,
o Ctrl+Alt+Fn si estem en mode gràfic); X és el procés del servidor gràfic X
Window System, imprescindible perquè s'executi qualsevol entorn d'escriptori
a sobre. Un intèrpret obert (bash), i finalment el procés que hem generat en
demanar aquest ps des de la línia d'instruccions.
La instrucció ps té moltes opcions de línia d'ordres per a ajustar la informació
que volem de cada procés, ja sigui el temps que fa que s'executa, el percentatge
de CPU usat, la memòria utilitzada, etc. (vegeu man ps). Una altra instrucció
molt interessant és top, que fa el mateix que ps però de manera dinàmica;
s'actualitza cada cert interval; podem classificar els processos per ús de CPU,
de memòria, i també ens dóna informació de l'estat de la memòria global.
Altres instruccions útils per a l'ús de recursos són free i vmstat, que ens donen
informació sobre la memòria utilitzada i el sistema de memòria 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 la instrucció free també es pot observar la mida del swap present, aproxima-
dament d'uns 600 MB, que de moment no s'està usant intensament per tenir
suficient espai de memòria física. Encara en queden uns 22 MB lliures (fet que
indica una alta utilització de la memòria física i un ús proper de swap). L'espai
de memòria i el swap (a partir dels nuclis 2.4) són additius per a compondre el
total de memòria del sistema, i en aquest cas fa un total d'1,4 GB de memòria
disponible.
Nota
Vegeu el man de les instrucci-ons per a interpretar les sorti-des.
GNUFDL • PID_00167525 91 Administració local
Activitats
1. Feu una lectura ràpida de l'estàndard FHS, que ens servirà per a tenir una bona guia a l'horade buscar arxius per a la nostra distribució.
2. Per als paquets RPM, com faríeu algunes de les tasques següents?
a) Conèixer quin paquet va instal·lar una determinada instrucció.
b) Obtenir la descripció del paquet que va instal·lar una instrucció.
c) Esborrar un paquet del qual no coneixem el nom complet.
d) Mostrar tots els arxius que eren al mateix paquet que un determinat arxiu.
3. Efectueu les mateixes tasques que en l'activitat anterior, però per a paquets Debian, usanteines APT.
4. Actualitzeu una distribució Debian (o Fedora).
5. Instal·leu en la nostra distribució alguna eina genèrica d'administració, com Webadmin.Què ens ofereix? Enteneu les tasques executades i els efectes que provoquen?
6. L'espai de swap permet complementar la memòria física per a disposar de més memòriavirtual. Depenent de les mides de memòria física i swap, es pot arribar a esgotar la memòria?Ho podem solucionar d'una altra manera que no sigui afegint més memòria física?
7. Suposem que tenim un sistema amb dues particions Linux, una / i l'altra de swap. Comsolucionaríeu el cas que els comptes dels usuaris esgotessin l'espai de disc? I en el cas de teniruna partició /home aïllada que s'estigués esgotant, com ho solucionaríeu?
8. Instal·leu el sistema d'impressió CUPS, definiu la nostra impressora perquè funcioni ambCUPS i proveu l'administració via interfície web. Tal com està el sistema, seria recomanablemodificar d'alguna manera la configuració que porta per defecte CUPS? Per què?
9. Analitzeu el sistema Upstart present en una distribució Fedora. Quins esdeveniments i jobsporta predefinits? Hi ha compatibilitat amb l'init de System V?
10. Examineu la configuració per defecte que porti el sistema GNU/Linux per a feines nointeractives amb cron. Quines feines s'estan fent? Quan s'estan fent? Alguna idea per a novesfeines que calgui afegir?
11. Reproduiu l'anàlisi del taller (més els altres apartats de la unitat) sobre la màquina dequè disposeu; s'observen en el sistema alguns errors o situacions anòmales? En aquest cas,com ho corregiu?
Nota
Vegeu FHS a:http://www.pathname.com/fhs
GNUFDL • PID_00167525 92 Administració local
Bibliografia
[Bai] Bailey, E. C. (2003). RedHat Maximum RPM.<http://www.redhat.com/docs/books/max-rpm/index.html>
Ofereix una àmplia visió dels sistemes de paquets de programari de les distribucions Debiani Fedora/Red Hat.
[Debb] Comunitat Debian. "Distribució Debian". <http://www.debian.org>
[Coo] Cooper, M. (2006). "Advanced Bash Scripting Guide". The Linux Documentation Project(guies).
Ofereix una àmplia introducció (i conceptes avançats) a la programació de shell scripts enBash, i també nombrosos exemples.
[Deb] Debian. "Lloc de Seguretat de Debian". <http://www.debian.org/security/>
Ofereix una àmplia visió dels sistemes de paquets de programari de les distribucions Debiani Fedora/Red Hat.
[Lin03b] FHS Standard (2003). <http://www.pathname.com/fhs>
[Fri02] Frisch, A. (2002). Essential System Administration. O'Reilly.
Administració de GNU/Linux i UNIX. Comenta de manera àmplia aspectes d'administraciólocal i gestió de sistemes d'impressió.
[Hin00] Hinner, M. "Filesystems HOWTO". The Linux Documentation Project.
Informació sobre els diferents sistemes de fitxers disponibles i els esquemes de creació departicions per a la instal·lació del sistema.
[Koe] Koehntopp, K. "Linux Partition HOWTO". The Linux Documentation Project.
Informació sobre els diferents sistemes de fitxers disponibles i els esquemes de creació departicions per a la instal·lació 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.
Ofereix una àmplia introducció (i conceptes avançats) a la programació de shell scripts enBash, i també nombrosos exemples.
[Mor03] Morill, D. (2003). Configuración de sistemas Linux. Anaya Multimedia.
[Nem06] Nemeth, E.; Snyder, G.; Hein, T. R. (2006). "Linux Administration Handbook"(2a. ed.). Prentice Hall.
Tracta de manera àmplia de la majoria d'aspectes d'administració i és una bona guia genèricaper a qualsevol distribució.
[Qui01] Quigley, E. (2001). Linux shells by Example. Prentice Hall.
Comenta els diferents intèrprets de programació en GNU/Linux, i també les seves semblancesi diferències.
[SM02] Schwartz, M. i altres (2002). Multitool Linux - Practical Uses for Open Source Softwa-re. Addison Wesley.
[Smi02] Smith, R. (2002). Advanced Linux Networking. Addison Wesley.
Administració de GNU/Linux i UNIX. Comenta de manera àmplia aspectes d'administraciólocal i gestió de sistemes d'impressió.
[Sob10] Sobell, M. G. (2010). A Practical Guide to Fedora and Red Hat Enterprise Linux. Pren-tice Hall.
És una bona guia d'administració local per a distribucions Red Hat i Fedora.
GNUFDL • PID_00167525 93 Administració local
[Stu] Stutz, M. "The Linux Cookbook: Tips and Techniques for Everyday Use". The LinuxDocumentation Project (guies).
És una àmplia introducció a les eines disponibles en GNU/Linux.
[Gt] Taylor, G.; Allaert, D. "The Linux Printing HOWTO". The Linux Documentation Project.
Ofereix informació actualitzada dels sistemes d'impressió i la seva configuració, i també de-talls d'algunes impressores. Per a detalls concrets de models d'impressora i controladors, uspodeu dirigir a: <http://www.linuxprinting.org/>
[Fed] The Fedora Project. <http://fedoraproject.org/>
[Wm02] Welsh, M. i altres (2002). Running Linux (4a. ed.). O'Reilly.
Administració de GNU/Linux i UNIX. Comenta de manera àmplia aspectes d'administraciólocal i gestió de sistemes d'impressió.
GNUFDL • PID_00167526 Administració de xarxa
© 2010, FUOC. Es garanteix el permís per a copiar, distribuir i modificar aquest document segons els termes de la GNU FreeDocumentation License, Version 1.2 o qualsevol altra de posterior publicada per la Free Software Foundation, sense seccionsinvariants ni textos de la coberta anterior o posterior. Hi ha una còpia de la llicència en l'apartat "GNU Free DocumentationLicense" d'aquest document.
GNUFDL • PID_00167526 Administració de xarxa
Índex
Introducció.................................................................................................. 5
1. Introducció a TCP/IP (paquet TCP/IP)........................................ 7
1.1. Serveis sobre TCP/IP .................................................................... 7
1.2. Què és TCP/IP? ............................................................................ 9
1.3. Dispositius físics (maquinari) de xarxa ....................................... 10
2. Conceptes en TCP/IP......................................................................... 12
3. Com s'assigna una adreça d'Internet?.......................................... 15
4. Com s'ha de configurar la xarxa?................................................. 19
4.1. Configuració de la interfície (NIC) ............................................. 19
4.1.1. Configuració de xarxa en distribucions de tipus
Fedora ............................................................................. 21
4.1.2. Configuració d'una xarxa Wi-Fi (sense fil) .................... 22
4.2. Configuració del sistema de resolució de noms ......................... 24
4.2.1. Exemple de l'arxiu /etc/resolv.conf ............................... 24
4.2.2. Exemple de l'arxiu /etc/host.conf .................................. 25
4.2.3. Exemple de l'arxiu /etc/hosts ........................................ 25
4.2.4. Exemple del loopback...................................................... 25
4.3. Configuració de l'encaminament ............................................... 26
4.4. Configuració d'inetd...................................................................... 28
4.5. Configuració addicional: protocols i xarxes ............................... 30
4.6. Aspectes de seguretat .................................................................. 31
4.7. Opcions d'IP ................................................................................ 32
5. Configuració del DHCP.................................................................... 33
6. Aliàsing d'IP........................................................................................ 35
7. IP masquerade.................................................................................... 37
8. NAT amb el nucli 2.2 o superiors.................................................. 39
9. Com cal configurar una connexió DialUP i PPP?...................... 40
10. Configuració de la xarxa mitjançant hotplug............................ 43
11. Xarxa privada virtual (VPN).......................................................... 45
11.1. Exemple simple ........................................................................... 45
GNUFDL • PID_00167526 Administració de xarxa
11.2. Configuració (manual) d'un client Debian per a accedir a un
VPN sobre un túnel pptp.............................................................. 47
12. Configuracions avançades i eines.................................................. 50
Activitats...................................................................................................... 59
Bibliografia................................................................................................. 60
Annex............................................................................................................ 61
GNUFDL • PID_00167526 5 Administració de xarxa
Introducció
El sistema operatiu Unix (GNU/Linux) es pren com a exemple d'una arquitec-
tura de comunicacions estàndard. Des del mític UUCP (servei de còpia entre
sistemes operatius Unix) fins a les xarxes actuals, el Unix sempre ha mostrat
la seva versatilitat en aspectes relacionats amb la comunicació i l'intercanvi
d'informació. Amb la introducció de xarxes d'ordinadors (àrea local LAN, àrea
àmplia WAN o les més actuals, àrea metropolitana MAN) amb enllaços mul-
tipunt a diferents velocitats (56 kbps, fins a 1 Gbps), han anat sorgint nous
serveis basats en protocols més ràpids, portables entre diferents ordinadors i
més ben adaptats, com el TCP/IP (transport control program / Internet protocol)
[Com01, Mal96, Cis00, Gar98, KD00].
GNUFDL • PID_00167526 7 Administració de xarxa
1. Introducció a TCP/IP (paquet TCP/IP)
El protocol TCP/IP sintetitza un exemple d'estandardització i una voluntat de
comunicació a escala global.
El protocol TCP/IP és en realitat un conjunt de protocols bàsics que
s'han anat agregant al principal per a satisfer les diferents necessitats
en la comunicació ordinador-ordinador, com són TCP, UDP, IP, ICMP,
ARP.[Mal96]
La utilització més freqüent de TCP/IP per a l'usuari actualment són la connexió
remota a altres ordinadors (telnet, SSH1), la utilització de fitxers remots (NFS2)
o la transferència (FTP3, HTTP4).
1.1. Serveis sobre TCP/IP
Els serveis TCP/IP tradicionals més importants són [Gar98]:
a)�Transferència�d'arxius:�l'FTP�permet�a�un�usuari�d'un�ordinador�obtenir
o�enviar�arxius�d'un�ordinador�a�un�altre�ordinador.�Per�a�això,�l'usuari
haurà�de�tenir�un�compte, en l'ordinador remot, identificar-se per mitjà del
seu nom (login) i una paraula clau (contrasenya) o en ordinadors en què hi ha
un repositori d'informació (programari, documentació...), l'usuari es connec-
tarà com a anònim (anonymous) per a transferir (llegir) aquests arxius al seu
ordinador. Això no és el mateix que els sistemes d'arxius de xarxa més recents,
NFS (o protocols Netbios sobre TCP/IP, un "invent" totalment insegur sobre
Windows i que és millor reemplaçar per una versió més antiga però més segura
del mateix concepte anomenat netbeui), que permeten virtualitzar el sistema
d'arxius d'una màquina perquè pugui ser accedit de manera interactiva sobre
un altre ordinador.
b)�Connexió�(login)�remota: el protocol de terminal de xarxa (telnet) permet a
un usuari connectar-se a un ordinador remotament. L'ordinador local s'utilitza
com a terminal de l'ordinador remot i tot és executat sobre aquest alhora que
l'ordinador local roman invisible des del punt de vista de la sessió. Aquest
servei actualment s'ha reemplaçat per l'SHH per raons de seguretat. En una
connexió remota mitjançant telnet, els missatges circulen tal com estan (text
pla); és a dir, si algú "observa" els missatges a la xarxa, equivaldrà a mirar la
pantalla de l'usuari. SSH codifica la informació (que significa un cost afegit a
la comunicació), que fa que els paquets a la xarxa siguin illegibles per a un
node estrany.
(1)De l'anglès secure shell.
(2)De l'anglès network file system.
(3)De l'anglès file transfer protocol.
(4)De l'anglès hipertext markup pro-tocol.
TCP/IP
Utilització típica de TCP/IP re-mote login:telnet localhostDebian GNU/Linux 4.0login:
GNUFDL • PID_00167526 8 Administració de xarxa
c)�Correu�electrònic: aquest servei permet enviar missatges als usuaris d'altres
ordinadors. Aquest mode de comunicació s'ha transformat en un element vital
en la vida dels usuaris i permeten que els correus electrònics siguin enviats a un
servidor central perquè després puguin ser recuperats per mitjà de programes
específics (clients) o ser llegits per mitjà d'una connexió web.
L'avenç de la tecnologia i el baix cost dels ordinadors han permès que deter-
minats serveis s'hi hagin especialitzat i s'ofereixen configurats sobre determi-
nats ordinadors que treballen en un model client-servidor. Un servidor és un
sistema que ofereix un servei específic per a la resta de la xarxa. Un client és
un altre ordinador que utilitza aquest servei. Tots aquests serveis generalment
són oferts dins de TCP/IP:
• Sistemes�d'arxius�en�xarxa (NFS): permet a un sistema accedir als arxius
sobre un sistema remot d'una manera més integrada que FTP. Els disposi-
tius d'emmagatzematge (o part d'aquests) són exportats cap al sistema que
vol accedir i els poden "veure" com si fossin dispositius locals. Aquest pro-
tocol permet a qui exporta posar les regles i les formes d'accés, cosa que
(ben configurada) fa independent el lloc on es troba la informació física-
ment del lloc on es "veu" la informació.
• Impressió�remota: permet accedir a impressores connectades a altres or-
dinadors.
• Execució�remota: permet que un usuari executi un programa sobre un
altre ordinador. Hi ha diferents maneres de fer aquesta execució: o bé per
mitjà d'una instrucció (rsh, ssh, rexec) o per mitjà de sistemes amb RPC,5
que permet a un programa en un ordinador local executar una funció d'un
programa sobre un altre ordinador. Els mecanismes RPC han estat objec-
te d'estudi i hi ha diverses implementacions, però les més comunes són
Xerox's Courier i Sun's RPC (aquesta última adoptada per la majoria dels
Unix).
(5)De l'anglès remote procedure call.
• Servidors�de�nom (name servers): en grans instal·lacions hi ha un conjunt
de dades que necessiten ser centralitzades per a millorar-ne la utilització,
com per exemple, nom d'usuaris, paraules clau, adreces de xarxa, etc. Tot
això facilita que un usuari disposi d'un compte per a totes les màquines
d'una organització. Per exemple, Sun's Yellow Pages (NIS en les versions
actuals de Sun) està dissenyat per a manejar tot aquest tipus de dades i està
disponible per a la majoria de Unix. El DNS6 és un altre servei de noms,
però que guarda una relació entre el nom de la màquina i la identificació
lògica d'aquesta màquina (adreça IP).
• Servidors� de� terminal (terminal servers): connecta terminals a un ser-
vidor que executa telnet per a connectar-se a l'amfitrió. Aquest tipus
(6)De l'anglès domain name system.
GNUFDL • PID_00167526 9 Administració de xarxa
d'instal·lacions permet bàsicament reduir costos i millorar les connexions
a l'amfitrió (en determinats casos).
• Servidors�de�terminals�gràfiques (network-oriented window systems): per-
meten que un ordinador pugui visualitzar informació gràfica sobre una
pantalla que està connectada a un altre ordinador. El més comú d'aquests
sistemes és X-Window.
1.2. Què és TCP/IP?
TCP/IP són en realitat dos protocols de comunicació entre ordinadors inde-
pendents un de l'altre.
D'una banda, TCP7 defineix les regles de comunicació perquè un ordinador
(amfitrió) pugui "parlar" amb un altre (si es pren com a referència el model de
comunicacions OSI/ISO es descriu la capa 4, vegeu la taula següent). TCP és
orientat a connexió, és a dir, equivalent a un telèfon, i la comunicació es tracta
com un flux de dades (stream).
(7)De l'anglès Transmission ControlProtocol.
D'altra banda, IP8, defineix el protocol que permet identificar les xarxes i es-
tablir els camins entre els diferents ordinadors. És a dir, encamina les dades
entre dos ordinadors per mitjà de les xarxes. Correspon a la capa 3 del model
OSI/ISO i és un protocol sense connexió (vegeu la taula següent). [Com01,
Rid00, Dra99]
(8)De l'anglès Internet Protocol.
Una alternativa al TCP la conforma el protocol UDP9, el qual tracta les dades
com un missatge (datagrama) i envia paquets. És un protocol sense connexió10
i té l'avantatge que exerceix menys sobrecàrrega en la xarxa que les connexions
de TCP, però la comunicació no és fiable (els paquets poden no arribar o arribar
duplicats).
Hi ha un altre protocol alternatiu anomenat ICMP11. ICMP s'utilitza per a mis-
satges d'error o control. Per exemple, si algú intenta connectar-se a un equip
(amfitrió), l'ordinador local pot rebre un missatge ICMP que indiqui host un-
reachable. ICMP també pot ser utilitzat per a extreure informació sobre una
xarxa. ICMP és similar a UDP, ja que maneja missatges (datagrames), però és
més simple que UDP, ja que no té identificació de ports12 en l'encapçalament
del missatge.
(9)De l'anglès User Datagram Proto-col.
(10)L'ordinador de destinació no had'estar escoltant necessàriamentquan un ordinador estableix co-municació amb ell.
(11)De l'anglès Internet control mes-sage protocol.
(12)Són bústies on es dipositen elspaquets de dades i des d'on lesaplicacions servidores llegeixen elspaquets esmentats.
El model de comunicacions OSI13/ISO14 és un model teòric adoptat per moltes
xarxes. Hi ha set capes de comunicació, i cada una té una interfície per a co-
municar-se amb l'anterior i la posterior:
(13)De l'anglès open systems inter-connection reference model.
GNUFDL • PID_00167526 10 Administració de xarxa
Nivell Nom Utilització
7 Aplicació SMTP15, el servei pròpiament dit
6 Presentació telnet, FTP implementa el protocol del servei
5 Sessió Generalment no s'utilitza
4 Transport TCP, UDP, transformació d'acord amb el protocol de comunicació
3 Xarxa IP permet encaminar el paquet (routing)
2 Enllaç Controladors (drivers), transformació d'acord amb el protocol físic
1 Físic Ethernet, ADSL... envia del paquet físicament
En resum, TCP/IP és una família de protocols (que inclouen IP, TCP, UDP) que
proveeixen un conjunt de funcions a baix nivell utilitzades per la majoria de
les aplicacions. [KD00, Dra99]
(14)De l'anglès International Stan-dards Organization.
(15)De l'anglès simple mail transferprotocol.
Alguns dels protocols que utilitzen els serveis esmentats han estat dissenyats
per Berkeley, Sun o altres organitzacions, i oficialment no formen part de
l'Internet�Protocol�Suite (IPS). Tanmateix, són implementats utilitzant TCP/
IP i, per tant, són considerats com a part formal d'IPS. Una descripció dels pro-
tocols disponibles a Internet es pot consultar en l'RFC 1011 (vegeu les referèn-
cies sobre RFC [IET]), que mostra tots els protocols disponibles. Hi ha actual-
ment una nova versió del protocol IPv6, també anomenat Ipng16, que reem-
plaça l'IPv4. Aquest protocol millora notablement l'anterior en temes com ara
el nombre més elevat de nodes, el control de trànsit, la seguretat o les millores
en aspectes d'encaminament.
1.3. Dispositius físics (maquinari) de xarxa
Des del punt de vista físic (capa 1 del model OSI), el maquinari més utilitzat
per a LAN és conegut com a Ethernet (o FastEthernet o GigaEthernet). Els seus
avantatges són el baix cost, velocitats acceptables (10, 100, o 1.000 megabits
per segon) i facilitat en la instal·lació.
Hi ha tres modes de connexió en funció del tipus de cable
d'interconnexió: gruixut (thick), fi (thin) i de parell trenat (twisted parell).
(16)De l'anglès IP next generation.
Les dues primeres són obsoletes (utilitzen cable coaxial), mentre que l'última
es fa per mitjà de cables (parells) trenats i connectors similars als telefònics (es
coneixen com a RJ45). La connexió de parell trenat és coneguda com a 10ba-
seT o 100baseT (segons la velocitat) i utilitza repetidors anomenats concentra-
dors (o hubs) com a punts d'interconnexió. La tecnologia Ethernet utilitza ele-
ments intermedis de comunicació (concentradors, commutadors, encaminadors)
(17)De l'anglès Fiber Distributed Da-ta Interface.
GNUFDL • PID_00167526 11 Administració de xarxa
per a configurar múltiples segments de xarxa i dividir el trànsit per a millorar
les prestacions de transferència d'informació. Normalment, en les grans insti-
tucions aquestes LAN Ethernet estan interconnectades per mitjà de fibra òpti-
ca amb tecnologia FDDI17, que és molt més cara i complexa d'instal·lar, però
es poden obtenir velocitats de transmissió equivalents a Ethernet i no tenen
la limitació de la distància (FDDI admet distàncies de fins a 200 km). El seu
cost es justifica per a enllaços entre edificis o entre segments de xarxa molt
congestionats. [Rid00, KD00]
Hi ha a més un altre tipus de maquinari menys comú, però no menys interes-
sant, com és ATM18. Aquest maquinari permet muntar LAN amb una qualitat
de servei elevada i és una bona opció quan s'han de muntar xarxes d'alta velo-
citat i baixa latència, com per exemple les que involucren distribució de vídeo
en temps real.
(18)De l'anglès asynchronous trans-fer mode.
Hi ha un altre maquinari suportat per GNU/Linux per a la interconnexió
d'ordinadors, entre els quals podem esmentar: Frame Relay o X.25, utilitzat en
ordinadors que accedeixen o interconnecten WAN i per a servidors amb grans
necessitats de transferències de dades; Packet Radio, interconnexió via ràdio
amb protocols com AX.25, NetRom o Rose, o dispositius dialing up, que utilit-
zen línies en sèrie, lentes però molt barates, per mitjà d'un mòdem analògic
o digital (XDSI, DSL, ADSL, etc.). Aquestes últimes són les que normalment
s'utilitzen en pimes o en ús domèstic, i requereixen un altre protocol per a
la transmissió de paquets, com ara SLIP o PPP. Per a virtualitzar la diversitat
de maquinari sobre una xarxa, TCP/IP defineix una interfície abstracta mit-
jançant la qual es concentraran tots els paquets que seran enviats per un dis-
positiu físic (la qual cosa també significa una xarxa o un segment d'aquesta
xarxa). Per això, per cada dispositiu de comunicació en la màquina estendrem
una interfície corresponent en el nucli del sistema operatiu.
Ethernet
Ethernet en GNU/Linux es cri-da amb ethx (la x indica un nú-mero d'ordre començant per0), la interfície a línies en sèrie(mòdem) es crida amb pppx(per a PPP) o slx (per a SLIP),i per a FDDI és fddix. Aquestsnoms són utilitzats per les or-dres per a configurar els seusparàmetres i assignar-los el nú-mero d'identificació que poste-riorment permetrà comunicar-nos amb altres dispositius a laXarxa.
En GNU/Linux pot implicar haver d'incloure els mòduls adequats per al dis-
positiu (NIC19) adequat (en el nucli o com a mòduls), i això significa compilar
el nucli després d'haver escollit, per exemple, amb make�menuconfig, el NIC
adequat, indicant-lo com a intern o com a mòdul (en aquest últim cas s'haurà
de compilar el mòdul adequat també).
Els dispositius de xarxa es poden mirar en el directori /dev, que és on hi ha
un arxiu (especial, ja sigui de bloc o de caràcters, segons la seva transferència),
que representa cada dispositiu maquinari. [KD00, Dra99]
(19)De l'anglès network interfacecard.
ifconfig -a
Per a veure les interfícies dexarxa disponibles cal aplicarl'ordre ifconfig -a. Aquesta or-dre mostra totes les interfícies/paràmetres per defecte de ca-da una.
GNUFDL • PID_00167526 12 Administració de xarxa
2. Conceptes en TCP/IP
Com s'ha observat, la comunicació significa una sèrie de conceptes que am-
pliarem a continuació [Mal96, Com01]:
• Internet/intranets: el terme intranet es refereix a l'aplicació de tecnologies
d'Internet (xarxa de xarxes) dins d'una organització, bàsicament per dis-
tribuir i tenir disponible informació dins de la companyia. Per exemple,
els serveis oferts per GNU/Linux com a serveis Internet i intranet inclouen
correu electrònic, WWW, grups de notícies, etc.
• Node: es denomina node (amfitrió) una màquina que es connecta a la xarxa
(en un sentit ampli, un node pot ser un ordinador, una impressora, una
torre (rack) de CD, etc.), és a dir, un element actiu i diferenciable a la xarxa
que reclama o deixa algun servei o comparteix informació.
• Adreça�de�xarxa�Ethernet (Ethernet address o MAC address): un número
de 48 bits (per exemple 00:88:40:73:AB:FF –en octal–, o 0000 0000 1000
1000 0100 0000 0111 0011 1010 1011 1111 1111 –en binari–) que es troba
en el dispositiu físic (maquinari) del controlador (NIC) de xarxa Ethernet
i és gravat pel fabricant (aquest número ha de ser únic al món, per la qual
cosa cada fabricant de NIC té un rang preassignat).
• Nom�de�l'amfitrió: cada node ha de tenir a més un únic nom a la xarxa.
Poden ser només noms o bé utilitzar un esquema de noms jeràrquic basat
en dominis (hierarchical domain naming scheme). Els noms dels nodes han
de ser únics, la qual cosa resulta fàcil en petites xarxes, i més dificultós en
xarxes extenses, i impossible a Internet si no es fa algun control. Els noms
han de ser d'un màxim de 32 caràcters, han d'usar a-zA-Z0-9.-, no han de
contenir espais o # i han de començar per un caràcter alfabètic.
Nota
Nom de la màquina: more�/etc/hostname
• Adreça�d'Internet (IP address): està composta per quatre nombres en el
rang 0-255 separats per punts (per exemple, 192.168.0.1), i s'utilitza uni-
versalment per a identificar els ordinadors sobre una xarxa o Internet. La
translació de noms en adreces IP la fa un servidor DNS (domain name sys-
tem), que transforma els noms de node (llegibles per humans) en adreces
IP (aquest servei el fa una aplicació denominada named).
Nota
Adreça IP de la màquina: more/etc/hosts
GNUFDL • PID_00167526 13 Administració de xarxa
• Port (port): identificador numèric de la bústia en un node que permet que
un missatge (TCP, UDP) pugui ser llegit per una aplicació concreta dins
d'aquest node (per exemple, dues màquines que es comuniquin per telnet
ho faran pel port 23, però aquestes mateixes màquines poden tenir una
comunicació FTP pel port 21). Es poden tenir diferents aplicacions comu-
nicant-se entre dos nodes per mitjà de diferents ports simultàniament.
Nota
Ports preassignats en Unix:more�/etc/services. Aquestaordre mostra els ports prede-finits per ordre, i segons si su-porten TCP o UDP.
• Node�encaminador (passarel·la o gateway): és un node que fa encamina-
ments (transferència de dades routing). Un encaminador o router, segons
les seves característiques, podrà transferir informació entre dues xarxes de
protocols similars o diferents, i pot ser, a més, selectiu.
Nota
Visualització de la configuracióde l'encaminament: netstat�-r.
• Domain� name� system (DNS): permet assegurar un únic nom i faci-
litar l'administració de les bases de dades que fan la translació entre
nom i adreça d'Internet, i s'estructuren en forma d'arbre. Per a això,
s'especifiquen dominis separats per punts, el més alt (de dreta a esquerra)
dels quals descriu una categoria, institució o país (com, comercial; edu,
educació; gov, governamental; mil, militar (govern); org, sense finalitat de
lucre; dues lletres per a un país, o en casos especials tres lletres, com cat,
llengua i cultura catalana...). El segon nivell representa l'organització, el
tercer i els restants els departaments, seccions o divisions dins d'una or-
ganització (per exemple, www.uoc.edu o [email protected]). Els dos
primers noms (de dreta a esquerra, uoc.edu en el primer cas, remix.es en el
segon, han de ser assignats (aprovats) per l'SRI-NIC (òrgan mundial gestor
d'Internet) i els restants poden ser configurats o assignats per la institució.
• DHCP,�bootp: DHCP i bootp són protocols que permeten a un node cli-
ent obtenir informació de la xarxa (com l'adreça IP del node). Moltes or-
ganitzacions amb gran quantitat de màquines utilitzen aquest mecanisme
per a facilitar l'administració a grans xarxes o on hi ha una gran quantitat
d'usuaris mòbils.
Nota
El nostre domini i servidor deDNS: more�/etc/default�do-main;�more�/etc/resolv.conf.
• ARP,�RARP: en algunes xarxes (com per exemple IEEE 802 LAN, que és
l'estàndard per a Ethernet), les adreces IP són descobertes automàticament
per mitjà de dos protocols membres d'IPS: ARP20 i RARP21. ARP utilitza
missatges de difusió (broadcast messages) per a determinar l'adreça Ethernet
(especificació MAC de la capa 3 del model OSI) corresponent a una adreça
de xarxa particular (IP). RARP utilitza missatges de difusió (missatge que
arriba a tots els nodes) per a determinar l'adreça de xarxa associada amb
una adreça de maquinari en particular. RARP és especialment important
en màquines sense disc, en les quals l'adreça de xarxa generalment no es
coneix en el moment de l'inici (boot).
• Biblioteca�de�sòcols: a Unix tota la implementació de TCP/IP forma part
del nucli del sistema operatiu (o bé a dins o com un mòdul que es carrega
(20)De l'anglès address resolutionprotocol.
(21)De l'anglès reverse address reso-lution protocol.
Nota
Taules d'ARP: ARP�a�NomNo-de.
GNUFDL • PID_00167526 14 Administració de xarxa
en el moment de l'inici, com el cas de GNU/Linux amb els controladors
de dispositius).
La manera d'utilitzar-les per part d'un programador és per mitjà de l'API22 que
implementa aquest sistema operatiu. Per a TCP/IP, l'API més comuna és la
Berkeley Socket Library (Windows utilitza una biblioteca equivalent que es diu
Winsocks). Aquesta biblioteca permet crear un punt de comunicació (sòcol),
associar-lo a una adreça d'un node remot/port (vincle) i oferir el servei de co-
municació (per mitjà de connect, listen, accept, send, sendto, recv, recvfrom, per
exemple). La biblioteca proveeix, a més de la forma més general de comuni-
cació (família AF INET), comunicacions més optimitzades per a casos en els
quals els processos es comuniquen a la màquina mateixa (família AF Unix).
En GNU/Linux, la biblioteca de sòcols és part de la biblioteca estàndard de C,
Libc (Libc6 en les versions actuals), i suporta AF_INET, AF_UNIX, AF_IPX (per
a protocols de xarxes Novell), AF_X25 (per al protocol X.25), AF_ATMPVC-
AF_ATMSVC (per al protocol ATM) i AF_AX25, F_NETROM, AF_ROSE (per a
l'Amateur Radio Protocol).
(22)De l'anglès application program-ming interface.
GNUFDL • PID_00167526 15 Administració de xarxa
3. Com s'assigna una adreça d'Internet?
Aquesta adreça és assignada pel SRI-NIC i té dos camps. L'esquerre re-
presenta la identificació de la xarxa i el dret la identificació del node.
Considerant el que hem dit anteriorment (4 nombres entre 0-255, o si-
gui, 32 bits o quatre bytes), cada byte representa o bé la xarxa o bé el
node. La part de xarxa és assignada pel SRI-NIC i la part del node és
assignada per la institució o el proveïdor).
Hi ha algunes restriccions: 0 (per exemple, 0.0.0.0) en el camp de xarxa és re-
servat per a l'encaminament per defecte i 127 (per exemple, 127.0.0.1) és reser-
vat per a l'autoreferència (local loopback o local host), 0 en la part de node es re-
fereix a aquesta xarxa (per exemple, 192.168.0.0) i 255 és reservat per a paquets
de tramesa a totes les màquines (difusió) (per exemple, 198.162.255.255). En
les diferents assignacions es poden tenir diferents tipus de xarxes o adreces:
• Classe�A (xarxa.amfitrió.amfitrió.amfitrió): 1.0.0.1 a 126.254.254.254 (126
xarxes, 16 milions de nodes); defineixen les grans xarxes. El patró binari
és: 0 + 7 bits xarxa + 24 bits de nodes.
• Classe�B (xarxa.xarxa.amfitrió.amfitrió): 128.1.0.1 a 191.255.254.254 (16K
xarxes, 65K nodes); generalment s'utilitza el primer byte de node per a
identificar subxarxes dins d'una institució). El patró binari és 10 + 14 bits
de xarxa + 16 bits de nodes.
• Classe�C (xarxa.xarxa.xarxa.amfitrió): 192.1.1.1 a 223.255.255.254 (2 mili-
ons de bits de xarxes, 254 de nodes). El patró binari és 110 + 21 bits xarxa
+ 8 bits de nodes.
• Classe�D�i�E (xarxa.xarxa.xarxa.amfitrió): 224.1.1.1 a 255.255.255.254, re-
servat per a multidestinació (des d'un node a un conjunt de nodes que
formen part d'un grup) i propòsits experimentals.
Alguns rangs d'adreces han estat reservats perquè no corresponguin a xarxes
públiques, sinó a xarxes privades, i els missatges no seran encaminats per mitjà
d'Internet, cosa que es coneix com a intranets. Aquestes són per a la classe�A des
de 10.0.0.0 fins a 10.255.255.255, classe�B�des�de 172.16.0.0 fins a 172.31.0.0
i classe�C des de 192.168.0.0 fins a 192.168.255.0.
L'adreça de difusió és especial, ja que cada node en una xarxa escolta tots els
missatges (a més de la seva adreça pròpia). Aquesta adreça permet que datagra-
mes, generalment informació d'encaminament (o routing) i missatges d'avís,
Xarxes privades
Màquines que es connectenentre elles sense tenir conne-xió amb l'exterior.
GNUFDL • PID_00167526 16 Administració de xarxa
puguin ser enviats a una xarxa i tots els nodes del mateix segment de xarxa
els puguin llegir. Per exemple, quan ARP busca l'adreça Ethernet corresponent
a una IP, utilitza un missatge de difusió (o broadcast), el qual és enviat a totes
les màquines de la xarxa simultàniament. Cada node a la xarxa llegeix aquest
missatge i compara la IP que es busca amb la pròpia i retorna un missatge al
node que va fer la pregunta si hi ha coincidència.
Dos conceptes complementaris als descrits anteriorment són el de subxarxes
i encaminament entre elles. Subxarxes significa subdividir la part del node en
petites xarxes dins de la mateixa xarxa, per exemple, per a millorar el trànsit.
Una subxarxa pren la responsabilitat d'enviar el trànsit a certs rangs d'adreces
IP i estén el mateix concepte de xarxes A, B, C, però només aplicant aquest
readreçament en la part de node de la IP. El nombre de bits que són interpre-
tats com a identificador de la subxarxa és donat per una màscara de xarxa (o
netmask) que és un nombre de 32 bits (igual que la IP).
Per a obtenir l'identificador de la subxarxa, s'haurà de fer una operació lògi-
ca I (AND) entre la màscara i la IP, la qual cosa donarà la IP de la subxar-
xa. Per exemple, tenim una institució que té una xarxa classe B amb número
172.17.0.0; la seva màscara de xarxa és, per tant, 255.255.0.0. Internament,
aquesta xarxa està formada per petites xarxes (una planta de l'edifici, per exem-
ple). Així, el rang d'adreces és reassignat en 20 subxarxes (plantes, per a nosal-
tres): des de 172.17.1.0 fins a 172.17.20.0. El punt que connecta totes aquestes
plantes (xarxa troncal) té la seva pròpia adreça, com per exemple 172.17.1.0.
Aquestes subxarxes comparteixen la mateixa IP de xarxa, mentre que la tercera
és utilitzada per a identificar cada una de les subxarxes que hi ha a dins (per
això s'utilitzarà una màscara de xarxa 255.255.255.0).
El segon concepte, encaminament, representa la manera com els missatges
són enviats per mitjà de les subxarxes. Per exemple, tenim tres departaments
amb subxarxes Ethernet:
• Compres (subxarxa 172.17.2.0).
• Clients (subxarxa 172.17.4.0).
• Recursos humans, RH, (subxarxa 172.17.6.0).
• Xarxa troncal amb FFDI (subxarxa 172.17.1.0).
Per a encaminar els missatges entre els ordinadors de les tres xarxes es necessi-
taran tres portes d'intercanvi (passarel·les), que tindran cada una dues interfí-
cies de xarxa per a canviar entre Ethernet i FFDI. Seran les següents:
• CompresGW IP:172.17.2.1 i 172.17.1.1,
• ClientsGW IP:172.17.4.1 i 172.17.1.2
• RHGW IP:172.17.6.1 i 172.17.1.3, és a dir, una IP cap al costat de la sub-
xarxa i una altra cap a la xarxa troncal.
GNUFDL • PID_00167526 17 Administració de xarxa
Quan s'envien missatges entre màquines de compres, no és necessari sortir a
la passarel·la, ja que el protocol TCP/IP trobarà la màquina directament. El
problema és quan la màquina Compres0 vol enviar un missatge a RH3. El mis-
satge ha de circular per les dues passarel·les respectives. Quan Compres0 "veu"
que RH3 és en una altra xarxa, envia el paquet per mitjà de la passarel·la Com-
presGW, que al seu torn l'enviarà a RHGW, que al seu torn l'enviarà a RH3.
L'avantatge de les subxarxes és clar, ja que el trànsit entre totes les màquines
de compres, per exemple, no afectarà les màquines de clients o de recursos
humans (si bé significa un plantejament més complex i car a l'hora de disse-
nyar i construir la xarxa).
Figura 1. Configuració de segments i passarel·les en una Intranet
IP utilitza una taula per a fer l'encaminament dels paquets entre les diferents
xarxes i en la qual hi ha un encaminament per defecte associat a la xarxa
0.0.0.0. Totes les adreces que coincideixen amb aquesta, ja que cap dels 32 bits
no són necessaris, són enviades per la passarel·la per defecte (default gateway)
cap a la xarxa indicada. Sobre CompresGW, per exemple, la taula podria ser:
Adreça Màscara Passarel·la Interfície
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
El "-" significa que la màquina està directament connectada i no necessita en-
caminament. El procediment per a identificar si es fa l'encaminament o no
es du a terme és per mitjà d'una operació molt simple amb dos AND lògics
(subxarxa AND màscara i origen AND màscara) i una comparació entre els dos
GNUFDL • PID_00167526 18 Administració de xarxa
resultats. Si són iguals no hi ha encaminament, sinó que s'ha d'enviar la mà-
quina definida com a passarel·la a cada màquina perquè faci l'encaminament
del missatge.
Per exemple, un missatge de la 172.17.2.4 cap a 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
Com els resultats són iguals, no hi haurà encaminament. En canvi, si fem el
mateix amb 172.17.2.4 cap a 172.17.6.6 podem veure que hi haurà un enca-
minament per mitjà del 172.17.2.1 amb un canvi d'interfície (eth0 a ffdi0) a la
172.17.1.1 i d'aquesta cap a la 172.17.1.2 amb un altre canvi d'interfície (fddi0
a eth0) i després cap a la 172.17.6.6. L'encaminament, per defecte, s'utilitzarà
quan cap regla no satisfaci la coincidència. En cas que dues regles coincidei-
xin, s'utilitzarà la que ho faci de manera més precisa, és a dir, la que menys
zeros tingui. Per a construir les taules d'encaminament, es pot utilitzar l'ordre
route durant l'arrencada de la màquina, però si és necessari utilitzar regles més
complexes (o encaminament automàtic), es pot utilitzar el RIP23 o, entre sis-
temes autònoms, l'EGP24 o també el BGP25. Aquests protocols s'implementen
en l'ordre gated.
Per a instal·lar una màquina sobre una xarxa existent, és necessari, per
tant, disposar de la informació següent obtinguda del proveïdor de xar-
xa o de l'administrador: adreça IP del node, adreça de la xarxa IP, adreça
de difusió, adreça de màscara de xarxa, adreça d'encaminador, adreça
del DNS.
Si es construeix una xarxa que mai no tindrà connexió a Internet, es poden
escollir les adreces que es prefereixin, però és recomanable mantenir un or-
dre adequat en funció de la mida de xarxa que es vulgui tenir, i per a evitar
problemes d'administració dins de la xarxa. A continuació, es veurà com es
defineix la xarxa i el node per a una xarxa privada (cal ser acurat, ja que si es
té la màquina connectada a la Xarxa, es podria perjudicar un altre usuari que
tingués assignada aquesta adreça).
(23)De l'anglès routing informationprotocol.
(24)De l'anglès external gatewayprotocol.
(25)De l'anglès border gateway pro-tocol.
GNUFDL • PID_00167526 19 Administració de xarxa
4. Com s'ha de configurar la xarxa?
4.1. Configuració de la interfície (NIC)
Una vegada carregat el nucli de GNU/Linux, aquest executa l'ordre init, que,
al seu torn, llegeix l'arxiu de configuració /etc/inittab i comença el procés
d'inicialització. Generalment, inittab té seqüències com ara si::sysinit:/etc/
init.d/boot, que representa el nom de l'arxiu d'instruccions (script) que controla
les seqüències d'inicialització. Generalment aquest script crida altres scripts,
entre els quals hi ha la inicialització de la xarxa.
Exemple
En Debian s'executa etc/init.d/network per a la configuració de la interfície de xarxa ien funció del nivell d'arrencada; per exemple, en el 2 s'executaran tots els fitxers S* deldirectori /etc/rc2.d (que són enllaços al directori /etc/initd), i en el nivell d'apagat, totsels K* del mateix directori. D'aquesta manera, l'script està només una vegada (/etc/init.d)i d'acord amb els serveis que volem en aquest estat es crea un enllaç en el directori cor-responent a la configuració del node estat.
Els dispositius de xarxa es creen automàticament quan s'inicialitza el maqui-
nari corresponent. Per exemple, el controlador d'Ethernet crea les interfícies
eth[0..n] seqüencialment quan es localitza el maquinari corresponent.
A partir d'aquest moment, es pot configurar la interfície de xarxa, la qual co-
sa implica dos passos: assignar l'adreça de xarxa al dispositiu i inicialitzar els
paràmetres de la xarxa al sistema. L'ordre utilitzada per a això és ifconfig (in-
terface configure). Un exemple serà:
ifconfig eth0 192.168.110.23 netmask 255.255.255.0 up
Això indica configurar el dispositiu eth0 amb adreça IP 192.168.110.23 i la
màscara de xarxa 255.255.255.0. up indica que la interfície passarà a l'estat
actiu (per a desactivar-la s'hauria d'executar ifconfig�eth0�down). L'ordre as-
sumeix que si alguns valors no s'indiquen són presos per defecte. En aquest
cas, el nucli configurarà aquesta màquina com a tipus C i configurarà la xarxa
amb 192.168.110.23 i l'adreça de difusió amb 192.168.110.255. Per exemple:
ifconfig eth0 192.168.110.23 netmask 255.255.255.0 up
Hi ha ordres com ifup i ifdown, que permeten configurar i desactivar la xarxa
de manera més simple utilitzant l'arxiu /etc/network/interfaces per a obtenir
tots els paràmetres necessaris (consulteu man interfaces per a la sintaxi).
Nota
Consulteu man�ifconfig per ales diferents opcions de l'ordre.
GNUFDL • PID_00167526 20 Administració de xarxa
En Debian, a fi de facilitar la configuració de la xarxa, hi ha una altra manera
de configurar la xarxa (considerada d'alt nivell), que utilitza les ordres esmen-
tades anteriorment ifup, ifdown i l'arxiu /etc/network/interfaces. Si es decideix
utilitzar aquestes ordres, no s'hauria de configurar la xarxa a baix nivell, ja que
aquestes instruccions són suficients per a configurar o desactivar la xarxa.
Per a modificar els paràmetres26 de xarxa de la interfície eth0, es pot fer:
ifdown eth0
per a tots els serveis de xarxa sobre eth0
vi /etc/network/interfaces
editeu i modifiqueu els que necessiteu
ifup eth0
posa en marxa els serveis de xarxa sobre eth0
(26)Consulteu man interfaces a la secció 5 del manual per a més informació del format.
Suposem que volem configurar sobre Debian una interfície eth0 que té
una adreça IP fixa 192.168.0.123 i amb 192.168.0.1 com a porta d'enllaç
(passarel·la). Cal editar /etc/network/interfaces de manera que inclogui
una secció com la següent:
iface eth0 inet static
address 192.168.0.123
netmask 255.255.255.0
gateway 192.168.0.1
Si tenim instal·lat el paquet resolvconf podem afegir línies per a especificar
la informació relativa al DNS. Per exemple:
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
Després que s'activi la interfície, els arguments de les opcions següents
dns-search i dns-nameservers queden disponibles per a la inclusió a
resolv.conf. L'argument remix.org de l'opció dns-search correspon a
l'argument de l'opció search a resolv.conf i els arguments 195.238.2.21
i 195.238.2.22 de l'opció dns-nameservers corresponen als arguments de
les opcions nameserver a resolv.conf. També es pot configurar la xarxa a
baix nivell per mitjà de l'ordre ip (que és equivalent a ifconfig i route). Si bé
Nota: resolv.conf
Podeu consultar el manual pera veure man resolv.conf.
GNUFDL • PID_00167526 21 Administració de xarxa
aquesta ordre és molt més versàtil i potent (permet establir túnels, encamina-
ments alternatius, etc.), és més complexa i es recomana utilitzar els procedi-
ments anteriors per a configuracions bàsiques de la xarxa.
4.1.1. Configuració de xarxa en distribucions de tipus Fedora
Red Hat i Fedora utilitzen estructures de fitxers diferents per a la configuració
de la xarxa: /etc/sysconfig/network. Per exemple, per a la configuració estàtica
de la xarxa:
NETWORKING=yes
HOSTNAME=my-hostname
Nom de l'ordinador definit per l'ordre hostname
FORWARD_IPV4=true
True per a NAT, tallafocs, passarel·les i encaminadors.
False per a qualsevol altre cas
GATEWAY="XXX.XXX.XXX.YYY"
Adreça IP de la porta de sortida a Internet.
Per a la configuració amb DHCP s'ha de treure la línia de gateway, ja que serà
assignada pel servidor. I en cas d'incorporar NIS cal agregar una línia amb el
servidor de domini: NISDOMAIN=NISProject1.
Per a configurar la interfície eth0 en l'arxiu /etc/sysconfig/network-scripts/
ifcfg-eth0 (reemplaçar les X amb els valors adequats):
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 xarxa en l'arrencada
També a partir d'FC3 es poden agregar:
TYPE=Ethernet
HWADDR=XX:XX:XX:XX:XX:XX
GATEWAY=XXX.XXX.XXX.XXX
IPV6INIT=no
USERCTL=no
PEERDNS=yes
O, si no, per a la configuració del DHCP:
DEVICE=eth0
ONBOOT=yes
GNUFDL • PID_00167526 22 Administració de xarxa
BOOTPROTO=dhcp
Per a deshabilitar DCHP, cal canviar BOOTPROTO=dhcp per BOOTPROTO=none.
Qualsevol canvi en aquests fitxers implicarà reiniciar els serveis amb service
network restart (o si no /etc/init.d/network restart).
Per a canviar el nom de l'amfitrió s'han de seguir aquests tres passos:
1) L'ordre hostname�nom-nou.
2) Canviar la configuració de la xarxa a /etc/sysconfig/network editant:
HOSTNAME=nom-nou.
3) Restaurant els serveis (o reiniciant):
• service network restart (o /etc/init.d/network restart).
• Reiniciant l'escriptori passant a mode consola amb init 3 i canviant a
mode GUI amb init 5.
Verificar si el nom tampoc no està donat d'alta a /etc/hosts. El
nom de l'ordinador es pot canviar en temps d'execució amb sysctl -w
kernel.hostname="nom-nou".
4.1.2. Configuració d'una xarxa Wi-Fi (sense fil)
Per a la configuració d'interfícies Wi-Fi s'utilitzen bàsicament el paquet wire-
less-tools (a més d'ifconfig o ip). Aquest paquet utilitza l'ordre
iwconfig per a configurar una interfície sense fil, però també es pot fer per mitjà
de l'arxiu /etc/network/interfaces.
Exemple: Configurar una Wi-Fi en Debian (similar en FC)
Suposem que volem configurar una targeta de xarxa sense fil Intel Pro/Wireless
2200BG (molt comuna en una gran quantitat de portàtils, com per exemple
Dell, HP...). Normalment, el programari que controla les targetes es divideix
en dues parts: el mòdul programari, que es carregarà en el nucli per mitjà de
l'ordre modprobe, i el microprogramari, que és el codi que es carregarà a la targeta
i que ens dóna el fabricant (consulteu la pàgina d'Intel per a aquest model).
Com estem parlant de mòduls, és interessant utilitzar el paquet de Debian mo-
dule-assistant, que ens permet crear i instal·lar fàcilment un mòdul (una altra
opció seria instal·lar les fonts i crear el mòdul corresponent). El programari
(el trobem a la pàgina del fabricant, i el denomina ipw2200) el compilarem i
instal·larem amb l'ordre m-a del paquet module-assistant.
aptget install module-assistant instal·lació del paquet
m-a -t update
GNUFDL • PID_00167526 23 Administració de xarxa
m-a -t -f get ipw2200
m-a -t -build ipw2200
m-a -t install ipw2200
Des de l'adreça indicada pel fabricant (en la seva documentació), es descarrega
la versió del microprogramari compatible amb la versió del controlador, en el
nostre cas per al controlador versió 1.8 el microprogramari és el 2.0.4, obtingut
des de la pàgina http://ipw2200.sourceforge.net/firmware.php
I a continuació es descomprimeix i instal·la el microprogramari:
tar xzvf ipw2200fw2.4.tgz C /tmp/fwr/
cp /tmp/fwr/*.fw /usr/lib/hotplug/firmware/
Amb això es copiaran tres paquets (ipw2200-bss.fw, ipw2200-ibss.fw i ipw2200-
sniffer.fw). Després es carrega el mòdul amb modprobe�ipw2200, es reinicia
el sistema (reboot) i després, des de la consola, podem fer dmesg�|�grep�ipw;
aquesta ordre ens mostrarà algunes línies similars a les que es mostren a conti-
nuació, que indicaran que el mòdul està carregat (es pot verificar amb lsmod):
ipw2200: Intel(R) PRO/Wireless 2200/2915 Network Driver, git1.0.8
ipw2200: Detected Intel PRO/Wireless 2200BG Network Connection
...
Després es descarrega el paquet wirelesstools, que conté iwconfig (per exemple,
amb aptget�install�wirelesstools) i executem iwconfig; sortirà una cosa sem-
blant al següent:
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
...
A continuació, cal configurar l'arxiu de xarxes; per exemple, gedit� /etc/
network/interfaces i afegir la interfície wifi eth1, per exemple:
iface eth1 inet dhcp
pre-up iwconfig eth1 essid "Nom de la Wi-Fi"
pre-up iwconfig eth1 key open XXXXXXXXXX
La línia preup executa l'ordre iwconfig abans d'activar la interfície. Aquesta con-
figuració és per a quan es vol utilitzar un servei en mode DHCP (assignació
automàtica d'IP); s'ha d'utilitzar en comptes de dhcp la paraula static i a més
posar les línies següents, per exemple (com en una targeta de cable):
GNUFDL • PID_00167526 24 Administració de xarxa
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 mètode alternatiu per a configurar la interfície és:
iface eth1 inet dhcp
wireless-essid "Nom de la Wi-Fi"
wireless-key 123456789e
A continuació es pot posar en marxa la xarxa amb ifup eth1 i ens donarà in-
formació sobre la connexió i ens indicarà l'estat i la qualitat de recepció. Per a
buscar (scan) les xarxes Wi-Fi disponibles (punts d'accés) podem utilitzar iw-
list�scan, que ens mostrarà informació de les xarxes disponibles, i si ens volem
connectar a una de diferent, es pot utilitzar l'ordre iwconfig per a canviar de
xarxa o punt d'accés (access point).
4.2. Configuració del sistema de resolució de noms
El pas següent és configurar el sistema de resolució de noms (name resolver),
que converteix noms com ara pirulo.remix.com a 192.168.110.23. L'arxiu /etc/
resolv.conf és l'utilitzat per a tal finalitat. El format és molt simple (una línia
de text per sentència). Hi ha tres paraules clau per a tal finalitat: domain (do-
mini local), search (llista de dominis alternatius) i name server (l'adreça IP del
servidor de noms de domini).
4.2.1. Exemple de l'arxiu /etc/resolv.conf
domain remix.com
search remix.com piru.com
name server 192.168.110.1
name server 192.168.110.65
Aquesta llista de servidors de nom sovint depèn de l'entorn de xarxa, que pot
canviar depenent d'on sigui o es connecti la màquina. Els programes de conne-
xió a línies telefòniques (pppd) o obtenció d'adreces IP automàticament (dh-
client) són capaços de modificar resolv.conf per a inserir o eliminar ser-
vidors, però aquesta característica no sempre funciona adequadament i de ve-
gades pot entrar en conflicte i generar configuracions errònies. El paquet re-
solvconf (encara en Unstable) soluciona de manera adequada el problema
i permet una configuració simple dels servidors de nom de manera dinàmi-
ca. resolvconf està dissenyat per a funcionar sense que sigui necessària cap
configuració manual; no obstant això, el paquet és bastant nou i pot requerir
alguna intervenció per a aconseguir que funcioni adequadament.
Nota
Per a més informació sobre elpaquet resolvconf, podeuconsultar el web explicatiu:http://packages.debian.org/unstable/net/resolvconf
GNUFDL • PID_00167526 25 Administració de xarxa
Un arxiu important és /etc/host.conf, que permet configurar el comportament
del sistema de resolució de noms. La seva importància és que indica on es resol
primer l'adreça o el nom d'un node. Aquesta consulta es pot fer al servidor
DNS o en taules locals dins de la màquina actual (/etc/hosts).
4.2.2. Exemple de l'arxiu /etc/host.conf
order hosts,bind
multi on
Aquesta configuració indica que primer es verifica /etc/hosts abans de
sol·licitar una petició al DNS i també indica (2a. línia) que retorni totes les
adreces vàlides que hi hagi a /etc/hosts. Per això, l'arxiu /etc/hosts és on es
col·loquen les adreces locals i també serveix per a accedir a nodes sense haver
de consultar el DNS.
La consulta és molt més ràpida, però té el desavantatge que si el node canvia,
l'adreça serà incorrecta. En un sistema correctament configurat, només hauran
d'aparèixer el node local i una entrada per a la interfície loopback.
4.2.3. Exemple de l'arxiu /etc/hosts
127.0.0.1 localhost loopback
192.168.1.2 pirulo.remix.com pirulo
Per al nom d'una màquina es poden utilitzar àlies, fet que significa que la
màquina es pot anomenar de diferents maneres per a la mateixa adreça IP.
Amb referència a la interfície loopback, aquest és un tipus especial d'interfície
que permet fer connexions amb si mateixa (per exemple, per a verificar que
el subsistema de xarxa funciona sense accedir a la xarxa). Per defecte, l'adreça
IP 127.0.0.1 ha estat assignada específicament al loopback (una ordre telnet
127.0.0.1 connectarà amb la màquina mateixa). La configuració és molt fàcil
(la fan generalment els scripts d'inicialització de xarxa).
4.2.4. Exemple del loopback
ifconfig lo 127.0.0.1
route add host 127.0.0.1 lo
En la versió 2 de la biblioteca GNU hi ha una canvi important respecte a
la funcionalitat de l'arxiu host.conf. Aquesta millora inclou la centralització
d'informació de diferents serveis per a la resolució de noms, la qual cosa pre-
senta grans avantatges per a l'administrador de xarxa. Tota la informació de
consulta de noms i serveis ha estat centralitzada en l'arxiu /etc/nsswitch.conf,
el qual permet a l'administrador configurar l'ordre i les bases de dades de ma-
nera molt simple. En aquest arxiu cada servei apareix en una línia amb un
conjunt d'opcions, en què, per exemple, hi ha la resolució de noms de no-
Nota
Exemple de nsswitch.conf:hosts: dns files...networks: files
GNUFDL • PID_00167526 26 Administració de xarxa
de. S'hi indica que l'ordre de consulta de les bases de dades per a obtenir la
IP del node o el seu nom serà primer el servei de DNS, que utilitzarà l'arxiu
/etc/resolv.conf per a determinar la IP del node DNS, i en cas que no el pugui
obtenir, utilitzarà el de les bases de dades locals (/etc/hosts). Altres opcions
per a això podrien ser nis, nisplus, que són altres serveis d'informació que es
descriuran en unitats posteriors. També es pot controlar per mitjà d'accions
(entre []) el comportament de cada consulta, com per exemple:
hosts: xfn nisplus dns [NOTFOUND = return] files
Això indica que quan es faci la consulta al DNS, si no hi ha un registre per a
aquesta consulta, retorni un zero al programa que la va fer. Es pot utilitzar el
"!" per a negar l'acció, com per exemple:
hosts dns [!UNAVAIL = return] files
4.3. Configuració de l'encaminament
Un altre aspecte que cal configurar és l'encaminament. Si bé hi ha el tòpic so-
bre la seva dificultat, generalment es necessiten uns requisits d'encaminament
molt simples. En un node amb múltiples connexions, l'encaminament con-
sisteix a decidir on cal enviar i què es rep. Un node simple (una sola connexió
de xarxa) també necessita encaminament, ja que tots els nodes disposen d'un
loopback i una connexió de xarxa (per exemple, Ethernet, PPP, SLIP...). Com es
va explicar anteriorment, hi ha una taula anomenada routing table, que conté
files amb diversos camps, però tres són summament importants: adreça de
destinació, interfície per on sortirà el missatge i adreça IP, que efectuarà el pas
següent a la Xarxa (passarel·la).
L'ordre route permet modificar aquesta taula per a fer les tasques
d'encaminament adequades. Quan arriba un missatge, es mira la seva
adreça de destinació, es compara amb les entrades a la taula i s'envia per
la interfície en què l'adreça coincideix millor amb la destinació del pa-
quet. Si una passarel·la és especificada, s'envia a la interfície adequada.
Considerem, per exemple, que el nostre node és en una xarxa de classe C amb
adreça 192.168.110.0 i té una adreça 192.168.110.23; i l'encaminador amb
connexió a Internet és 192.168.110.3. La configuració serà:
• Primer la interfície:
ifconfig eth0 192.168.110.23 netmask 255.255.255.0 up
Nota
Consulta de taulesd'encaminament:route -nnetstat -r
GNUFDL • PID_00167526 27 Administració de xarxa
• Més endavant, cal indicar que tots els paquets amb adreces 192.168.0. *
han de ser enviats al dispositiu de xarxa:
route add -net 192.1 ethernetmask 255.255.255.0 eth0
El -net indica que és una ruta de xarxa, però també es pot utilitzar -host
192.168.110.3. Aquesta configuració permetrà connectar-se a tots els nodes
dins del segment de xarxa (192.1), però què passarà si ens volem connectar
a un altre node fora d'aquest segment? Seria molt difícil tenir totes les entra-
des adequades per a totes les màquines a les quals ens volem connectar. Per a
simplificar aquesta tasca, hi ha el default route, que s'utilitza quan l'adreça de
destinació no coincideix a la taula amb cap de les entrades. Una possibilitat
de configuració seria:
route add default gw 192.168.110.3 eth0
Nota
El gw és la IP o el nom d'una passarel·la o node encaminador.
Una forma alternativa de fer-ho és:
ifconfig eth0 inet down deshabilito la interfície
ifconfig
lo Link encap:Local Loopback
... (no mostrarà cap entrada per a eth0)
route
... (no mostrarà cap entrada en la taula de rutes)
Després s'habilita la interfície amb una nova IP i una nova 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 l'ordre continua en la línia següent. El resultat:
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
GNUFDL • PID_00167526 28 Administració de xarxa
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
Per a més informació vegeu els manuals de les ordres ifconfig(8) i route(8).
4.4. Configuració d'inetd
El pas següent en la configuració de xarxa és la configuració dels servidors i
serveis que permetran a un altre usuari accedir a la màquina local o als seus
serveis. Els programes servidors utilitzaran els ports per a escoltar les peticions
dels clients, els quals es dirigiran a aquest servei com a IP:port. Els servidors
poden funcionar de dues maneres diferents: standalone (en aquesta mode el
servei escolta el port assignat i sempre està actiu) o per mitjà d'inetd.
L'inetd és un servidor que controla i gestiona les connexions de xarxa
dels serveis especificats en l'arxiu /etc/inetd.conf, el qual, davant d'una
petició de servei, posa en marxa el servidor adequat i li transfereix la
comunicació.
Dos arxius importants necessiten ser configurats de la manera següent: /etc/
services i /etc/inetd.conf. En el primer s'associen els serveis, els ports i el pro-
tocol, i en el segon, quins programes servidors respondran davant d'una peti-
ció a un port determinat. El format de /etc/services és name port/protocol alias,
en què el primer camp és el nom del servei, el segon, el port on atén aquest
servei i el protocol que utilitza, i el següent, un àlies del nom. Per defecte hi
ha una sèrie de serveis que ja estan preconfigurats. A continuació es mostra
un exemple de l'arxiu /etc/services (# indica que el que hi ha a continuació
és un comentari):
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
...
GNUFDL • PID_00167526 29 Administració de xarxa
L'arxiu /etc/inetd.conf és la configuració per al servei mestre de xarxa (inetd
server daemon). Cada línia conté set camps separats per espais: service socket_type
proto flags user server_path server_args, en què service és el servei descrit a la
primera columna de l'arxiu /etc/services, socket_type és el tipus de sòcol (valors
possibles: stream, dgram, raw, rdm, o seqpacket), proto és el protocol vàlid per a
aquesta entrada (ha de coincidir amb el de l'arxiu /etc/services), flags indica
l'acció per prendre quan hi ha una nova connexió sobre un servei que està
atenent una altra connexió (wait diu a inetd que no posi en marxa un nou
servidor, i nowait significa que inetd ha de posar en marxa un nou servidor).
user serà l'usuari amb el qual s'identificarà qui ha posat en marxa el servei,
server_path és el directori on es troba el servidor i server_args són arguments
possibles que seran passats al servidor. Un exemple d'algunes línies de l'arxiu
/etc/inetd.conf són (cal recordar que després de # hi ha comentaris, per la qual
cosa, si un servei té # abans del nom, significa que no està 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 funcionalitat d'inetd ha estat reemplaça-
da per xinetd (recomanable), el qual necessita l'arxiu de configuració /etc/
xinetd.conf (vegeu el final del mòdul). Si es vol posar en marxa el servei d'inetd,
s'ha d'executar (i crear els enllaços adequats en els directoris /etc/rcX.d) /etc/
init.d/inetd.real start (vegeu un exemple de configuracions en el punt 15 de
l'apartat 12, "Configuracions avançades i eines").
A més de la configuració d'inetd o xinetd, la configuració típica dels serveis de
xarxa en un entorn d'escriptori o servidor bàsic podria incloure a més:
• ssh: connexió interactiva segura com a reemplaçament de telnet; inclou
dos arxius de configuració, /etc/ssh/ssh_config (per al client) i /etc/ssh/
sshd_config (per al servidor).
• exim: agent de transport de correu (MTA), inclou els arxius de configura-
ció: /etc/exim/exim.conf, /etc/mailname, /etc/alias, /etc/email-addresses.
• fetchmail: dimoni per a descarregar el correu d'un compte POP3, amb
/etc/fetchmailrc.
• procmail: programa per a filtrar i distribuir el correu local, ~/.procmailrc.
Vegeu també
Per a veure més sobre la con-figuració típica dels serveis dexarxa en un entorn d'escriptorio servidor bàsic vegeu el mò-dul de servidors (el mòdul 2)de l'assignatura Administracióavançada de sistemes GNU/Li-nux.
GNUFDL • PID_00167526 30 Administració de xarxa
• tcpd: serveis de filtres de màquines i dominis habilitats i deshabilitats per
a connectar-se al servidor (wrappers); /etc/hosts.allow, /etc/hosts.deny.
• DHCP: servei per a la gestió (servidor) o obtenció d'IP (client), /etc/dhcp3/
dhclient.conf (client), /etc/default/dhcp3-server (servidor), /etc/dhcp3/
dhcpd.conf (servidor).
• CVS: sistema de control de versions concurrents; /etc/cvs-cron.conf, /etc/
cvs-pserver.conf.
• NFS: sistema d'arxius de xarxa; /etc/etc/exports.
• Samba: sistema d'arxius de xarxa i compartició d'impressores en xarxes
Windows; /etc/samba/smb.conf.
• lpr: dimoni per al sistema d'impressió; /etc/printcap (per al sistema lpr, no
per a CUPS).
• Apache i Apache2: servidor de web; /etc/apache/* i /etc/apache2/*.
• squid: servidor de servidor cau; /etc/squid/*.
4.5. Configuració addicional: protocols i xarxes
Hi ha altres arxius de configuració que en la majoria dels casos no s'utilitzen
però que poden ser interessants. /etc/protocols és un arxiu que relaciona iden-
tificadors de protocols amb noms de protocols; així, els programadors poden
especificar els protocols pels seus noms en els programes.
Exemple de l'arxiu /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
L'arxiu /etc/networks té una funció similar a /etc/hosts, però respecte a les xar-
xes indica noms de xarxa amb relació a la seva adreça IP (l'ordre route mostrarà
el nom de la xarxa i no la seva adreça, en aquest cas).
Exemple de l'arxiu /etc/networks
loopnet 127.0.0.0 localnet 192.168.0.0 amprnet 44.0.0.0 ...
GNUFDL • PID_00167526 31 Administració de xarxa
4.6. Aspectes de seguretat
És important tenir en compte els aspectes de seguretat en les connexions a
xarxa, ja que una font d'atacs importants es produeix per mitjà de la xarxa.
Ja se'n parlarà més sobre aquest tema en la unitat corresponent a seguretat;
tanmateix, hi ha unes quantes recomanacions bàsiques que s'han de tenir en
compte per a minimitzar els riscos immediatament abans i després de confi-
gurar la xarxa del nostre ordinador:
a) No activar serveis a /etc/inetd.conf que no s'utilitzaran; inserir un # abans
del nom per a evitar fonts de risc.
b) Modificar l'arxiu /etc/ftpusers per a denegar que certs usuaris puguin tenir
connexió via FTP amb la màquina.
c) Modificar l'arxiu /etc/securetty per a indicar des de quins terminals (un nom
per línia; per exemple, tty1 tty2 tty3 tty4) es permet la connexió del superusuari
(root). Des dels terminals restants, root no es podrà connectar.
d) Utilitzar el programa tcpd. Aquest servidor és un wrapper que permet accep-
tar o negar un servei des d'un determinat node, i es col·loca a /etc/inetd.conf
com a mediador d'un servei. El tcpd verifica unes regles d'accés a dos arxius:
/etc/hosts.allow i /etc/host.deny
Si s'accepta la connexió, posa en marxa el servei adequat passat com a argu-
ment (per exemple, la línia del servei d'FTP mostrada abans a inetd.conf: ftp
stream tcp nowait root /usr/sbin/tcpd /usr/sbin/in.ftpd).
tcpd primer cerca /etc/hosts.allow i després /etc/hosts.deny. L'arxiu hosts.deny
conté la informació sobre quins són els nodes que no tenen accés a un ser-
vei dins d'aquesta màquina. Una configuració restrictiva és ALL: ALL, ja que
només es permetrà l'accés als serveis des dels nodes declarats a /etc/hosts.allow.
L'arxiu /etc/hosts.equiv permet l'accés a aquesta màquina sense haver
d'introduir una clau d'accés (contrasenya). Es recomana no usar aquest meca-
nisme i aconsellar als usuaris no utilitzar l'equivalent des del compte d'usuari
per mitjà de l'arxiu .rhosts.
En Debian és important configurar /etc/security/access.conf, l'arxiu que in-
dica les regles de qui i des d'on es pot connectar (login) a aquesta màquina.
Aquest arxiu té una línia per ordre amb tres camps separats per ":" del tipus
permís:usuaris:origen. El primer serà un + o − (accés denegat), el segon un nom
d'usuari o usuaris, grup o user@host, i el tercer un nom d'un dispositiu, node,
domini, adreces de node o de xarxes, o ALL.
GNUFDL • PID_00167526 32 Administració de xarxa
Exemple d'access.conf
Aquesta ordre no permet entrades com a root sobre tty1:
ALL EXCEPT root:tty1 ...
Permet accedir a u1, u2, g1 i tots els de domini remix.com:
+:u1 u2 g1 .remix.com:ALL
4.7. Opcions d'IP
Hi ha una sèrie d'opcions sobre el trànsit IP que és convenient esmentar. La
configuració es fa per mitjà de la inicialització de l'arxiu corresponent en el
directori /proc/sys/net/ipv4/. El nom de l'arxiu és el mateix que el de l'ordre i
per a activar-los s'ha de posar un 1 dins de l'arxiu, i un 0 per a desactivar-lo.
Per exemple, si es vol activar ip_forward, s'hauria d'executar:
echo 1 > /proc/sys/net/ipv4/ip_forward
Els més utilitzats són ip_forward, utilitzat per a l'encaminament entre interfí-
cies o amb IP masquerading; ip_default_ttl, que és el temps de vida per a un pa-
quet IP (64 mil·lisegons per defecte); i ip_bootp_agent, variable lògica (boolea-
na) que accepta paquets (o no) amb adreça origen del tipus 0.b.c.d i destinació
d'aquest node, difusió o multidestinació.
Ordres�per�a�la�solució�de�problemes�amb�la�xarxa
Si teniu problemes en la configuració de la xarxa, es pot començar verificant
la sortida de les ordres següents per a obtenir una primera idea:
ifconfig
cat /proc/pci
cat /proc/interrupts
dmesg | more
Per a verificar la connexió a la xarxa, es poden usar les ordres següents (cal tenir
instal·lats netkit-ping, traceroute, dnsutils, iptables i net-tools):
ping uoc.edu # verificar la connexió a Internet
traceroute uoc.edu # buscar paquets IP
ifconfig # verificar la configuració de l'amfitrió
route -n # verificar la configuració de la ruta
dig [@dns.uoc.edu] www.uoc.edu # verificar registres de www.uoc.edu
# sobre el servidor dns.uoc.edu
iptables -L -n |less # verificar filtratge de paquets (nucli >= 2.4)
netstat -a # mostra tots els ports oberts
netstat -l --inet # mostra els ports en escolta
netstat -ln --tcp # mostrar ports TCP en escolta (numèric)
GNUFDL • PID_00167526 33 Administració de xarxa
5. Configuració del DHCP
DHCP són les sigles de Dynamic Host Configuration Protocol. La configuració és
molt simple i serveix perquè, en lloc de configurar cada node d'una xarxa in-
dividualment, es pugui fer de manera centralitzada i l'administració sigui més
fàcil. La configuració d'un client és molt fàcil, ja que només s'ha d'instal·lar
un dels paquets següents: dhcp3-client (versió 3, Internet Software Consor-
tium), dhcpcd (Yoichi Hariguchi i Sergei Viznyuk), pump (Red Hat), i agregar
la paraula dhcp en l'entrada corresponent a la interfície que es vol que funcio-
ni sota el client DHCP (per exemple, /etc/network/interfaces ha de tenir iface
eth0 inet dhcp...).
La configuració del servidor requereix una mica més d'atenció, però no pre-
senta complicacions. Primer, perquè el servidor pugui servir tots els clients
DHCP (incloent-hi Windows), s'han de resoldre algunes qüestions prèvies re-
lacionades amb les adreces de difusió. Per a això, primer el servidor ha de poder
enviar missatges a l'adreça 255.255.255.255, que no és vàlida en GNU/Linux.
Per a provar-ho, executeu:
route add -host 255.255.255.255 dev eth0
Si apareix el missatge 255.255.255.255: Unknown host, s'ha d'afegir l'entrada
següent a /etc/hosts: 255.255.255.255 dhcp, i intentar-ho novament:
route add -host dhcp dev eth0
La configuració de dhcpd es pot fer amb la interfície gràfica linuxconf o bé editar
/etc/dhcpd.conf. Un exemple d'aquest arxiu és:
# Exemple 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;
range 192.168.11.1 192.168.11.254
host mart {
hardware ethernet 00:00:95:C7:06:4C;
fixed address 192.168.11.146;
GNUFDL • PID_00167526 34 Administració de xarxa
option host-name "mart";
}
host saturn {
hardware ethernet 00:00:95:C7:06:44;
fixed address 192.168.11.147;
option host-name "saturn";
}
}
Això permetrà al servidor assignar el rang d'adreces 192.168.11.1 al
192.168.11.254, tal com es descriu en cada node. Si no hi ha el segment host
{...} corresponent, s'assignen aleatòriament. Les IP són assignades per un temps
mínim de 1.200 segons i màxim de 9.200 (en cas que no hi hagi aquests parà-
metres, s'assignen indefinidament).
Abans d'executar el servidor, s'ha de verificar si tenim el fitxer /var/state/
dhcp/dhcpd.leases (en cas contrari, caldrà crear-lo amb touch� /var/state/
dhcp/dhcpd.leases). Per a executar el servidor: /usr/sbin/dhcpd (o bé po-
sar-lo en els scripts d'inicialització). Amb /usr/sbin/dhcpd�-d�-f es podrà veu-
re l'activitat del servidor sobre la consola del sistema. [Mou01, Rid00, KD00,
Dra99]
GNUFDL • PID_00167526 35 Administració de xarxa
6. Aliàsing d'IP
Hi ha algunes aplicacions en què és útil configurar múltiples adreces IP a un
únic dispositiu de xarxa. Els ISP27 utilitzen freqüentment aquesta característica
per a proveir de característiques personalitzades (per exemple, de World Wide
Web i FTP) als seus usuaris. Per a això, el nucli ha d'estar compilat amb les
opcions de network aliasing i IP (aliasing support).
Després d'instal·lar el nou nucli, la configuració és molt fàcil. Els àlies són
annexats a dispositius de xarxa virtuals associats al nou dispositiu amb un
format com ara:
dispositiu: número virtual
Per exemple:
eth0:0, ppp0:8
Considerem que tenim una xarxa Ethernet que suporta dues subxarxes IP di-
ferents simultàniament i que la nostra màquina hi vol tenir accés directe. Un
exemple de configuració seria:
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
Això significa que tindrem dues IP, 192.168.110.23 i 192.168.10.23, per a la
mateixa NIC. Per a esborrar un àlies, cal agregar un "-" al final del nom (per
exemple, ifconfig eth0:0- 0). [Mou01, Ran05]
Un cas típic és que es vulgui configurar una única targeta Ethernet perquè sigui
la interfície de diferents subxarxes IP. Per exemple, suposem que tenim una
màquina que es troba en una xarxa LAN 192.168.0.x/24, i volem connectar
la màquina a Internet usant una adreça IP pública proporcionada amb DHCP,
usant la targeta Ethernet existent.
Per exemple, es pot fer com en l'exemple anterior o també editar l'arxiu /
etc/network/interfaces, de manera que inclogui una secció similar a la
següent:
iface eth0 inet static
address 192.168.0.1
netmask 255.255.255.0
(27)De l'anglès Internet service provi-ders
GNUFDL • PID_00167526 36 Administració de xarxa
network 192.168.0.0
broadcast 192.168.0.255
iface eth0:0 inet dhcp
La interfície eth0:0 és una interfície virtual i, en activar-se, també ho farà el
seu pare eth0.
GNUFDL • PID_00167526 37 Administració de xarxa
7. IP masquerade
L'IP masquerade és un recurs perquè un conjunt de màquines puguin
utilitzar una única adreça IP. Això permet que els nodes ocults puguin
sortir cap a Internet (són els que utilitzen una IP privada; per exemple,
198.162.10.1); però no poden acceptar trucades o serveis de l'exterior
directament, sinó per mitjà de la màquina que té la IP real.
Això significa que alguns serveis no funcionen (per exemple, talk) i d'altres
han de ser configurats en mode PASV (passiu) perquè funcionin (per exem-
ple, FTP). Tanmateix, WWW, telnet o IRC funcionen adequadament. El nu-
cli ha d'estar configurat amb les opcions següents: network firewalls, TCP/IP
networking, IP:forwarding/gatewaying, IP:masquerading. Normalment, la confi-
guració més comuna és disposar d'una màquina amb una connexió SLIP o PPP
i tenir un altre dispositiu de xarxa (per exemple, una targeta Ethernet) amb
una adreça de xarxa reservada. Com vam veure, i d'acord amb l'RFC 1918, es
poden utilitzar com a IP privades els rangs d'adreces següents (IP/màscara):
• 10.0.0.0/255.0.0.0,
• 172.16.0.0/255.240.0.0,
• 192.168.0.0/255.255.0.0.
Els nodes que han de ser ocultats (masqueraded) seran dins d'aquesta segona
xarxa. Cada una d'aquestes màquines hauria de tenir l'adreça de la màquina
que fa el masquerade, com a passarel·la per defecte o encaminador. Sobre la
màquina esmentada podem configurar:
• Ruta de xarxa per a Ethernet considerant que la xarxa té un IP=192.168.1.0/
255.255.255.0:
route add -net 192.168.1.0 netmask 255.255.255.0 eth0
• Ruta per defecte per a la resta d'Internet:
route add default ppp0
• Tots els nodes sobre la xarxa 192.168.1/24 seran masqueraded:
ipchains -A forward -s 192.168.1.0/24 -j MASQ
GNUFDL • PID_00167526 38 Administració de xarxa
• Si s'utilitza iptables sobre un nucli (o kernel) 2.4 o superior:
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
Consulteu les referències i la unitat que tracta sobre la seguretat de la infor-
mació d'ipchains i iptables. [Ran05, KD00]
GNUFDL • PID_00167526 39 Administració de xarxa
8. NAT amb el nucli 2.2 o superiors
La IP Network Address Translation (NAT) és el reemplaçament que deixa obso-
letes les prestacions d'IP masquerading en GNU/Linux, i que aporta noves pres-
tacions al servei. Dins de les millores introduïdes en la pila de TCP/IP del nucli
2.2 de GNU/Linux tenim que el NAT forma part del nucli. Per a utilitzar-lo,
és necessari que el nucli es compili amb CONFIG_IP_ADVANCED_ROUTER,
CONFIG_IP_MULTIPLE_TABLES i CONFIG_IP_ROUTE_NAT. I si es necessita
control exhaustiu de les regles NAT (per exemple, per a activar el tallafocs) ha
d'estar activat també CONFIG_IP_FIREWALL i CONFIG_IP_ROUTE_FWMARK.
Per a treballar amb aquestes noves característiques, és necessari usar el progra-
ma ip (inclòs en les distribucions més importants a partir de la versió 2.4 del
kernel http://es.wikipedia.org/wiki/Iproute2). Llavors, per a traslladar adreces
de paquets d'entrada es pot utilitzar:
ip route add nat <extaddr>[/<masklen>] via <intaddr>
Això farà que un paquet d'entrada destinat a ext.-addr (l'adreça visible des de
fora d'Internet) es transcriu la seva adreça destinació a int-addr (l'adreça de la
seva xarxa interna per mitjà de la passarel·la o tallafocs). El paquet s'encamina
d'acord amb la taula local d'encaminament. Es poden traslladar adreces sim-
ples o blocs. Per exemple:
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 primer fa que l'adreça interna 192.109.0.2 sigui accessible com a
240.0.11.34. El segon resitua (remapping) el bloc 192.109.0.0-31 a 240.0.11.32-
63. En aquest cas s'han utilitzat com a exemple translacions a adreces de la
classe DE, com ara 240.0.*.*, a fi de no utilitzar cap adreça pública. L'usuari
haurà de reemplaçar aquestes adreces (240.0.11.34 i 240.0.11.32-63) per les
adreces públiques corresponents a les quals vulgui fer la translació. [Ran05]
GNUFDL • PID_00167526 40 Administració de xarxa
9. Com cal configurar una connexió DialUP i PPP?
Si bé avui dia és poc habitual treballar amb mòdem, ja que es tenen solucions
d'ASDL amb preus i amplada de banda millors, es farà una petita introducció
sobre la configuració d'una connexió de marcatge sobre PPP en GNU/Linux,
que és molt simple.
PPP,28 que permet fer IP-Links entre dos ordinadors amb un mòdem (heu de
considerar que ha de ser un mòdem suportat per GNU/Linux, ja que no tots,
especialment els interns, coneguts com a winmodems, es poden configurar, ja
que molts necessiten programari addicional per a establir la comunicació).
[Vas00, Law07, Sec00]
Com a passos previs s'ha de disposar de la informació següent: l'init-string del
mòdem (normalment no és necessari, però si es necessita i no en tenim de
disponible, es pot utilitzar ATZ, que funciona en la majoria dels mòdems, o es
poden consultar llistes especialitzades d'init-strings).
A més, necessitarem les dades de l'ISP: identificació de connexió (login name),
clau (contrasenya) i número de telèfon. Seria aconsellable tenir adreces de DNS,
però és opcional en les versions actuals de pppd. Cal verificar a més que el mò-
dem estigui correctament connectat. Amb un mòdem extern s'ha d'executar
echo > /dev/ttyS0 i mirar els llums del mòdem per si tenen activitat. En cas con-
trari, cal intentar-ho amb ttyS1 per si el mòdem està connectat al segon port
sèrie. Amb un mòdem intern cal consultar el manual de maquinari suportat
per a veure si aquest mòdem pot ser reconegut per GNU/Linux, i en cas afir-
matiu, potser cal reconfigurar el nucli per a utilitzar-lo. També podem utilitzar
cat /proc/pci per si es troba en el bus PCI. [PPP00]
La manera més fàcil de configurar ara el mòdem és per mitjà del paquet kppp
(cal instal·lar els paquets kdenetwork-ppp* i ppp*). Sobre un terminal, executeu
/usr/bin/kppp. Sobre la finestra, completeu les opcions següents:
• 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 (per a veure els resultats; si no obteniu resultats,
canvieu el dispositiu ttySx).
(28)De l'anglès point to point proto-col.
GNUFDL • PID_00167526 41 Administració de xarxa
Entrarem nom d'entrada (o login) i contrasenya, i estarem connectats a Inter-
net (per a verificar la connexió es pot executar ping www.google.com, per exem-
ple). Aquí s'ha utilitzat el paquet kppp, però igualment es podria utilitzar linux-
conf o gnomeppp indistintament.
Una manera ràpida de configurar pppd en Debian consisteix a usar el programa
pppconfig, que ve amb el paquet del mateix nom. pppconfig configura els
arxius com els anteriors després de formular preguntes a l'usuari per mitjà
d'una interfície de menús. Una altra opció diferent per a usar pppd consisteix
a executar-lo des de wvdial, que ve amb el paquet wvdial. En comptes de
fer que pppd executi chat per a marcar i negociar la connexió, wvdial fa el
marcatge, la negociació inicial i després inicia pppd perquè faci la resta. En
la majoria dels casos donant només el número telefònic, el nom d'usuari i la
contrasenya, wvdial aconsegueix establir la connexió.
Una vegada configurat PPP perquè funcioni, per exemple amb el_meu _isp,
cal editar /etc/network/interfaces, de manera que inclogui una secció com la
següent (les ordres ifup, ifdown utilitzen les instruccions pon i poff per a confi-
gurar interfícies PPP):
iface ppp0 inet ppp
provider el_meu_isp
amb aquesta secció, ifup ppp0 fa:
posa el_meu_isp
Actualment no és possible usar ifup-down per a fer una configuració auxi-
liar de les interfícies PPP. Com pon desapareix abans que pppd hagi acabat
d'establir la connexió, ifup executa els scripts up abans que la interfície PPP
estigui preparada per a utilitzar-la. Fins que se solucioni aquest error conti-
nua essent necessari fer una configuració posterior a /etc/ppp/ip-up o /etc/ppp/
ip-up.d/.
Molts proveïdors de serveis d'Internet (ISP) de banda ampla utilitzen PPP per
a negociar les connexions fins i tot quan les màquines dels clients estan con-
nectades mitjançant Ethernet o xarxes ATM. Això s'aconsegueix mitjançant
PPP sobre Ethernet (PPPoE), que és una tècnica per a l'encapsulament del flux
PPP dins de les trames Ethernet. Suposem que l'ISP es diu el_meu_isp. Primer
cal configurar PPP i PPPoE per a el_meu_isp. La manera més fàcil de fer-ho con-
sisteix a instal·lar el paquet pppoeconf i executar pppoeconf des de la con-
sola. A continuació, cal editar /etc/network/interfaces de manera que inclogui
un fragment com el següent:
iface eth0 inet ppp
provider el_meu_isp
GNUFDL • PID_00167526 42 Administració de xarxa
De vegades sorgeixen problemes amb PPPoE relatius a la unitat de transmissió
màxima (MTU29) en línies DSL30; es pot consultar el DSL-HOWTO per a més
detalls. També s'ha de tenir en compte si el mòdem té un encaminador, per-
què el mòdem/encaminador maneja per si sol la connexió PPPoE i apareix del
costat de la LAN com una simple porta d'enllaç Ethernet a Internet.
(29)De l'anglès maximum transmitunit.
(30)De l'anglès digital subscriber line.
GNUFDL • PID_00167526 43 Administració de xarxa
10.Configuració de la xarxa mitjançant hotplug
El paquet hotplug permet el suport d'arrencada en calent (s'ha de tenir instal·lat
el paquet del mateix nom). El maquinari de xarxa es pot connectar en calent
tant durant l'arrencada, després d'haver inserit la targeta en la màquina (una
targeta PCMCIA, per exemple), com després que una utilitat com discover s'hagi
executat i hagin estat carregats els mòduls necessaris. Quan el nucli detecta
nou maquinari, inicialitza el controlador per al maquinari i després executa
el programa hotplug per a configurar-lo. Si més tard s'elimina el maquinari,
executa novament hotplug amb paràmetres diferents. En Debian, quan es crida
hotplug aquest executa els scripts dels directoris /etc/hotplug/ i /etc/hotplug.d/
. El maquinari de xarxa recentment connectat és configurat per /etc/hotplug/
net.agent. Suposem que la targeta de xarxa PCMCIA ha estat connectada, cosa
que implica que la interfície eth0 està preparada per a utilitzar-la.
/etc/hotplug/net.agent fa el següent:
ifup eth0=hotplug
Llevat que hàgiu afegit una interfície lògica anomenada hotplug a /etc/
network/interfaces, aquesta ordre no farà res. Perquè aquesta ordre configuri
eth0, cal afegir les línies següents a /etc/network/interfaces:
mapping hotplug
script echo
Si només voleu que eth0 s'activi en calent i no altres interfícies, cal utilitzar
grep en comptes d'echo, com es mostra a continuació:
mapping hotplug
script grep
map eth0
ifplugd activa o desactiva una interfície segons si el maquinari subjacent està
connectat a la xarxa o no ho està. El programa pot detectar un cable connec-
tat a una interfície Ethernet o un punt d'accés associat a una interfície Wi-Fi.
Quan ifplugd veu que l'estat de l'enllaç ha canviat, executa un script que per
defecte executa ifup o ifdown per a la interfície. ifplugd funciona en combina-
ció amb hotplug. En inserir una targeta, cosa que significa que la interfície està
preparada per a utilitzar-la, /etc/hotplug.d/net/ifplugd.hotplug inicia una instàn-
cia d'ifplugd per a aquesta interfície. Quan ifplugd detecta que la targeta està
connectada a una xarxa, executa ifup per a aquesta interfície.
GNUFDL • PID_00167526 44 Administració de xarxa
Per a associar una targeta Wi-Fi amb un punt d'accés, pot ser que necessiteu
programar-la amb una clau de xifratge WEP adequada. Si esteu usant ifplugd
per a controlar ifup com es va explicar anteriorment, llavors, evidentment,
no podreu configurar la clau de xifratge usant ifup, ja que aquest només és
cridat després que la targeta ha estat associada. La solució més simple és usar
waproamd, que configura la clau de xifratge WEP segons els punts d'accés
disponibles, que es descobreixen mitjançant la recerca de les xarxes Wi-Fi. Per
a més informació consulteu man�waproamd i la informació del paquet.
GNUFDL • PID_00167526 45 Administració de xarxa
11.Xarxa privada virtual (VPN)
Una VPN31 és una xarxa que utilitza Internet com a transport de dades,
però impedeix que hi puguin accedir membres externs.
Tenir una xarxa amb VPN significa tenir nodes units per mitjà d'un túnel per
on viatja el trànsit i on ningú no hi pot interactuar. S'utilitza quan es tenen
usuaris remots que accedeixen a una xarxa corporativa per a mantenir la se-
guretat i privacitat de les dades. Per a configurar una VPN es poden utilitzar
diversos mètodes SSH (SSL), CIPE, IPSec, PPTP, que es poden consultar en les
referències (es recomana consultar VPN PPP-SSH HOWTO, de Scott Bronson,
i VPN-HOWTO de Matthew D. Wilson). [Bro01, Wil02]
Per a fer les proves de configuració, en aquest apartat s'utilitzarà OpenVPN,
que és una solució basada en SSL VPN, i es pot usar per a un ampli rang de
solucions; per exemple, accés remot, VPN punt a punt, xarxes Wi-Fi segures
o xarxes distribuïdes empresarials. OpenVPN implementa les capes OSI 2 o
3 amb protocols SSL/TLS i suporta autenticació basada en certificats, targetes
(smart cards), i altres mètodes de certificació. OpenVPN no és un servidor in-
termediari (o proxi) d'aplicacions ni opera per mitjà d'un navegador web.
(31)De l'anglès virtual privatenetwork.
Per a analitzar aquest servei utilitzarem una opció d'OpenVPN anomenada
OpenVPN for Static key configurations, que ofereix una manera simple de con-
figurar una VPN ideal per a proves o per a connexions punt a punt. Els seus
avantatges són simplicitat, i que no és necessari un certificat X509 PKI32 per
a mantenir la VPN. Els desavantatges són que només permet un client i un
servidor. En no utilitzar clau pública i clau privada, hi pot haver igualtat de
claus amb sessions anteriors, i hi ha d'haver, doncs, una clau en mode text
en cada igual (peer), i la clau secreta ha de ser intercanviada anteriorment per
un canal segur.
11.1. Exemple simple
En aquest exemple es configurarà un túnel VPN sobre un servidor amb IP =
10.8.0.1 i un client amb IP = 10.8.0.2. La comunicació serà xifrada entre el cli-
ent i el servidor sobre el port UDP 1194, que és el port per defecte d'OpenVPN.
Després d'instal·lar el paquet s'haurà de generar la clau estàtica:
openvpn --genkey --secret static.key
(32)De l'anglès public key infrastruc-ture.
GNUFDL • PID_00167526 46 Administració de xarxa
Després s'ha de copiar l'arxiu static.key en l'altre igual sobre un canal se-
gur (per exemple, utilitzant ssh o scp). L'arxiu de configuració del servidor
openVPN_server, per exemple:
dev tun
ifconfig 10.8.0.1 10.8.0.2
secret static.key
L'arxiu de configuració del client, per exemple, openVPN_client:
remote myremote.mydomain
dev tun
ifconfig 10.8.0.2 10.8.0.1
secret static.key
Abans de verificar el funcionament de la VPN, s'ha d'assegurar en el tallafocs
que el port 1194 UDP està obert sobre el servidor i que la interfície virtual tun0
usada per OpenVPN no està bloquejada ni sobre el client ni sobre el servidor.
Tingueu en ment que el 90% dels problemes de connexió trobats per usuaris
nous d'OpenVPN estan relacionats amb el tallafocs.
Per a verificar l'OpenVPN entre dues màquines, haureu de canviar les IP per
les reals i el domini pel que tingueu, i després executar del costat del servidor:
openvpn [server config file]
Que donarà una sortida com la següent:
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
Sun Feb 6 20:46:38 2005 Initialization Sequence Completed
GNUFDL • PID_00167526 47 Administració de xarxa
I del costat client:
openvpn [client config file]
Per a verificar que funciona, es pot fer ping 10.8.0.2 des del servidor i ping
10.8.0.1 des del client.
Per a agregar compressió sobre l'enllaç, s'ha d'afegir la línia següent als dos
arxius de configuració:
comp-lzo
Per a protegir la connexió per mitjà d'un encaminador NAT/firewall alive, i
seguir els canvis d'IP per mitjà d'un DNS, si un dels iguals (peers) canvia, cal
agregar als dos arxius de configuració:
keepalive 10 60
ping-timer-rem
persist-tun
persist-key
Per a executar-ho com a dimoni amb els privilegis del grup o usuari nobody,
cal agregar als arxius de configuració:
user nobody
group nobody
daemon
11.2. Configuració (manual) d'un client Debian per a accedir a
un VPN sobre un túnel pptp
Nota
Per a més informació podeuconsultar el web d'OpenVPN:http://openvpn.net/howto.html
En primer lloc s'ha d'instal·lar el client PPTP,33 i no és necessari tenir suport
MPPE en el nucli.
Per a això farem:
apt-get update
apt-get install pptp-linux
apt-get install resolvconf
Cal contestar sí si surt el missatge Append original file to dynamic file?
Després, cal reiniciar les interfícies amb:
/etc/init.d/ifupdown restart
(33)De l'anglès point-to-point tunne-ling protocol.
GNUFDL • PID_00167526 48 Administració de xarxa
O amb:
/etc/init.d/networking restart
També és necessari tenir instal·lat el paquet iproute:
apt-get install iproute
Per a la configuració del client crearem en el seu directori (per defecte /etc/ppp/)
el fitxer /etc/ppp/options.pptp (que contindrà opcions comunes a tots els túnels
que es creïn en l'equip):
lock noauth nobsdcomp nodeflate
Agreguem la línia següent a l'arxiu /etc/ppp/chap-secrets:
usuari PPTP passwd *
On diu usuari s'ha de posar el nom de l'usuari del servidor de VPN i en passwd
la paraula clau d'accés, i cal acabar la línia amb un asterisc.
S'ha de crear l'arxiu /etc/ppp/peers/uoc amb els paràmetres de configuració
del túnel:
pty "pptp nom.domini --nolaunchpppd"
name usuari
remotename PPTP
usepeerdns
defaultroute replacedefaultroute
file /etc/ppp/options.pptp
ipparam uoc
connect "route add nom.domini gw `ip route | \
grep default | cut -f3 -d' '`"
On diu usuari s'ha de posar el nom de l'usuari, nom.domini és el nom del servi-
dor VPN, per exemple, vpngw.uoc.es VPN, i uoc és el nom del túnel que crearem
i que es referirà a l'arxiu /etc/ppp/peers/uoc.
Abans de finalitzar hem de crear un parell de scripts que encaminaran els pa-
quets pel túnel cap a Internet i el tancaran quan s'hagi acabat.
Creem l'arxiu /etc/ppp/ip-up.d/uoc amb permisos d'execució i amb el contin-
gut següent:
#!/bin/sh
cat /etc/ppp/resolv.conf | resolvconf -a tun0
GNUFDL • PID_00167526 49 Administració de xarxa
Li canviem els atributs d'execució:
chmod +x /etc/ppp/ip-up.d/uoc
Finalment, creem l'arxiu /etc/ppp/ip-down.d/uoc amb el contingut següent:
#!/bin/sh
route del nom.domini
# canviar pel servidor, per exemple, vpngw.uoc.es
resolvconf -d tun0
I també amb permisos d'execució:
chmod +x /etc/ppp/ip-down.d/uoc
Ara només falta posar en marxa el túnel amb pon�uoc.
Després de posar en marxa el túnel i de fer ifconfig, veurem una nova interfície
de xarxa amb el nom de ppp0. Per a finalitzar la utilització del túnel, només
haurem de fer poff�uoc, amb la qual cosa desapareixerà la interfície ppp0.
Hi ha una interfície gràfica anomenada kvpnc per a configurar diferents cli-
ents de VPN. En aquesta aplicació no és necessari crear els scripts i no hi ha
cap problema per a instal·lar un client VPN pptp o de qualsevol altre tipus
seguint les instruccions. També és possible configurar fàcilment un client des
del Gnome per mitjà del Gnome Network Manager per a pptp:
sudo apt-get install network-manager-pptp pptp-linux
Nota
Podeu consultar els detalls de la interfície gràfica kvpnc a la seva pàgina web:
http://home.gna.org/kvpnc/en/index.html
Un altre web interessant on trobareu informació sobre VPN és la pàgina del NetworkManager:
http://projects.gnome.org/NetworkManager/admins/
GNUFDL • PID_00167526 50 Administració de xarxa
12.Configuracions avançades i eines
Hi ha un conjunt de paquets complementaris (o que substitueixen els conven-
cionals) i eines que o bé milloren la seguretat de la màquina (recomanats en
ambients hostils), o bé ajuden en la configuració de xarxa (i del sistema en
general) de manera més amigable.
Aquests paquets poden ser de gran ajuda a l'administrador de xarxa per
a evitar intrusos o usuaris locals que s'excedeixen en les seves atribuci-
ons (generalment, no per part de l'usuari local, sinó per mitjà d'una su-
plantació d'identitat) o bé ajudar l'usuari novell a configurar adequada-
ment els serveis.
En aquest sentit, és necessari preveure:
1)�Configuració�avançada�de�TCP/IP: per mitjà de l'ordre sysctl és possible
modificar els paràmetres del nucli durant l'execució o en l'inici per a ajustar-los
a les necessitats del sistema. Els paràmetres susceptibles de modificar són els
que es troben en el directori /proc/sys/, i es poden consultar amb sysctl�-a.
La manera més simple de modificar aquests paràmetres és per mitjà de l'arxiu
de configuració /etc/syscntl.conf. Després de la modificació, s'ha de tornar a
engegar la xarxa:
/etc/init.d/networking restart
En aquest apartat veurem algunes modificacions per a millorar les prestacions
de la xarxa (segons les condicions) o la seguretat del sistema (consulteu les
referències per a més detalls) [Mou01]:
net.ipv4.icmp_echo_ignore_all = 1
2) No respon paquets ICMP, com per exemple l'ordre ping, que podria significar
un atac DoS (denial-of-service).
net.ipv4.icmp_echo_ignore_broadcasts = 1
3) Evita congestions de xarxa no responent la difusió (broadcast).
net.ipv4.conf.all.accept_source_route = 0
net.ipv4.conf.lo.accept_source_route = 0
net.ipv4.conf.eth0.accept_source_route = 0
GNUFDL • PID_00167526 51 Administració de xarxa
net.ipv4.conf.default.accept_source_route = 0
4) Inhibeix els paquets d'IP source routing que podrien representar un problema
de seguretat (en totes les interfícies).
net.ipv4.tcp_syncookies = 1
net.ipv4.conf.all.accept_redirects = 0
5) Permet rebutjar un atac DoS de paquets SYNC que consumiria tots els re-
cursos del sistema i forçaria a fer un reinici de la màquina.
net.ipv4.conf.lo.accept_redirects = 0
net.ipv4.conf.eth0.accept_redirects = 0
net.ipv4.conf.default.accept_redirects = 0
6) Útil per a evitar atacs amb CMP redirect acceptance (aquests paquets són uti-
litzats quan l'encaminament no té una ruta adequada) en totes les interfícies.
net.ipv4.icmp_ignore_bogus_error_responses = 1
7) Envia alertes sobre tots els missatges erronis a la xarxa.
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 protecció contra l'IP spoofing en totes les interfícies.
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à registres sobre tots els spoofed packets, source routed packets i redirect
packets.
10) Els paràmetres següents permetran que el sistema pugui atendre millor i
més ràpidament les connexions TCP.
net.ipv4.tcp_fin_timeout = 40, Per defecte, 60.
net.ipv4.tcp_keepalive_time = 3600, Per defecte, 7.200.
net.ipv4.tcp_window_scaling = 0
net.ipv4.tcp_sack = 0
net.ipv4.tcp_timestamps = 0, Per defecte, tots a 1 (habilitats).
GNUFDL • PID_00167526 52 Administració de xarxa
11)�Iptables: les últimes versions de GNU/Linux (nucli 2.4 o superiors) inclo-
uen nous mecanismes per a construir filtres de paquets anomenats netfilter
[Mou01]. Aquesta nova funcionalitat és gestionada per una eina denominada
iptables, que presenta característiques millors que el seu predecessor (ipchains).
Com es veurà en el mòdul corresponent a seguretat, és summament fàcil cons-
truir un tallafocs amb aquesta eina per a detectar els atacs scans més comuns,
DoS, IPMAC spoofing, etc., i fer-los front. Per a activar-lo cal que el nucli si-
gui 2.4 o superior, que estigui configurat per a donar suport d'ipfilter (cosa
que significarà que s'haurà de recompilar el nucli per a activar l'opció network
packet filtering [CONFIG_NETFILTER], i totes les subopcions específiques). Les
regles específiques s'han d'activar durant l'arrencada (per exemple, per mitjà
de l'script /etc/init.d i l'enllaç adequat al directori rc adequat) i té un format
similar (consulteu les referències sobre les capacitats i la sintaxi completa) a:
iptables -A Type -i Interface -p protocol -s SourceIP
--source-port Port -d DestinationIP
--destination-port Port -j Action
12)�GnuPG: aquesta eina permet xifrar dades per a la tramesa posterior (per
exemple, correu electrònic) o emmagatzemament, i també per a generar firmes
digitals (compleix l'estàndard de l'RFC2440) i no utilitza algoritmes patentats,
la qual cosa significa més llibertat en la utilització però pèrdua de compatibili-
tat amb altres eines (per exemple, PGP 2.0) que utilitzen algoritmes com IDEA
i RSA. Per a compilar-lo o instal·lar-lo, cal seguir les indicacions dels autors.
En primer lloc, s'ha de crear una parella de claus (pública i privada) executant
com a root l'ordre gpg --gen-key dues vegades i contestant les preguntes que ens
fa. Generalment, aquestes claus s'emmagatzemaran a /root. El següent és ex-
portar (per exemple, a una pàgina web) la clau pública perquè altres usuaris la
puguin utilitzar per a xifrar els correus o la informació que només podrà veure
l'usuari que ha generat la clau pública. Per a això, caldrà utilitzar gpg --export
-ao UID, la qual cosa generarà un arxiu ASCII de la clau pública de l'usuari UID.
Per a importar una clau pública d'un altre usuari, es pot usar gpg --import fi-
lename, i per a signar una clau (significa indicar al sistema que s'està d'acord
que la clau firmada és de qui diu ser), es pot utilitzar gpg --sign-key UID. Per a
verificar una clau, es pot utilitzar gpg --verify file/data i per a xifrar o desxifrar,
gpg -sear UID file g i gpg -d file, respectivament [Gnu].
13)�Logcheck: una de les activitats d'un administrador de xarxa és verificar
diàriament (més d'una vegada per dia) els arxius de registre (log) per a detectar
possibles atacs, intrusions o esdeveniments que puguin donar indicis sobre
aquestes qüestions. Aquesta eina selecciona (dels arxius de registre) informa-
ció condensada de problemes i riscos potencials i després envia aquesta infor-
mació al responsable, per exemple, per mitjà d'un correu. El paquet inclou
GNUFDL • PID_00167526 53 Administració de xarxa
utilitats per a executar-se de manera autònoma i recordar l'última entrada ve-
rificada per a les execucions subsegüents. Per a més informació sobre la confi-
guració i instal·lació, podeu consultar les referències. [Log]
14)� PortSentry� i� Tripwire: aquestes eines ajuden en les funcions de
l'administrador de xarxa pel que fa a seguretat. PortSentry permet detectar i
respondre a accions de recerca de ports (pas previ a un atac o a un spamming)
en temps real i prendre diverses decisions respecte a l'acció que s'està duent a
terme. Tripwire és una eina que ajudarà l'administrador notificant sobre pos-
sibles modificacions i canvis en arxius per a evitar possibles danys (més greus).
Aquesta eina compara les diferències entre els arxius actuals i una base de da-
des generada prèviament per a detectar canvis (insercions i esborrament), la
qual cosa és molt útil per a detectar possibles modificacions d'arxius vitals,
com per exemple, en arxius de configuració. Consulteu les referències sobre
la instal·lació i configuració d'aquestes eines. [Tri]
15)�Xinetd: aquesta eina millora notablement l'eficiència i les prestacions
d'inetd i tcp-wrappers. Un dels grans avantatges de xinetd és que pot fer front
a atacs de DoA34 per mitjà de mecanismes de control per als serveis basats
en la identificació d'adreces del client, en temps d'accés i temps de connexió
(logging). No s'ha de pensar que xinetd és el més adequat per a tots els serveis
(per exemple, FTP i SSH és millor que s'executin només com a dimonis), ja
que molts generen una gran sobrecàrrega al sistema i disposen de mecanismes
d'accés segurs que no creen interrupcions en la seguretat del sistema. [Xin]
La compilació o instal·lació és simple, i només és necessari configurar dos ar-
xius: /etc/xinetd.conf (l'arxiu de configuració de xinetd) i /etc/rc.d/init.d/xi-
netd (l'arxiu d'inicialització de xinetd). El primer arxiu conté dues seccions:
defaults, que és on es troben els paràmetres que s'aplicaran a tots els serveis, i
service, que seran els serveis que es posaran en marxa per mitjà de xinetd.
Un exemple típic de la configuració podria ser:
# xinetd.conf
# Les opcions de configuració per defecte que s'apliquen a tots els
# servidors es poden modificar per a cada servei
defaults
{
instances = 10
log_type = FILE /var/log/service.log
log_on_success = HOST PID
log_on_failure = HOST RECORD
}
# El nom del servei ha de ser a /etc/services per a obtenir
# el port correcte
# Si es tracta d'un servidor/port no estàndard, useu "port = X"
service ftp
(34)De l'anglès denial-of-access.
GNUFDL • PID_00167526 54 Administració de xarxa
{
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
}
#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
GNUFDL • PID_00167526 55 Administració de xarxa
#}
# Fi de /etc/xinetd.conf
Els serveis comentats (#) no estaran disponibles. A la secció defaults es poden
inserir paràmetres com ara el nombre màxim de peticions simultànies d'un
servei, el tipus de registre (log) que es vol tenir, des de quins nodes es rebran
peticions per defecte, el nombre màxim de peticions per IP que s'atendran, o
serveis que s'executaran com a superservidors (imapd o popd), com per exem-
ple:
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 secció service, una per cada servei, com per exemple:
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
redirect = 192.168.1.1 993
#Permet redireccionar el trànsit del port 993
#cap al node 192.168.1.1
bind = 192.168.10.4
#Permet indicar a quina interfície està associat el servei per a evitar
# problemes de suplantació de servei.
}
L'arxiu /etc/init.d/xinetd permetrà posar en marxa el servidor (amb l'enllaç
adequat, segons el nivell d'execució seleccionat; per exemple, 3, 4 i 5). És con-
venient canviar els atributs de tots dos arxius per a garantir que no són modi-
ficats o desactivats amb chmod 700 /etc/init.d/xinetd; chown 0.0 /etc/init.d/xcon-
fig; chmod 400 /etc/xinetd.conf; chattr +i /etc/xinetd.conf.
GNUFDL • PID_00167526 56 Administració de xarxa
16)�Linuxconf: és una eina de configuració i administració d'un sistema GNU/
Linux però que ha quedat obsoleta, si bé es pot trobar encara en algunes dis-
tribucions.
17)�Webmin: és una altra eina (paquets webmin-core, webmin-dhcp, webmin-
inetd, webmin-sshd...) que permet per mitjà d'una interfície web (és necessari
tenir per exemple el servidor Apache instal·lat), configurar i afegir aspectes re-
lacionats amb la Xarxa. Si bé encara es desenvolupa, en moltes distribucions
no s'inclou per defecte. Per a executar-la, una vegada instal·lada, des d'un na-
vegador cal cridar l'URL https://localhost:10000, que sol·licitarà l'acceptació
del certificat SSL i l'usuari (inicialment root) i la seva clau (passwd).
18)� System-config-*: en Fedora hi ha una varietat d'eines gràfiques que
s'anomenen system-config-"alguna-cosa", en què "alguna-cosa" és la funció per
a la qual estan dissenyades. En general, si s'està en un entorn gràfic, es pot
arribar a cada una per mitjà d'un menú; tanmateix, cada una d'aquestes eines
implica un menú que cal recordar. Una eina que centralitza totes les system
config és system-config-control, en una sola entrada de menú i en una única
interfície gràfica, des de la qual es pot seleccionar d'acord amb una organit-
zació d'icones. Per a això, cal anar a "Aplicacions" → "Afegeix/Treu programa-
ri", i aquí s'arrenca com a root el gestor gràfic de programari Pirut (i s'ha de
tenir habilitat el repositori Fedora Extras). En la interfície del Pirut, s'usa, per
exemple, la recerca de paquets disponibles amb el patró system-config-*; trieu
system-config-control* i feu clic a Apply. Entre altres opcions, s'hi poden confi-
gurar gairebé tots els aspectes de la xarxa i els serveis.
19)�Networkmanager: és una eina que permet manejar fàcilment xarxes sen-
se fil i per cable de manera simple i sense grans complicacions, però no és in-
dicat per a servidors (només per a màquines d'escriptori). Instal·lar-lo és molt
fàcil: apt-get�install�network-manager-xx, en què xx és gnome o kde, segons
l'escriptori instal·lat. Per a configurar-lo s'han de comentar totes les entrades
a (Debian) /etc/network/interfaces, excepte la interfície de loopback interface,
per exemple deixant només:
auto lo
iface lo inet loopback
Aquest pas no és obligatori però accelera el descobriment de les xarxes o in-
terfícies. Sobre Debian també s'ha d'agregar un pas extra, i és que l'usuari
s'ha d'integrar dins del grup netdev per una qüestió de permisos. Per a fer-
ho, cal executar (com a root o si no amb l'ordre sudo per davant) adduser
usuari_actual�netdev i reiniciar (o també reiniciar la xarxa amb /etc/init.d/
networking restart i sortir i tornar a entrar perquè l'usuari actual es quedi in-
clòs en el grup netdev).
20)�Altres�eines:
Nota
Més informació a Solucorp.http://www.solucorp.qc.ca/li-nuxconf/
Nota
Més informació a la pàgina deWebmin.http://www.webmin.com/
GNUFDL • PID_00167526 57 Administració de xarxa
• Nmap: explorar i auditar amb finalitats de seguretat una xarxa.
• Nessus: avaluar la seguretat d'una xarxa de manera remota.
• Wireshark (antic Ethereal): analitzador de protocols de xarxa.
• Snort: sistema de detecció d'intrusos, IDS.
• Netcat: utilitat simple i potent per a depurar i explorar una xarxa.
• TCPDump: monitoratge de xarxes i adquisició d'informació.
• Hping2: genera i envia paquets d'ICMP/UDP/TCP per a analitzar el funci-
onament d'una xarxa.Vegeu també
Algunes d'aquestes eines se-ran tractades en el mòduld'administració de seguretaten l'assignatura Administracióavançada de sistemes GNU/Li-nux, que tracta sobre segure-tat.
GNUFDL • PID_00167526 59 Administració de xarxa
Activitats
1. Definiu els escenaris de xarxa següents:
a) Màquina aïllada.b) Petita xarxa local (4 màquines, 1 passarel·la).c) 2 xarxes locals segmentades (2 conjunts de 2 màquines, un encaminador cada una i unapassarel·la general).d) 2 xarxes locals interconnectades (dos conjunts de 2 màquines + passarel·la cada una).e) 2 màquines connectades per mitjà d'una xarxa privada virtual. Indiqueu els avantatges idesavantatges de cada configuració, per a quin tipus d'infraestructura són adequades i quinsparàmetres rellevants es necessiten.
2. Configureu la xarxa de l'opció a, b i d del punt 1.
GNUFDL • PID_00167526 60 Administració de xarxa
Bibliografia
[Bro01] Bronson, S. (2001). "VPN PPP-SSH". The Linux Documentation Project.
[Cis00] Cisco (2000). "TCP/IP White Paper". <http://www.cisco.com>
[Com01] Comer, D. (2001). TCP/IP Principios básicos, protocolos y arquitectura. Prentice Hall.
[Dra99] Drake, J. (1999). "Linux Networking". The Linux Documentation Project.
[Gar98] Garbee, B. (1998). TCP/IP Tutorial. N3EUA Inc.
[Gnu] Gnupg.org. GnuPG Web Site. <http://www.gnupg.org/>
[IET] IETF. "Repositori de Request For Comment desenvolupats per la Internet EngineeringTask Force (IETF) en el Network Information Center (NIC)".
[KD00] Kirch, O.; Dawson, T. (2000). Linux Network Administrator's Guide. O'ReillyAssociates. [I en línia (gratuït) a Free Software Foundation, Inc.]. <http://www.tldp.org/guides.html>
[Law07] Lawyer, D. (2007). "Linux Modem". The Linux Documentation Project.
[Log] LogCheck. <http://logcheck.org/>
[Mal96] Mallett, F. (1996). TCP/IP Tutorial. FAME Computer Education.
[Mou01] Mourani, G. (2001). Securing and Optimizing Linux: The Ultimate Solution. OpenNetwork Architecture, Inc.
[PPP00] Williams, C.; Drake, J.; Hart, R. (2000). "Linux PPP". The Linux DocumentationProject.
[Ran05] Ranch, D. (2005). "Linux IP Masquerade" i Tapsell, J. (2005). "MasqueradingMade Simple". The Linux Documentation Project.
[Rid00] López Ridruejo, D. (2000). "The Linux Networking Overview". The Linux Docu-mentation Project.
[Sec00] Seco, A. (2000). "Diald". The Linux Documentation Project.
[Tri] Tripwire.com. Tripwire Web Site. <http://www.tripwire.com/>
[Vas00] Vasudevan, A. (2000). "Modem-Dialup-NT". The Linux Documentation Project.
[Wil02] Wilson, M. D. (2002). "VPN". The Linux Documentation Project.
[Xin] Xinetd Web Site. <http://www.xinetd.org/>
GNUFDL • PID_00167526 61 Administració de xarxa
Annex
Controlar�els�serveis�vinculats�a�xarxa�a�FCx
Un aspecte important de tots els serveis és com es posen en marxa. Fcx (des
de FC6) inclou una sèrie d'utilitats per a gestionar els serveis –dimonis– (in-
cloent-hi els de xarxa). Com ja s'ha vist en l'apartat d'administració local, el
runlevel és el mode d'operació que especifica quins dimonis s'executaran. A
FC podem trobar: runlevel 1 (monousuari), runlevel 2 (multiusuari), runlevel 3
(multiusuari amb xarxa), runlevel 5 (X11 més runlevel 3). Típicament s'executa
el nivell 5 o 3 si no es necessiten interfícies gràfiques. Per a determinar quin
nivell s'està executant, es pot utilitzar /sbin/runlevel i per a saber quin nivell és
el que s'arrenca per defecte, cat /etc/inittab | grep :initdefault:, que ens donarà
informació com id:5:initdefault: (també es pot editar /etc/inittab per a canviar
el valor per defecte).
Per a visualitzar els serveis que s'estan executant, podem utilitzar /sbin/chkcon-
fig -list, i per a gestionar-los podem utilitzar system-config-services en mode
gràfic o ntsysv en la línia d'ordres. Per a habilitar serveis individuals podem
utilitzar chkconfig. Per exemple, l'ordre següent habilita el servei crond per als
nivells 3 i 5: /sbin/chkconfig�--level�35�crond�on.
Independentment de com s'hagin posat en marxa els serveis, es pot utilitzar
/sbin/service -status-all o individualment amb /sbin/service crond status per a
saber com està cada servei. I també gestionar-lo (start, stop, status, reload, res-
tart); per exemple, service�crond�stop per a parar-lo o service�crond�restart per
a reiniciar-lo.
És important no�deshabilitar�els�serveis�següents (tret que se sàpiga el que
s'està fent): acpid, haldaemon, messagebus, klogd, network, syslogd. Els serveis més
importants vinculats a la xarxa (encara que no es recullen tots, sí la majoria
en aquesta llista no exhaustiva) són:
• NetworkManager,�NetworkManagerDispatcher: és un dimoni que per-
met canviar entre xarxes fàcilment (Wi-Fi i Ethernet bàsicament). Si només
té una xarxa no és necessari que s'executi.
• Avahi-daemon,�avahi-dnsconfd: és una implementació de zeroconf i és
útil per a detectar dispositius i serveis sobre xarxes locals sense DNS (és el
mateix que mDNS).
GNUFDL • PID_00167526 62 Administració de xarxa
• Bluetooth,�hcid,�hidd,�sdpd,�dund,�pand: Bluetooth és una xarxa sense
fil per a dispositius portàtils (no és Wi-Fi, 802.11). Per exemple, teclats,
ratolins, telèfons, altaveus, auriculars, etc.
• Capi,�isdn: xarxa basada en maquinari ISDN35.
• Iptables: és el servei de tallafocs estàndard de Linux. És totalment necessari
per seguretat si es té connexió a xarxa (cable, DSL, T1).
• Ip6tables: és el servei de tallafocs estàndard de Linux per a protocols i
xarxes basats en IPv6.
• Netplugd: pot monitorar la xarxa i executar instruccions quan en canviï
l'estat.
• Netfs: s'utilitza per a muntar automàticament sistemes d'arxius per mitjà
de la xarxa (NFS, Samba, etc.) durant l'arrencada.
• Nfs,�nfslock: són els dimonis estàndard per a compartir sistemes d'arxius
per mitjà de la xarxa en sistemes operatius d'estil Unix/Linux/BSD.
• Ntpd: servidor d'hora i data a través de la xarxa.
• Portmap: és un servei complementari per a NFS (file sharing) o NIS (aut-
hentication).
• Rpcgssd,� rpcidmapd,� rpcsvcgssd: s'utilitza per a NFS v4 (nova versió
d'NFS).
• Sendmail: aquest servei permet gestionar els correus (MTA) o donar suport
a serveis com IMAP o POP3.
• Smb: aquest dimoni permet compartir fitxers sobre sistemes Windows.
• Sshd: SSH permet a altres usuaris connectar-se interactivament de manera
segura a la màquina local.
• Yum-updatesd: servei d'actualitzacions per xarxa d'FC.
• Xinetd: servei alternatiu d'inetd que presenta un conjunt de característi-
ques i millores, com per exemple llançar múltiples serveis per al mateix
port (aquest servei pot no estar instal·lat per defecte).
(35)En català correspon a XDSI(Xarxa de Serveis Integrats).