Contents
Abstract
This document helps you understand the main concepts behind Novell® AppArmor—the content of AppArmor profiles. Learn how to create or modify AppArmor profiles. You can create and manage AppArmor profiles in three different ways. The most convenient interface to AppArmor is provided by means of the AppArmor YaST modules, which can be used either in graphical or ncurses mode. The same functionality is provided by the AppArmor command line tools or by editing the profiles in a text editor.
In complain or learning mode, violations of AppArmor profile rules, such as the profiled program accessing files not permitted by the profile, are detected. The violations are permitted, but also logged. This mode is convenient for developing profiles and is used by the AppArmor tools for generating profiles.
Loading a profile in enforcement mode enforces the policy defined in the profile as well as reports policy violation attempts to syslogd.
Use the rcapparmor command with one of the following parameters:
start
Load the kernel module, mount securityfs, parse and load profiles. Profiles and confinement are applied to any application started after this command was executed. Processes already running at the time AppArmor is started continue to run unconfined.
stop
Unmount securityfs, and invalidate profiles.
reload
Reload profiles.
status
If AppArmor is enabled, output how many profiles are loaded in complain or enforce mode.
Use the rcaaeventd command to control event logging
with aa-eventd. Use the start and stop
options to toggle the status of the aa-eventd and check its status using
status.
Guess basic AppArmor profile requirements. autodep creates a stub profile for the program or application examined. The resulting profile is called “approximate” because it does not necessarily contain all of the profile entries that the program needs in order to be confined properly.
Set an AppArmor profile to complain mode.
Manually activating complain mode (using the command line) adds a flag to the top of the profile so that /bin/foo becomes /bin/foo flags=(complain).
Set an AppArmor profile to enforce mode from complain mode.
Manually activating enforce mode (using the command line) removes mode flags from the top of the profile /bin/foo flags=(complain) becomes /bin/foo.
Generate or update a profile. When running, you must specify a program
to profile. If the specified program is not an absolute path, genprof
searches the $PATH variable. If a profile does not
exist, genprof creates one using autodep.
Manage AppArmor profiles. logprof is an interactive tool used to review the learning or complain mode output found in the AppArmor syslog entries and to generate new entries in AppArmor profiles.
Output a list of processes with open tcp or udp ports that do not have AppArmor profiles loaded.
Using genprof. Suitable for profiling small applications.
Suitable for profiling large numbers of programs all at once and for profiling applications that may run “forever.”
To apply systemic profiling, proceed as follows:
Create profiles for the individual programs that make up your application (autodep).
Put relevant profiles into learning or complain mode.
Exercise your application.
Analyze the log (logprof).
Repeat Steps 3-4.
Edit the profiles.
Return to enforce mode.
Reload all profiles (rcapparmor restart).
When using genprof, logprof, or YaST in learning mode, you get several options for how to proceed:
Grant access.
Prevent access.
Modify the directory path to include all files in the suggested directory.
Modify the original directory path while retaining the filename extension. This allows the program to access all files in the suggested directories that end with the specified extension.
Enable editing of the highlighted line. The new (edited) line appears at the bottom of the list. This option is called in the logprof and genprof command line tools.
Abort logprof or YaST, losing all rule changes entered so far and leaving all profiles unmodified.
Close logprof or YaST, saving all rule changes entered so far and modifying all profiles.
#include<tunables/global>
@{HOME} = /home/*/ /root/ # variable
/usr/bin/foo {
#include <abstractions/base>
network inet tcp,
capability setgid,
/bin/mount ux,
/dev/{,u}random r,
/etc/ld.so.cache r,
/etc/foo/* r,
/lib/ld-*.so* mr,
/lib/lib*.so* mr,
/proc/[0-9]** r,
/usr/lib/** mr,
/tmp/ r,
/tmp/foo.pid wr,
/tmp/foo.* lrw,
/@{HOME}/.foo_file rw,
/@{HOME}/.foo_lock kw,
link /etc/sysconfig/foo -> /etc/foo.conf,
deny /etc/shadow w,
owner /home/*/** rw,
/usr/bin/foobar cx,
/bin/** px -> bin_generic
# comment on foo's local profile, foobar.
foobar {
/bin/bash rmix,
/bin/cat rmix,
/bin/more rmix,
/var/log/foobar* rwl,
/etc/foobar r,
}
}
Profiles are simple text files in the
/etc/apparmor.d directory. They consist of several
parts: #include, capability entries, rules, and “hats.”
This is the section of an AppArmor profile that refers to an include file, which mediates access permissions for programs. By using an include, you can give the program access to directory paths or files that are also required by other programs. Using includes can reduce the size of a profile. It is good practice to select includes when suggested.
To assist you in profiling your applications, AppArmor provides three
classes of #includes: abstractions, program chunks,
and tunables.
Abstractions are #includes that are grouped by
common application tasks. These tasks include access to authentication
mechanisms, access to name service routines, common graphics
requirements, and system accounting (for example, base, consoles,
kerberosclient, perl, user-mail, user-tmp, authentication, bash,
nameservice).
Program chunks are access controls for specific programs that a system administrator might want to control based on local site policy. Each chunk is used by a single program.
Tunables are global variable definitions. When used in a profile, these variables expand to a value that can be changed without changing the entire profile. Therefore your profiles become portable to different environments.
Local variables are defined at the head of a profile. Use local variables to create shortcuts for paths, for example to provide the base for a chrooted path:
@{CHROOT_BASE}=/tmp/foo
/sbin/syslog-ng {
...
# chrooted applications
@{CHROOT_BASE}/var/lib/*/dev/log w,
@{CHROOT_BASE}/var/log/** w,
...
}Alias rules provide an alternative form of path rewriting to using variables, and are done post variable resolution:
alias /home/ -> /mnt/users/
AppArmor provides network access mediation based on network domain and type:
/bin/ping {
network inet dgram,
network inet raw,
...
}The example would allow IPv4 network access of the datagram and raw type for the ping command. For details on the network rule syntax, refer to the Part “Confining Privileges with Novell AppArmor” (↑Security Guide).
Capabilities statements are simply the word “capability” followed by the name of the POSIX.1e capability as defined in the capabilities(7) man page.
|
Option |
File |
|---|---|
|
read |
|
|
write |
|
|
link |
|
|
file locking |
|
|
file append (mutually exclusive to |
|
The link mode grants permission to create links to arbitrary files, provided the link has a subset of the permissions granted by the target (subset permission test). By specifying origin and destination, the link pair rule provides greater control over how hard links are created. Link pair rules by, default, do not enforce the link subset permission test that the standard rules link permission requires. To force the rule to require the test the subset keyword is used. The following rules are equivalent:
/link l, link subset /link -> /**,
AppArmor provides deny rules which are standard rules but
with the keyword deny prepended. They are used to
remember known rejects, and quiet them so the reject messages don't fill
up the log files. For more information see
Part “Confining Privileges with Novell AppArmor” (↑Security Guide).
The file rules can be extended so that they can be conditional upon the
the user being the owner of the file. by prepending the keyword
owner to the rule. Owner conditional rules accumulate
just as regular file rules and are considered a subset of regular file
rules. If a regular file rule overlaps with an owner conditional file
rule, the resulting permissions will be that of the regular file rule.
For executables that may be called from the confined programs, the profile creating tools ask you for an appropriate mode, which is also reflected directly in the profile itself:
|
Option |
File |
Description |
|---|---|---|
|
Inherit |
|
Stay in the same (parent's) profile. |
|
Profile |
|
Requires that a separate profile exists for the executed program.
Use |
|
Local profile |
|
Requires that a local profile exists for the executed program. Use
|
|
Unconstrained |
|
Executes the program without a profile. Avoid running programs in
unconstrained or unconfined mode for security reasons. Use
|
|
Allow Executable Mapping |
|
allow |
![]() | Running in ux Mode |
|---|---|
Avoid running programs in ux mode as much as possible. A program running in ux mode is not only totally unprotected by AppArmor, but child processes inherit certain environment variables from the parent that might influence the child's execution behavior and create possible security risks. | |
For more information about the different file execute modes, refer to the apparmor.d(5) man page. For more information about setgid and setuid environment scrubbing, refer to the ld.so(8) man page.
AppArmor supports explicit handling of directories. Use a trailing
/ for any directory path that needs to be explicitly
distinguished:
/some/random/example/* r
Allow read access to files in the
/some/random/example directory.
/some/random/example/ r
Allow read access to the directory only.
/some/**/ r
Give read access to any directories below /some.
/some/random/example/** r
Give read access to files and directories under
/some/random/example.
/some/random/example/**[^/] r
Give read access to files under
/some/random/example. Explicitly exclude
directories ([^/]).
To spare users from specifying similar paths all over again, AppArmor supports basic globbing:
|
Glob |
Description |
|---|---|
|
|
Substitutes for any number of characters, except
|
|
|
Substitutes for any number of characters, including
|
|
|
Substitutes for any single character, except |
|
|
Substitutes for the single character |
|
|
Substitutes for the single character |
|
|
Expand to one rule to match |
|
|
Substitutes for any character except |
AppArmor provides the user with the ability to audit given rules so that when they are matched, an audit message will appear in the audit log. To enable audit messages for a given rule the audit keyword is prepended to the rule:
audit /etc/foo/* rw,
Normally, AppArmor only restricts existing native Linux controls and does not grant additional privileges. The only exception from this strict rule is the set capability rule. For security reasons, set capability rules will not be inherited. Once a program leaves the profile, it loses the elevated privilege. Setting a capability also implicitly adds a capability rule allowing that capability. Since this rule gives processes root privileges, it should be used with extreme caution and only in exceptional cases.
set capabilty cap_chown,
An AppArmor profile represents a security policy for an individual program instance or process. It applies to an executable program, but if a portion of the program needs different access permissions than other portions, the program can “change hats” to use a different security context, distinctive from the access of the main program. This is known as a hat or subprofile.
A profile can have an arbitrary number of hats, but there are only two levels: a hat cannot have further hats.
The AppArmor ChangeHat feature can be used by applications to access hats
during execution. Currently the packages
apache2-mod_apparmor and
tomcat_apparmor utilize
ChangeHat to provide sub-process confinement for the Apache Web server
and the Tomcat servlet container.
The pam_apparmor PAM module allows applications to confine authenticated users into subprofiles based on group names, user names, or default profile. To accomplish this, pam_apparmor needs to be registered as a PAM session module.
Details about how to set up and configure pam_apparmor can be found in
/usr/share/doc/packages/pam_apparmor/README. A HOWTO
on setting up role-based access control (RBAC) with pam_apparmor is
available at
http://developer.novell.com/wiki/index.php/Apparmor_RBAC_in_version_2.3.
All AppArmor events are logged using the system's audit interface (the auditd
logging to /var/log/audit/audit.log). On top of this
infrastructure, event notification can be configured. Configure this
feature using YaST. It is based on severity levels according to
/etc/apparmor/severity.db. Notification frequency
and type of notification (such as e-mail) can be configured.
If auditd is not running, AppArmor logs to the system log located under
/var/log/messages using the LOG_KERN
facility.
Use YaST for generating reports in CSV or HTML format.
The Linux audit framework contains a dispatcher that can send AppArmor events
to any consumer application via dbus. The GNOME AppArmor Desktop Monitor
applet is one example of an application that gathers AppArmor events via
dbus. To configure audit to use the dbus dispatcher, set the dispatcher
in your audit configuration in
/etc/audit/auditd.conf to
apparmor-dbus and restart auditd:
dispatcher=/usr/bin/apparmor-dbus
Once the dbus dispatcher is configured correctly, add the AppArmor Desktop
Monitor to the GNOME panel. As soon as a REJECT event
is logged, the applet's panel icon changes appearance and you can click
the applet to see the number of reject events per confined application.
To view the exact log messages, refer to the audit log under
/var/log/audit/audit.log. Use the YaST Update
Profile Wizard to adjust the respective profile.
/sys/kernel/security/apparmor/profiles
Virtualized file representing the currently loaded set of profiles.
/etc/apparmor/
Location of AppArmor configuration files.
/etc/apparmor/profiles/extras/
A local repository of profiles shipped with AppArmor, but not enabled by default.
/etc/apparmor.d/
Location of profiles, named with the convention of replacing the
/ in pathnames with . (not for
the root /) so profiles are easier to manage. For
example, the profile for the program
/usr/sbin/ntpd is named
usr.sbin.ntpd.
/etc/apparmor.d/abstractions/
Location of abstractions.
/etc/apparmor.d/program-chunks/
Location of program chunks.
/proc/*/attr/current
Review the confinement status of a process and the profile that is
used to confine the process. The ps
auxZ command retrieves this information
automatically.
To learn more about the AppArmor project, check out the project's home page under http://en.opensuse.org/AppArmor. Find more information on the concept and the configuration of AppArmor in Part “Confining Privileges with Novell AppArmor” (↑Security Guide).
Copyright© 2006– 2010 Novell, Inc. and contributors. All rights reserved.
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or (at your option) version 1.3; with the Invariant Section being this copyright notice and license. A copy of the license version 1.2 is included in the section entitled “GNU Free Documentation License”.
For Novell trademarks, see the Novell Trademark and Service Mark list http://www.novell.com/company/legal/trademarks/tmlist.html. Linux* is a registered trademark of Linus Torvalds. All other third party trademarks are the property of their respective owners. A trademark symbol (®, ™ etc.) denotes a Novell trademark; an asterisk (*) denotes a third party trademark.
All information found in this book has been compiled with utmost attention to detail. However, this does not guarantee complete accuracy. Neither Novell, Inc., SUSE LINUX Products GmbH, the authors, nor the translators shall be held liable for possible errors or the consequences thereof.
1.2-es változat, 2002. november
Copyright (C) 2000,2001,2002 Free Software Foundation, Inc. 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
A jelen licencdokumentumot bárki szabadon lemásolhatja és a pontos másolatait terjesztheti, de a módosítása tilos.
Jelen Licenc célja egy tetszőleges kézikönyv, tankönyv, vagy más, ehhez hasonló felhasználható és hasznos dokumentum a szó szoros értelmében „szabaddá” tétele: annak érdekében, hogy mindenkinek biztosítsa a szöveg sokszorosításának és terjesztésének teljes szabadságát, módosításokkal, vagy anélkül, akár kereskedelmi, akár nem kereskedelmi területen. Másfelől, e Licenc megőrzi a szerző vagy kiadó munkájának elismeréséhez fűződő jogát, s egyúttal mentesíti őt a mások által beiktatott módosítások következményei alól.
A jelen Licenc egyfajta “copyleft” licencnek tekintendő: ez azt jelenti, hogy a dokumentumból származtatott munkák maguk is szabad minősítést kell, hogy kapjanak. Ez a dokumentum egyben a GNU General Public License kiegészítőjeként is szolgál, mely egy, a szabad szoftverekre vonatkozó etalon licenc.
A jelen Licenc a szabad szoftverek kézikönyveihez való használatra készült, hiszen a szabad szoftver egyben szabad dokumentációt is igényel: egy szabad programot olyan kézikönyvvel kell ellátni, amely ugyanazon szabadságokat biztosítja, mint maga a program. Mindazonáltal a jelen Licenc nem korlátozódik pusztán kézikönyvekre; feltételei tetszőleges tárgykörű írott dokumentumra alkalmazhatók, függetlenül attól, hogy az könyvformában valaha megjelent-e. Mindamellett e Licencet főként olyan munkákhoz ajánljuk, melyek elsődleges célja az útmutatás vagy a tájékoztatás.
A jelen Licenc minden olyan kézikönyvre, vagy más jellegű, bármilyen adathordozón található munkára vonatkozik, amelyen megtalálható a szerzői jog tulajdonosa által feltüntetett figyelmeztetés, miszerint a dokumentum terjesztése jelen Licenc feltételei alapján lehetséges. Ez a figyelmeztetés nemzetközi, jogdíjmentes, korlátlan idejű licencet biztosít a mű benne meghatározott felhasználhatóságára vonatkozóan. Az alábbiakban használt “Dokumentum” kifejezés bármely ilyen jellegű kézikönyvre, vagy egyéb munkára vonatkozhat. A nyilvánosság bármely tagja potenciális licenctulajdonosnak tekinthető, és a továbbiakban az “Ön” megszólítást használjuk rá. Ön elfogadja a licenc feltételeit, amennyiben a művet a szerzői jogok alapján engedélyhez kötött módon lemásolja, módosítja vagy terjeszti.
A Dokumentum “Módosított Változata” bármely olyan munkára vonatkozik, amely tartalmazza a Dokumentumot, vagy annak elemeit akár szó szerint, akár módosításokkal, és/vagy más nyelvre lefordítva.
A “Másodlagos szakasz” egy egyedi névvel bíró függelék, esetleg a Dokumentum egy bevezető szakasza, amely kizárólag a kiadóknak, vagy az alkotóknak a Dokumentum átfogó tárgyköréhez (vagy kapcsolódó témákhoz) fűződő viszonyáról szól, és nem tartalmaz semmi olyat, ami közvetlenül ezen átfogó témakör alá eshet. (Vagyis ha a Dokumentum részben egy matematika-tankönyv, akkor a Másodlagos szakasz nem tartalmazhat matematikai tárgyú magyarázatokat.) A fenti kapcsolat tárgya lehet a témakörrel, vagy a kapcsolódó témákkal való történelmi viszony, illetve az azokra vonatkozó jogi, kereskedelmi, filozófiai, etikai, vagy politikai felfogás.
A “Nem Változtatható szakaszok” olyan Másodlagos szakaszok, amelyek címe Nem Változtatható szakaszként van megjelölve abban a közleményben, amely szerint a Dokumentum a jelen Licenc hatálya alatt lett kiadva. Ha egy szakasz nem felel meg a Másodlagos szakasz fenti definíciójának, akkor Nem Változtatható sem lehet. Nem kötelező, hogy egy Dokumentumban legyen Nem Változtatható szakasz, így ha a Dokumentum nem jelöl meg egyetlen Nem Változtatható szakaszt sem, akkor nem tartalmaz ilyet.
A “Borítószövegek” olyan rövid szövegrészek, melyek Címlapszövegként, illetve Hátlapszövegként kerülnek felsorolásra a közleményben, amely szerint a Dokumentum a jelen Licenc hatálya alatt lett kiadva. A Címlapszöveg maximum 5, a Hátlapszöveg maximum 25 szóból állhat.
A Dokumentum “Átlátszó” példánya olyan géppel olvasható változatot jelent, amely a nyilvánosság számára hozzáférhető formátumban kerül terjesztésre, továbbá amelynek tartalma alkalmas a szokványos szövegszerkesztő-programokkal, illetve (pixelekből álló képek esetén) szokványos képmegjelenítő-programokkal, vagy (rajzok esetén) általánosan hozzáférhető rajzprogramok segítségével azonnali és közvetlen változtatásokra; továbbá olyan formátumban mely alkalmas a szövegszerkesztőkbe való bevitelre, vagy a szövegszerkesztők által kezelt formátumokra való automatikus átalakításra. Egy olyan, egyébként Átlátszó formátumban készült példány, melynek a jelölőnyelve vagy ennek hiánya úgy lett kialakítva, hogy megakadályozza, vagy eltántorítsa az olvasókat minden további módosítástól, nem tekinthető Átlátszónak. A nem Átlátszó példányok az Átlátszatlan megnevezést kapják. A nem “Átlátszó” példányok az “Átlátszatlan” megnevezést kapják.
Az Átlátszóság kritériumainak megfelelő formátumok között megtalálható például a jelölőnyelvet nem használó egyszerű ASCII, a Texinfo beviteli formátum, a LaTeX beviteli formátum, az SGML vagy az XML egy általánosan hozzáférhető DTD használatával, és a szabványnak megfelelő, emberi módosításra tervezett egyszerű HTML, PostScript vagy PDF. Átlátszó képformátumokra példa a PNG, XCF és a JPG. Az Átlátszatlan formátumok közé sorolhatóak a a szellemi tulajdont képező formátumok, amelyeket csak szellemi tulajdont képező szövegszerkesztőkkel lehet elolvasni, az olyan SGML vagy XML, amelyhez a szükséges DTD és/vagy egyéb feldolgozó eszközök nem általánosan hozzáférhetők, és az olyan gépileg generált HTML, PostScript vagy PDF formátum, amely kizárólag egyes szövegszerkesztők kimeneti formátumaként áll elő.
Egy nyomtatott könyv esetében a “Címlap” magát a címlapot, illetve bármely azt kiegészítő további oldalt jelöli, amely a jelen Licencben előírt címlaptartalom közzétételéhez szükséges. Az olyan formátumú munkáknál, amelyek nem rendelkeznek effajta címlappal, a “Címlap” a munka címének legjobban kiemelt változatához legközelebb eső, ám a szöveg törzsét megelőző szövegrészeket jelöli.
Egy “XYZ elnevezésű” szakasz a Dokumentum azon alegységét jelenti aminek címe pontosan XYZ, vagy zárójelek között tartalmazza XYZ-t, és az XYZ más nyelvre való fordítását követi. (Az XYZ itt egy alább megjelölt szakasznevet helyettesít, mint például “Köszönetnyilvánítás”, “Ajánlások”, “Jóváhagyás” vagy “Előzmények”.) Egy ilyen szakasz “Címét Megőrizni” a Dokumentum módosítása során azt jelenti, hogy a szakasz “XYZ elnevezésű” marad ezen definíció szerint.
A Dokumentum tartalmazhatja Garanciák Kizárását azon figyelmeztetés mellett, amely kijelenti hogy a Dokumentumra a jelen Licenc érvényes. Ezen Garaciakizárások a jelen Licenc mellékleteinek tekintendők, azonban csak a garanciák kizárásainak tekintetében: minden egyéb állítás, melyet esetleg ezen Garanciakizárás tartalmaz, érvénytelen, és nincs hatással a jelen Licenc tartalmára.
Önnek lehetősége van a Dokumentum kereskedelmi, vagy nem kereskedelmi jellegű sokszorosítására és terjesztésére a felhasznált adathordozó típusától függetlenül, feltéve, hogy a jelen Licenc, a szerzői jogi figyelmeztetés, továbbá a Dokumentumot a jelen Licenc hatálya alá rendelő közlemény minden példányban egyaránt megjelenik, és hogy ezeken kívül semmilyen feltételt nem szab meg a szöveghez. Nem alkalmazhat olyan technikai eszközöket, amelyekkel megakadályozható vagy szabályozható az Ön által terjesztett példányok elolvasása vagy sokszorosítása. Mindazonáltal elfogadhat ellenszolgáltatást a másolatokért cserébe. Amennyiben az Ön által terjesztett példányok száma meghalad egy bizonyos mennyiséget, úgy a 3. szakasz feltételeinek is eleget kell tennie.
A fenti feltételeket betartva kölcsönözhet is példányokat, de akár nyilvánosan is közzéteheti a szöveget.
Amennyiben 100-nál több nyomtatott példányt (vagy olyan adathordozón található példányokat, amelyeknek jellemzően van nyomtatott címlapjuk) tesz közzé a Dokumentumból, és a dokumentum Licence feltételül szabja a Borítószövegek meglétét, úgy minden egyes példányt köteles ellátni olyan borítólapokkal, amelyeken a következő Borítószövegek tisztán és olvashatóan fel vannak tüntetve: Címlapszövegek a címlapon, illetve Hátlapszövegek a hátlapon. Mindkét borítólapra egyértelműen és olvashatóan rá kell vezetnie a kiadó, vagyis jelen esetben az Ön nevét. A címlapon a Dokumentum teljes címének szerepelnie kell, és a cím minden szavának egyformán kiemeltnek és láthatónak kell lennie. Ezen felül, belátása szerint, további részleteket is hozzáadhat a borítólapokhoz. Amennyiben az esetleges módosítások kizárólag a borítólapokat érintik, és feltéve, hogy a Dokumentum címe változatlan marad, továbbá a borítólapok megfelelnek minden egyéb követelménynek, úgy a sokszorosítás ettől eltekintve szó szerinti sokszorosításnak minősül.
Abban az esetben, ha a borítólapok bármelyikén megkövetelt szövegrészek túl hosszúnak bizonyulnának az olvasható közzétételhez, úgy csak az elsőként felsoroltakat kell feltüntetnie (amennyi józan belátás szerint elfér) a tényleges borítón, a továbbiak pedig átkerülhetnek a következő oldalakra.
Amennyiben 100-nál több Átlátszatlan példányt tesz közzé, vagy terjeszt a Dokumentumból, úgy köteles vagy egy géppel olvasható Átlátszó példányt mellékelni minden egyes Átlátszatlan példányhoz, vagy leírni minden egyes Átlátszatlan példányban egy, a módosítatlan Átlátszó példányt tartalmazó olyan számítógép-hálózat elérhetőségét, amely elérhető az általános hálózati felhasználók számára, és onnan nyilvános szabványú hálózati protokollok segítségével a Dokumentum hozzáadott anyagok nélküli, teljes változata letölthető. Ha az utóbbi lehetőséget választja, köteles gondoskodni arról, hogy attól a naptól kezdve, amikor az utolsó Átlátszatlan példány is terjesztésre került (akár közvetlenül Ön által, akár kiskereskedelmi forgalomban), a fenti helyen közzétett Átlátszó példány még legalább egy évig hozzáférhető legyen a felhasználók számára.
Megkérjük, ámde nem kötelezzük Önt arra, hogy minden esetben, amikor nagyobb példányszámú terjesztésbe kezd, már jóval ezt megelőzően lépjen kapcsolatba a Dokumentum szerzőivel, annak érdekében, hogy megkaphassa tőlük a Dokumentum esetleges újabb változatát.
Önnek lehetősége van a Dokumentum Módosított Változatának sokszorosítására és terjesztésére a 2. és 3. szakaszok fenti rendelkezései alapján, feltéve, hogy a Módosított Változatot kizárólag jelen Licenc feltételeivel összhangban teszi közzé, ahol a Módosított Változat a Dokumentum szerepét tölti be, ezáltal lehetőséget biztosítva annak terjesztésére és módosítására bárkinek, aki csak hozzájut egy példányához. Mindezen felül, a Módosított Változat az alábbi követelményeknek is meg kell, hogy feleljen:
A. A Címlapon (és ha van, a borítókon) tüntessen fel egy a Dokumentumétól, illetve bármely korábbi változatétól eltérő címet (amelyeknek, ha vannak, a Dokumentum Előzmények szakaszában kell szerepelniük). Egy korábbi változat címét csak akkor használhatja, ha annak szerzője engedélyezte azt.
B. A Címlapon szerzőkként sorolja fel a Módosított Változatban elvégzett változtatásokért felelős természetes vagy jogi személyeket, továbbá a Dokumentum fő szerzői közül legkevesebb ötöt (vagy mindet, ha ötnél kevesebben vannak) kivéve, ha ezen feltétel alól ők Önt felmentik.
C. A Címlapon a Módosított Változat közzétételéért felelős személyt tüntesse fel kiadóként.
D. A Dokumentum összes szerzői jogi figyelmeztetését hagyja érintetlenül.
E. Saját módosításaira vonatkozóan is tegyen közzé egy szerzői jogi megjegyzést, a többi ilyen jellegű figyelmeztetés mellett.
F. Rögtön a szerzői jogi figyelmeztetéseket követően tüntessen fel egy közleményt, az alábbi Függelék mintájára, amelyben engedélyezi a Módosított Változat felhasználását a jelen Licenc feltételeinek megfelelően.
G. A fenti közleményben hagyja érintetlenül a Nem Változtatható szakaszok és a szükséges Borítószövegek a jelen Dokumentum licencében előírt teljes listáját.
H. Mellékelje a jelen Licenc egy eredeti példányát.
I. Az “Előzmények” elnevezésű szakaszt, illetve annak címét szintén hagyja érintetlenül, emellett adjon hozzá egy új elemet, amely minimálisan tartalmazza a Módosított Változat címét, kiadási évét, továbbá az új szerzők, illetve a kiadó nevét, a Címlapon láthatókhoz hasonlóan. Amennyiben a Dokumentum nem tartalmaz semmiféle “Előzmények” elnevezésű szakaszt, úgy hozzon létre egyet, amely tartalmazza a Dokumentum címét, kiadási évét, továbbá a szerzők, illetve a kiadó nevét, a Címlapon láthatókhoz hasonlóan; majd ezt követően adjon hozzá egy új, a Módosított Változatra vonatkozó elemet, a fentiekkel összhangban.
J. Ne tegyen változtatásokat a Dokumentumban megadott Átlátszó példány nyilvános hálózati elérhetőségét (ha van ilyen) illetően, vagy hasonlóképp, a Dokumentum alapjául szolgáló korábbi változatok hálózati helyére vonatkozóan. Ezek az “Előzmények” szakaszban is szerepelhetnek. Csak abban az esetben hagyhatja el egyes korábbi változatok hálózati elérhetőségét, ha azok legkevesebb négy évvel a Dokumentum előtt készültek, vagy ha maga az alkotó engedélyezi azt.
K. Bármely “Köszönetnyilvánítás”, vagy “Ajánlások” elnevezésű szakasz címét hagyja érintetlenül, továbbá gondoskodjon arról, hogy azok tartalma és hangvétele az egyes hozzájárulókat, és/vagy az ajánlásokat illetően változatlan maradjon.
L. A Dokumentum összes Nem Változtatható szakaszát hagyja érintetlenül, úgy címüket, mint tartalmukat illetően. A szakaszok számozása, vagy bármely azzal egyenértékű jelölés nem tartozik a szakaszcímek közé.
M. Töröljön minden “Hozzájárulás” elnevezésű szakaszt. Effajta szakaszok nem képezhetik részét a Módosított Változatnak.
N. Ne nevezzen át semmilyen létező szakaszt “Hozzájárulás” elnevezésűre, vagy olyasmire, amely címében a Nem Változtatható szakaszokkal ütközhet.
O. Tartson meg minden Garanciakizárást.
Ha a Módosított Változat új bevezető szakaszokat tartalmaz, vagy olyan függelékeket, melyek Másodlagos szakasznak minősülnek, ám nem tartalmaznak a Dokumentumból származó anyagot, abban az esetben, belátása szerint, e szakaszok némelyikét, vagy akár az összeset besorolhatja nem változtathatóként. Ehhez nem kell mást tennie, mint felsorolni a szóban forgó címeket a Módosított Változat licencének Nem Változtatható szakaszok listájában. E címeknek határozottan el kell különülnie minden egyéb szakaszcímtől.
“Hozzájárulás” elnevezésű szakaszt csak akkor adhat a Dokumentumhoz, ha az kizárólag a Módosított Változatra utaló megjegyzéseket tartalmaz – például mások recenzióira vonatkozóan, vagy hogy egy szervezet a szöveget egy szabvány mérvadó definíciójaként ismerte el.
Címlapszöveg gyanánt egy legfeljebb öt szóból álló szövegrészt adhat meg, a Hátlapszöveg esetén pedig 25 szót fűzhet a Módosított Változat Borítószövegeinek végéhez. Bármely természetes vagy jogi személy csak és kizárólag egy Címlapszöveg és egy Hátlapszöveg részt adhat (akár közvetítőn keresztül) a Dokumentumhoz. Ha a Dokumentum már rendelkezik Borítószöveggel ehhez a változathoz, mert korábban Ön adta hozzá, vagy az a szervezet, amelynek nevében Ön fellép, akkor nem adhat hozzá másik Borítószöveget; a régit mindazonáltal lecserélheti, abban az esetben, ha az azt hozzáadó korábbi kiadó egyértelműen engedélyezi.
A közös Dokumentum szerzői és kiadói ezzel a Licenccel nem járulnak hozzá nevük felhasználására, a Módosított Változat népszerűsítésére, és nem támogatják azt.
Önnek lehetősége van a Dokumentum egyéb, e Licenc hatálya alatt kiadott dokumentumokkal való kombinálására a 4. szakasz módosított változatokra vonatkozó rendelkezései alapján, feltéve, hogy a kombináció módosítás nélkül tartalmazza az eredeti dokumentumok összes Nem Változtatható szakaszát, és hogy azok mind Nem Változtatható szakaszként kerülnek felsorolásra a kombinált munka licencében, és tartalmazzák a hozzájuk tartozó Garanciák Kizárásait is.
A kombinált munkának a jelen Licenc mindössze egy példányát kell tartalmaznia, az egymással átfedésben lévő Nem Változtatható szakaszok pedig kiválthatók egy összegzett példánnyal. Amennyiben több Nem Változtatható szakasz szerepelne ugyanazon címmel, ám eltérő tartalommal, úgy alakítsa át minden egyes szakasz címét olyan módon, hogy mögé írja zárójelben az eredeti szerző és kiadó nevét (ha ismeri) vagy egy egyedi sorszámot. Ha szükséges, a Nem Változtatható szakaszok címeivel is végezze el a fenti módosításokat a kombinált munka licencében.
A kombinált munkában az eredeti dokumentumok összes “Előzmények” elnevezésű szakaszát össze kell olvasztania, miáltal egy összefüggő “Előzmények” elnevezésű szakasz jön létre; hasonlóképp kell eljárnia a “Köszönetnyilvánítás”, illetve az “Ajánlások” elnevezésű szakaszok tekintetében. Ugyanakkor minden “Hozzájárulás” elnevezésű szakaszt törölnie kell.
Önnek lehetősége van a Dokumentumból, illetve bármely egyéb, a jelen Licenc hatálya alatt kiadott dokumentumból gyűjteményt létrehozni, és az egyes dokumentumokban található licenceket egyetlen példánnyal kiváltani, feltéve, hogy a gyűjteményben szereplő összes dokumentum esetén minden más tekintetben követi a jelen Licenc feltételeit azok szó szerinti sokszorosítására vonatkozóan.
Tetszése szerint ki is emelhet egy meghatározott dokumentumot a gyűjteményből, továbbá terjesztheti azt jelen Licenc feltételei alapján, feltéve, hogy a szóban forgó dokumentumhoz mellékeli a jelen Licenc egy példányát, és minden egyéb tekintetben betartja jelen Licenc előírásait a dokumentum szó szerinti sokszorosítására vonatkozóan.
A Dokumentum és annak származékainak különálló, vagy független dokumentumokkal, illetve munkákkal való összefűzése egy közös tárolási, vagy terjesztési egységen „gyűjteménynek” nevezendő, amennyiben az összefűzés eredményeképpen érvényes szerzői jogi feltételek nem korlátozzák nagyobb mértékben az összefűzés felhasználóinak jogait, mint amennyire azt az egyes összetevők teszik. Amikor a Dokumentum része egy gyűjteménynek, akkor a jelen Licenc nem érvényes a gyűjtemény azon részeire, amelyek nem a Dokumentumból származtatott munkák.
Amennyiben a 3. szakasz Borítószövegekre vonatkozó rendelkezései alkalmazhatók a Dokumentum e példányaira, és a Dokumentum a teljes összegzésnek kevesebb, mint felét teszi ki, úgy a Dokumentum Borítószövegeit olyan módon is el lehet helyezni a borítókon, hogy azok csak magát a Dokumentumot fogják közre, vagy a borítóknak megfelelő elektronikus formában, amennyiben a Dokumentum elektronikus formában található. Minden más esetben a teljes összegzés borítólapjain kell feltüntetni a fenti szövegeket.
A fordítás egyfajta módosításnak tekinthető, így a Dokumentum lefordított példányai a 4. szakasz rendelkezései alapján terjeszthetők. A Nem Változtatható szakaszok lefordításához külön engedélyt kell kérni a szerzői jogtulajdonostól, mindazonáltal közzétehetők a lefordított változatok is úgy, ha az eredeti Nem Változtatható szakaszokat is belefoglalja a munkába. E Licenc lefordítására, valamint minden, a Dokumentumhoz tartozó Licencmellékletre, illetve az esetleges Garanciák Kizárásaira ugyanezek a feltételek érvényesek, vagyis a lefordított változatok csak akkor jelenhetnek meg, ha mellette ott vannak az eredeti, angol nyelvű Licenc, a mellékletek és kizárások szövegei is. Amennyiben eltérés mutatkozna az eredeti változatok, illetve a fordítás között, úgy a Licenc, a mellékletek és kizárások angol nyelvű eredetije tekintendő mérvadónak.
Ha a Dokumentum egy szakasza “Köszönetnyilvánítások”, “Ajánlások” vagy “Előzmények” elnevezésű, akkor a Cím Megőrzésének (1. szakasz) feltétele (4. szakasz) általában a konkrét cím megváltoztatását jelenti.
A jelen Licencben egyértelműen kijelölt kereteken kívül tilos a Dokumentum bárminemű sokszorosítása, módosítása, továbblicencelése, vagy terjesztése. Minden ezzel szembeni sokszorosítási, módosítási, továbblicencelési, vagy terjesztési kísérlet a jelen Licencben meghatározott jogok automatikus megszűnését vonja maga után. Ugyanakkor azok a felek, akik Önön keresztül jutottak másolathoz vagy jogosultságokhoz, nem veszítik el azokat, amíg maradéktalanul betartják e Licenc előírásait.
Megtörténhet, hogy a Free Software Foundation időről időre felülvizsgált és/vagy új verziókat bocsát ki a GNU Free Documentation License-ből. E verziók szellemisége hasonló lesz jelen változatéhoz, ám részleteikben eltérhetnek, új problémák, új aggályok felmerülése okán. Vö.: http://www.gnu.org/copyleft/
A Licenc minden változata egyedi verziószámmal van ellátva. Ha a Dokumentum jelen Licenc egy konkrét, számozott verziójára “vagy bármely újabb verzióra” hivatkozik, úgy önnek a szóban forgó változat, vagy bármely újabb a Free Software Foundation által (nem vázlatként) kiadott verzió feltételeinek követésére lehetősége van. Ha a Dokumentum nem ad meg semmilyen verziószámot, úgy bármely, a Free Software Foundation által valaha (nem vázlatként) kiadott változat megfelel.
Ha a jelen Licencet egy Ön által írt dokumentumban kívánja használni, akkor mellékelje hozzá a Licenc egy példányát, továbbá vezesse rá az alábbi szerzői jogi és licencközleményeket, rögtön a címlapot követően:
Copyright (c) YEAR YOUR NAME. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 only as published by the Free Software Foundation; with the Invariant Section being this copyright notice and license. A copy of the license is included in the section entitled “GNU Free Documentation License”.
Ha a szövegben vannak Nem Változtatható szakaszok, Címlapszövegek vagy Hátlapszövegek, akkor a „Nincs ... nincs Hátlapszöveg” részt cserélje le az alábbira:
with the Invariant Sections being LIST THEIR TITLES, with the Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST.
Ha vannak Nem Változtatható szakaszok de nincsenek Címlapszövegek, vagy ezen három lehetőség egyéb kombinációinak esetén a fenti két változatból szerkessze meg a helyzetnek megfelelő szöveget.
Amennyiben a dokumentum nem egyértelmű programkódpéldákat is tartalmaz, úgy azt javasoljuk, hogy e példákat egy választása szerinti szabad szoftver licenc alatt közölje – mint például a GNU GPL –, hogy lehetővé tegye a kódok szabad szoftverekben való alkalmazását.