[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

[RFR] man://manpages-de/capabilities.7 (Teil 2)



Hallo Liste,
On Mon, Apr 23, 2012 at 07:40:22PM +0200, Helge Kreutzmann wrote:
> anbei die erste Hälfte der Capabilities-Handbuchseite mit der üblichen
> Bitte um konstruktive Kritik. Ich habe Capability als Technicus
> Terminus nicht übersetzt.
> 
> Teil 2 folgt dann nach dem Begutachtung von Teil 1 (die Übersetzung ist fertig).

Und nun Teil 2, ich habe alles was sich aus der Korrektur aus Teil 1
ergab, bereits eingebaut.

Vielen Dank für das Korrekturlesen & Viele Grüße

         Helge
-- 
      Dr. Helge Kreutzmann                     debian@helgefjell.de
           Dipl.-Phys.                   http://www.helgefjell.de/debian.php
        64bit GNU powered                     gpg signed mail preferred
           Help keep free software "libre": http://www.ffii.de/
#. type: SS
#, no-wrap
msgid "File Capabilities"
msgstr "Datei-Capabilities"

#. type: Plain text
msgid ""
"Since kernel 2.6.24, the kernel supports associating capability sets with an "
"executable file using B<setcap>(8).  The file capability sets are stored in "
"an extended attribute (see B<setxattr>(2))  named I<security.capability>.  "
"Writing to this extended attribute requires the B<CAP_SETFCAP> capability.  "
"The file capability sets, in conjunction with the capability sets of the "
"thread, determine the capabilities of a thread after an B<execve>(2)."
msgstr ""
"Seit Kernel 2.6.24 unterstützt der Kernel die Zuordnung von Capability-Mengen "
"zu einer ausführbaren Datei mittels B<setcap>(8). Die Datei-Capability-Mengen "
"werden in erweiterten Attributen namens I<security.capability> gespeichert "
"(siehe B<setxattr>(2)). Das Schreiben in diese erweiterten Attribute "
"benötigt die Capability B<CAP_SETFCAP>. Die Datei-Capability-Mengen bestimmen "
"zusammen mit den Capability-Mengen des Threads die Capabilities nach einem "
"B<execve>(2)."

#. type: Plain text
msgid "The three file capability sets are:"
msgstr "Die drei Datei-Capabilities-Mengen sind:"

#. type: TP
#, no-wrap
msgid "I<Permitted> (formerly known as I<forced>):"
msgstr "I<Permitted> (erlaubt, früher als I<forced> (erzwungen) bekannt):"

#. type: Plain text
msgid ""
"These capabilities are automatically permitted to the thread, regardless of "
"the thread's inheritable capabilities."
msgstr ""
"Diese Capabilities werden dem Thread automatisch erlaubt, unabhängig von den "
"geerbten Capabilities des Threads."

#. type: TP
#, no-wrap
msgid "I<Inheritable> (formerly known as I<allowed>):"
msgstr "I<Inheritable> (vererbbar, früher als I<allowed> (erlaubt) bekannt):"

#. type: Plain text
msgid ""
"This set is ANDed with the thread's inheritable set to determine which "
"inheritable capabilities are enabled in the permitted set of the thread "
"after the B<execve>(2)."
msgstr ""
"Diese Menge wird mittels AND mit der vererbbaren Menge des Threads verknüpft, "
"um zu bestimmen, welche vererbbaren Capabilities in der erlaubten Menge des "
"Threads nach einem B<execve>(2) aktiviert werden."

#. type: Plain text
msgid ""
"This is not a set, but rather just a single bit.  If this bit is set, then "
"during an B<execve>(2)  all of the new permitted capabilities for the thread "
"are also raised in the effective set.  If this bit is not set, then after an "
"B<execve>(2), none of the new permitted capabilities is in the new effective "
"set."
msgstr ""
"Dies ist keine Menge, sondern eher ein einziges Bit. Falls dieses Bit gesetzt "
"ist, dann werden während eines B<execve>(2) die gesamte erlaubten Capabilties "
"für den Thread in die effektive Menge hochgezogen. Falls dieses Bit nicht "
"gesetzt ist, dann wird nach einem B<execve>(2) keine der erlaubten "
"Capabilities in der neuen effektiven Menge sein."

#. type: Plain text
msgid ""
"Enabling the file effective capability bit implies that any file permitted "
"or inheritable capability that causes a thread to acquire the corresponding "
"permitted capability during an B<execve>(2)  (see the transformation rules "
"described below) will also acquire that capability in its effective set.  "
"Therefore, when assigning capabilities to a file (B<setcap>(8), "
"B<cap_set_file>(3), B<cap_set_fd>(3)), if we specify the effective flag as "
"being enabled for any capability, then the effective flag must also be "
"specified as enabled for all other capabilities for which the corresponding "
"permitted or inheritable flags is enabled."
msgstr ""
"Aktivieren des effektiven Datei-Capability-Bits impliziert, dass jede "
"erlaubte oder vererbte Datei-Capability, die dazu führt, dass ein Thread die "
"entsprechende erlaubte Capability während eines B<execve>(2) erlangt (siehe "
"die oben beschriebenen Transformationsregeln), auch dazu führt, dass er die "
"Capability in seiner effektiven Menge erlangt. Werden daher Capabilities zu "
"einer Datei zugeweisen ((B<setcap>(8), B<cap_set_file>(3), B<cap_set_fd>(3)), "
"falls der effektive Schalter für irgendeine Capability aktiviert ist, dann "
"muss der effektive Schalter auch als aktiviert für alle anderen Capabilities, "
"für die die entsprechenden erlaubten oder vererbbaren Schalter aktiviert sind, "
"spezifiziert werden."

#. type: SS
#, no-wrap
msgid "Transformation of Capabilities During execve()"
msgstr "Umwandlungen von Capabilities während execve()"

#. type: Plain text
msgid ""
"During an B<execve>(2), the kernel calculates the new capabilities of the "
"process using the following algorithm:"
msgstr ""
"Während eines B<execve>(2) berechnet der Kernel die neuen Capabilities eines "
"Prozesses mit dem folgenden Algorithmus:"

#. type: Plain text
#, no-wrap
msgid ""
"P'(permitted) = (P(inheritable) & F(inheritable)) |\n"
"                (F(permitted) & cap_bset)\n"
msgstr ""
"P'(permitted) = (P(inheritable) & F(inheritable)) |\n"
"                (F(permitted) & cap_bset)\n"

#. type: Plain text
#, no-wrap
msgid "P'(effective) = F(effective) ? P'(permitted) : 0\n"
msgstr "P'(effective) = F(effective) ? P'(permitted) : 0\n"

#. type: Plain text
#, no-wrap
msgid "P'(inheritable) = P(inheritable)    [i.e., unchanged]\n"
msgstr "P'(inheritable) = P(inheritable)    [d.h. unverändert]\n"

#. type: Plain text
msgid "where:"
msgstr "wobei"

#. type: IP
#, no-wrap
msgid "P"
msgstr "P"

#. type: Plain text
msgid "denotes the value of a thread capability set before the B<execve>(2)"
msgstr "bezeichnet den Wert einer Capability-Menge des Threads vor dem B<execve>(2)"

#. type: IP
#, no-wrap
msgid "P'"
msgstr "P'"

#. type: Plain text
msgid "denotes the value of a capability set after the B<execve>(2)"
msgstr "bezeichnet den Wert einer Capability-Menge nach dem B<execve>(2)"

#. type: IP
#, no-wrap
msgid "F"
msgstr "F"

#. type: Plain text
msgid "denotes a file capability set"
msgstr "bezeichnet einen Datei-Capability-Menge"

#. type: IP
#, no-wrap
msgid "cap_bset"
msgstr "cap_bset"

#. type: Plain text
msgid "is the value of the capability bounding set (described below)."
msgstr "ist der Wert der Capability-Begrenzungsmenge (weiter unten beschrieben)"

#. type: SS
#, no-wrap
msgid "Capabilities and execution of programs by root"
msgstr "Capabilities und Ausführung von Programmen durch root"

#. type: Plain text
msgid ""
"In order to provide an all-powerful I<root> using capability sets, during an "
"B<execve>(2):"
msgstr ""
"Um während eines B<execve>(2) ein allmächtigen I<root> mit Capability-Mengen "
"bereitzustellen:"

#. type: Plain text
msgid ""
"If a set-user-ID-root program is being executed, or the real user ID of the "
"process is 0 (root)  then the file inheritable and permitted sets are "
"defined to be all ones (i.e., all capabilities enabled)."
msgstr ""
"Falls ein set-user-ID-root-Programm ausgeführt wird oder die reale "
"Benutzer-ID des Prozesses 0 (root) ist sind die vererbbaren und erlaubten "
"Dateimengen komplett auf nur Einsen definiert (d.h. alle Capabilities "
"aktiviert)."

#. type: Plain text
msgid ""
"If a set-user-ID-root program is being executed, then the file effective bit "
"is defined to be one (enabled)."
msgstr ""
"Falls ein set-user-ID-root-Programm ausgeführt wird, dann ist das effektive "
"Datei-Bit als Eins (aktiviert) definiert."

#.  If a process with real UID 0, and nonzero effective UID does an
#.  exec(), then it gets all capabilities in its
#.  permitted set, and no effective capabilities
#. type: Plain text
msgid ""
"The upshot of the above rules, combined with the capabilities "
"transformations described above, is that when a process B<execve>(2)s a set-"
"user-ID-root program, or when a process with an effective UID of 0 B<execve>"
"(2)s a program, it gains all capabilities in its permitted and effective "
"capability sets, except those masked out by the capability bounding set.  "
"This provides semantics that are the same as those provided by traditional "
"UNIX systems."
msgstr ""
"Das Fazit der oben aufgeführten Regeln, kombiniert mit den beschriebenen "
"Capabilities-Umwandlungen, ist, dass wenn ein Prozess ein "
"set-user-ID-root-Programm B<execve>(2)ed, er alle Capabilities in seinen "
"erlaubten und effektiven Mengen erhält, außer denen, die durch die "
"Capability-Begrenzungsmenge ausmaskiert sind. Damit wird eine Semantik "
"bereitgestellt, die identisch zu der von traditionellen UNIX-Sytemen ist."

#. type: SS
#, no-wrap
msgid "Capability bounding set"
msgstr "Capability-Begrenzungsmenge"

#. type: Plain text
msgid ""
"The capability bounding set is a security mechanism that can be used to "
"limit the capabilities that can be gained during an B<execve>(2).  The "
"bounding set is used in the following ways:"
msgstr ""
"Die Capability-Begrenzungsmenge ist ein Sicherheitsmechanismus, der zur "
"Begrenzung der Capabilities, die während eines B<execve>(2) erlangt werden "
"können, dienen kann. Die Begrenzungsmenge wird auf die folgende Art und Weise "
"benutzt:"

#. type: Plain text
msgid ""
"During an B<execve>(2), the capability bounding set is ANDed with the file "
"permitted capability set, and the result of this operation is assigned to "
"the thread's permitted capability set.  The capability bounding set thus "
"places a limit on the permitted capabilities that may be granted by an "
"executable file."
msgstr ""
"Während eines B<execve>(2) wird die Capability-Begrenzungsmenge mittels AND "
"mit der erlaubten Datei-Capability-Menge verknüpft und das Ergebnis dieser "
"Operation wird der erlaubten Capability-Menge des Threads zugewiesen. Die "
"Capability-Begrenzungsmenge stellt daher eine Grenze für die erlaubten "
"Capabilities dar, die einer ausführbaren Datei erlaubt werden dürfen."

#. type: Plain text
msgid ""
"(Since Linux 2.6.25)  The capability bounding set acts as a limiting "
"superset for the capabilities that a thread can add to its inheritable set "
"using B<capset>(2).  This means that if a capability is not in the bounding "
"set, then a thread can't add this capability to its inheritable set, even if "
"it was in its permitted capabilities, and thereby cannot have this "
"capability preserved in its permitted set when it B<execve>(2)s a file that "
"has the capability in its inheritable set."
msgstr ""
"(Seit Linux 2.6.25) Die Capability-Begrenzungsmenge agiert als begrenzende "
"Übermenge für die Capabilities, die ein Thread zu seiner vererbbaren Menge "
"mittels B<capset>(2) hinzufügen kann. Das bedeutet, dass ein Thread eine "
"Capability nicht zu seiner vererbbaren Menge hinzufügen kann, falls es nicht "
"in der Begrenzungsmenge enthalten ist, selbst falls es in seinen erlaubten "
"Capabilities vorhanden ist, wenn er eine Datei B<execve>(2)ed, die diese "
"Capability in seiner vererbbaren Menge hat."

#. type: Plain text
msgid ""
"Note that the bounding set masks the file permitted capabilities, but not "
"the inherited capabilities.  If a thread maintains a capability in its "
"inherited set that is not in its bounding set, then it can still gain that "
"capability in its permitted set by executing a file that has the capability "
"in its inherited set."
msgstr ""
"Beachten Sie, dass die Begrenzungsmenge die erlaubten Datei-Capabilities "
"maskiert, aber nicht die vererbten Capabilities. Falls ein Thread eine "
"Capability in seiner vererbten Menge betreut, die nicht in seiner "
"Begrenzungsmenge ist, dann kann er weiterhin die Capability in seiner "
"erlaubten Menge erlangen, indem er eine Datei ausführt, die diese Capability "
"in seiner vererbten Menge enthält."

#. type: Plain text
msgid ""
"Depending on the kernel version, the capability bounding set is either a "
"system-wide attribute, or a per-process attribute."
msgstr ""
"Abhängig von der Kernelversion ist die Capability-Begrenzungsmenge entweder "
"ein systemweites Attribut oder ein pro-Prozess-Attribut."

#. type: Plain text
msgid "B<Capability bounding set prior to Linux 2.6.25>"
msgstr "B<Capability-Begrenzungsmenge vor Linux 2.6.25>"

#. type: Plain text
msgid ""
"In kernels before 2.6.25, the capability bounding set is a system-wide "
"attribute that affects all threads on the system.  The bounding set is "
"accessible via the file I</proc/sys/kernel/cap-bound>.  (Confusingly, this "
"bit mask parameter is expressed as a signed decimal number in I</proc/sys/"
"kernel/cap-bound>.)"
msgstr ""
"In Kerneln vor 2.6.25 ist die Capability-Begrenzungsmenge ein systemweites "
"Attribut, das alle Threads auf dem System betrifft. Auf die Begrenzungsmenge "
"kann über die Datei I</proc/sys/kernel/cap-bound> zugegriffen werden. (Zur "
"Erhöhung der Konfusion wird dieser Bitmaskenparameter als vorzeichenbehaftete "
"Dezimalzahl in I</proc/sys/kernel/cap-bound> ausgedrückt.)"

#. type: Plain text
msgid ""
"Only the B<init> process may set capabilities in the capability bounding "
"set; other than that, the superuser (more precisely: programs with the "
"B<CAP_SYS_MODULE> capability) may only clear capabilities from this set."
msgstr ""
"Nur der B<init>-Prozess darf Capabilities in der Capability-Begrenzungsmenge "
"setzen; abgesehen davon kann der Superuser (oder genauer: Programme mit der "
"Capability B<CAP_SYS_MODULE>) nur Capabilities aus dieser Menge entfernen."

#. type: Plain text
msgid ""
"On a standard system the capability bounding set always masks out the "
"B<CAP_SETPCAP> capability.  To remove this restriction (dangerous!), modify "
"the definition of B<CAP_INIT_EFF_SET> in I<include/linux/capability.h> and "
"rebuild the kernel."
msgstr ""
"Auf einem Standardsystem maskiert die Capability-Begrenzungsmenge immer die "
"Capability B<CAP_SETPCAP> aus. Um diese Einschränkung zu entfernen "
"(gefährlich!), verändern Sie die Definition von B<CAP_INIT_EFF_SET> in "
"I<include/linux/capability.h> und bauen Sie Ihren Kernel neu."

#. type: Plain text
msgid ""
"The system-wide capability bounding set feature was added to Linux starting "
"with kernel version 2.2.11."
msgstr ""
"Die systemweite Capability-Begrenzungsmengenfunktion wurde Linux in Version "
"2.2.11 hinzugefügt."

#. type: Plain text
msgid "B<Capability bounding set from Linux 2.6.25 onward>"
msgstr "B<Capability-Begrenzungsmenge seit Linux 2.6.25>"

#. type: Plain text
msgid ""
"From Linux 2.6.25, the I<capability bounding set> is a per-thread "
"attribute.  (There is no longer a system-wide capability bounding set.)"
msgstr ""
"Seit Linux 2.6.25 ist die I<Capability-Begrenzungsmenge> ein "
"pro-Thread-Attribut. (Es gibt keine systemweite Capability-Begrenzungsmenge "
"mehr.)"

#. type: Plain text
msgid ""
"The bounding set is inherited at B<fork>(2)  from the thread's parent, and "
"is preserved across an B<execve>(2)."
msgstr ""
"Die Begrenzungsmenge wird bei B<fork>(2) vom Vater des Threads vererbt und "
"über ein B<execve>(2) erhalten."

#. type: Plain text
msgid ""
"A thread may remove capabilities from its capability bounding set using the "
"B<prctl>(2)  B<PR_CAPBSET_DROP> operation, provided it has the "
"B<CAP_SETPCAP> capability.  Once a capability has been dropped from the "
"bounding set, it cannot be restored to that set.  A thread can determine if "
"a capability is in its bounding set using the B<prctl>(2)  "
"B<PR_CAPBSET_READ> operation."
msgstr ""
"Ein Thread kann mittels der Operation B<prctl>(2) B<PR_CAPBSET_DROP> "
"Capabilities aus seiner Begrenzungsmenge entfernen, vorausgesetzt es verfügt "
"über die Capability B<CAP_SETPCAP>. Sobald eine Capability aus der "
"Begrenzungsmenge entfernt wurde, kann es nicht mehr zu der Menge wieder "
"hinzugefügt werden. Ein Thread kann mittels der Operation B<prctl>(2) "
"B<PR_CAPBSET_READ> herausfinden, ob ein Capability in seiner Begrenzungsmenge "
"liegt."

#. type: Plain text
msgid ""
"Removing capabilities from the bounding set is only supported if file "
"capabilities are compiled into the kernel.  In kernels before Linux 2.6.33, "
"file capabilities were an optional feature configurable via the "
"CONFIG_SECURITY_FILE_CAPABILITIES option.  Since Linux 2.6.33, the "
"configuration option has been removed and file capabilities are always part "
"of the kernel.  When file capabilities are compiled into the kernel, the "
"B<init> process (the ancestor of all processes) begins with a full bounding "
"set.  If file capabilities are not compiled into the kernel, then B<init> "
"begins with a full bounding set minus B<CAP_SETPCAP>, because this "
"capability has a different meaning when there are no file capabilities."
msgstr ""
"Entfernen von Capabilities aus der Begrenzungsmenge ist nur mnöglich, falls "
"Datei-Capabilities in den Kernel kompiliert wurden. In Kerneln vor Linux "
"2.6.33 waren Datei-Capabilities eine optionale Funktionalität, die mittels "
"der Option CONFIG_SECURITY_FILE_CAPABILITIES konfigurierbar war. Seit Linux "
"2.6.33 ist die Konfigurationsoption entfernt und Datei-Capabilities sind "
"immer Teil des Kernels. Wenn Datei-Capabilities in den Kernel kompiliert "
"sind, beginnt der B<init>-Prozess (der Urahn aller Prozesse) mit einer "
"kompletten Begrenzungsmenge. Falls Datei-Capabilities nicht in den Kernel "
"kompiliert sind, dann begint B<init> mit einer vollständigen Begrenzungsmenge "
"ohne B<CAP_SETPCAP>, da diese Capability eine andere Bedeutung hat, wenn es "
"keine Datei-Capabilities gibt."

#. type: Plain text
msgid ""
"Removing a capability from the bounding set does not remove it from the "
"thread's inherited set.  However it does prevent the capability from being "
"added back into the thread's inherited set in the future."
msgstr ""
"Die Entfernung einer Capability aus der Begrenzungsmenge entfernt es nicht "
"aus der vererbten Menge des Threads. Allerdings verhindert es das Zurückfügen "
"in die vererbte Menge des Threads in der Zukunft."

#. type: SS
#, no-wrap
msgid "Effect of User ID Changes on Capabilities"
msgstr "Effekt von Benutzer-ID-Änderungen auf Capabilities"

#. type: Plain text
msgid ""
"To preserve the traditional semantics for transitions between 0 and nonzero "
"user IDs, the kernel makes the following changes to a thread's capability "
"sets on changes to the thread's real, effective, saved set, and file system "
"user IDs (using B<setuid>(2), B<setresuid>(2), or similar):"
msgstr ""
"Um die traditionellen Semantiken für Übergänge zwischen 0 und von 0 "
"verschiedenen IDs zu erhalten, führt der Kernel folgende Änderungen an den "
"Capability-Mengen eines Threads bei Änderung der echten, effektiven, "
"gespeicherten und Dateisystem-Benutzer-ID (unter Verwendung von B<setuid>(2), "
"B<setresuid>(2) oder ähnlich) durch:"

#. type: Plain text
msgid ""
"If one or more of the real, effective or saved set user IDs was previously "
"0, and as a result of the UID changes all of these IDs have a nonzero value, "
"then all capabilities are cleared from the permitted and effective "
"capability sets."
msgstr ""
"Falls einer der realen, effektiven oder gespeicherten set-user-IDs vorher 0 "
"war und als Ergebnis der UID-Änderung alle dieser IDs eine von 0 "
"verschiedenen Wert haben, dann werden alle Capabilities aus den erlaubten und "
"effektiven Capability-Mengen gelöscht."

#. type: Plain text
msgid ""
"If the effective user ID is changed from 0 to nonzero, then all capabilities "
"are cleared from the effective set."
msgstr ""
"Falls die effektive Benutzer-ID von 0 auf einen von 0 verschiedenen Wert "
"geändert wird, werden alle Capabilities aus der effektiven Menge gelöscht."

#. type: Plain text
msgid ""
"If the effective user ID is changed from nonzero to 0, then the permitted "
"set is copied to the effective set."
msgstr ""
"Falls die effektive Benutzer-ID von einem von 0 verschiedenen Wert auf 0 "
"geändert wird, dann wird die erlaubte Menge in die effektive Menge kopiert."

#. type: IP
#, no-wrap
msgid "4."
msgstr "4."

#. type: Plain text
msgid ""
"If the file system user ID is changed from 0 to nonzero (see B<setfsuid>"
"(2))  then the following capabilities are cleared from the effective set: "
"B<CAP_CHOWN>, B<CAP_DAC_OVERRIDE>, B<CAP_DAC_READ_SEARCH>, B<CAP_FOWNER>, "
"B<CAP_FSETID>, B<CAP_LINUX_IMMUTABLE> (since Linux 2.2.30), "
"B<CAP_MAC_OVERRIDE>, and B<CAP_MKNOD> (since Linux 2.2.30).  If the file "
"system UID is changed from nonzero to 0, then any of these capabilities that "
"are enabled in the permitted set are enabled in the effective set."
msgstr ""
"Falls die Dateisystem-Benutzer-ID von 0 auf einen anderen Wert geändert wird "
"(siehe B<setfsuid>(2)) dann werden die folgenden Capabilities aus der "
"effektiven Menge entfernt: B<CAP_CHOWN>, B<CAP_DAC_OVERRIDE>, "
"B<CAP_DAC_READ_SEARCH>, B<CAP_FOWNER>, B<CAP_FSETID>, B<CAP_LINUX_IMMUTABLE> "
"(seit Linux 2.2.30), B<CAP_MAC_OVERRIDE> und B<CAP_MKNOD> (seit Linux "
"2.2.30). Falls die Dateisystem-UID von einem von 0 verschiedenen Wert auf 0 "
"geändert wird, dann werden alle dieser Capabilities, die in der erlaubten "
"Menge aktiviert waren, in der effektiven Menge aktiviert."

#. type: Plain text
msgid ""
"If a thread that has a 0 value for one or more of its user IDs wants to "
"prevent its permitted capability set being cleared when it resets all of its "
"user IDs to nonzero values, it can do so using the B<prctl>(2)  "
"B<PR_SET_KEEPCAPS> operation."
msgstr ""
"Falls ein Thread, der einen Wert 0 für mindestens eine seiner Benutzer-IDs "
"hat, verhindern möchte, dass seine erlaubte Capability-Menge bereinigt wird, "
"wenn er alle seine Benutzer-IDs auf einen von 0 verschiedenen Wert setzt, "
"kann er dies mittels der Operation B<prctl>(2) B<PR_SET_KEEPCAPS> erreichen."

#. type: SS
#, no-wrap
msgid "Programmatically adjusting capability sets"
msgstr "Programmatische Anpassung von Capability-Mengen"

#. type: Plain text
msgid ""
"A thread can retrieve and change its capability sets using the B<capget>(2)  "
"and B<capset>(2)  system calls.  However, the use of B<cap_get_proc>(3)  and "
"B<cap_set_proc>(3), both provided in the I<libcap> package, is preferred for "
"this purpose.  The following rules govern changes to the thread capability "
"sets:"
msgstr ""
"Ein Thread kann seine Capability-Mengen mittels der Systemaufrufe "
"B<capget>(2) und B<capset>(2) ermitteln und ändern. Allerdings werden für "
"diesen Zweck die Verwendung von B<cap_get_proc>(3) und B<cap_set_proc>(3), "
"beide im Paket I<libcap> bereitgestellt, empfohlen. Die folgenden Regeln "
"bestimmen die Änderungen an den Capability-Mengen des Threads:"

#. type: Plain text
msgid ""
"If the caller does not have the B<CAP_SETPCAP> capability, the new "
"inheritable set must be a subset of the combination of the existing "
"inheritable and permitted sets."
msgstr ""
"Falls der Aufrufende nicht über die Capability B<CAP_SETPCAP> verfügt, dann "
"muss die neue vererbare Menge eine Teilmenge der Kombination der bestehenden "
"vererbbaren und erlaubten Menge sein."

#. type: Plain text
msgid ""
"(Since kernel 2.6.25)  The new inheritable set must be a subset of the "
"combination of the existing inheritable set and the capability bounding set."
msgstr ""
"(Seit Kernel 2.6.25) Die neue vererbare Menge muss eine Teilmenge der "
"Kombination der bestehenden vererbbaren Menge und der "
"Capability-Begrenzungsmenge sein."

#. type: Plain text
msgid ""
"The new permitted set must be a subset of the existing permitted set (i.e., "
"it is not possible to acquire permitted capabilities that the thread does "
"not currently have)."
msgstr ""
"Die neue erlaubte Menge muss eine Teilmenge der bestehenden erlaubten Menge "
"sein (d.h. es ist nicht möglich, erlaubte Capabilities zu erlangen, die der "
"Thread derzeit nicht hat)."

#. type: Plain text
msgid "The new effective set must be a subset of the new permitted set."
msgstr ""
"Die neue effektive Menge muss eine Teilmenge der neuen erlaubten Menge sein."

#. type: SS
#, no-wrap
msgid "The \"securebits\" flags: establishing a capabilities-only environment"
msgstr "Der Schalter »securebits«: eine reine Capability-Umgebung einrichten"

#.  For some background:
#.        see http://lwn.net/Articles/280279/ and
#.        http://article.gmane.org/gmane.linux.kernel.lsm/5476/
#. type: Plain text
msgid ""
"Starting with kernel 2.6.26, and with a kernel in which file capabilities "
"are enabled, Linux implements a set of per-thread I<securebits> flags that "
"can be used to disable special handling of capabilities for UID 0 "
"(I<root>).  These flags are as follows:"
msgstr ""
"Beginnend mit Kernel 2.6.26 und mit einem Kernel, in dem Datei-Capabilities "
"aktiviert sind, implementiert Linux eine Menge von "
"pro-Thread-I<securebits>-Schaltern, die zur Deaktivierung von spezieller "
"Handhabung von Capabilities für UID 0 (I<root>) verwandt werden können. Dies "
"sind die folgenden Schalter:"

#. type: TP
#, no-wrap
msgid "B<SECBIT_KEEP_CAPS>"
msgstr "B<SECBIT_KEEP_CAPS>"

#. type: Plain text
msgid ""
"Setting this flag allows a thread that has one or more 0 UIDs to retain its "
"capabilities when it switches all of its UIDs to a nonzero value.  If this "
"flag is not set, then such a UID switch causes the thread to lose all "
"capabilities.  This flag is always cleared on an B<execve>(2).  (This flag "
"provides the same functionality as the older B<prctl>(2)  B<PR_SET_KEEPCAPS> "
"operation.)"
msgstr ""
"Durch Setzen dieses Schalters darf ein Thread, der mindestens eine 0 UID hat, "
"seine Capabilities behalten, wenn er alle UIDs auf einen von 0 verschiedenen "
"Wert umschaltet. Falls dieser Schalter nicht gesetzt ist, dann führt das "
"Umschalten der UIDs dazu, dass er alle Capabilities verliert. Dieser Schalter "
"wird bei B<execve>(2) immer bereinigt. (Dieser Schalter stellt die gleiche "
"Funktionalität wie die ältere Operation B<prctl>(2) B<PR_SET_KEEPCAPS> "
"bereit.)"

#. type: TP
#, no-wrap
msgid "B<SECBIT_NO_SETUID_FIXUP>"
msgstr "B<SECBIT_NO_SETUID_FIXUP>"

#. type: Plain text
msgid ""
"Setting this flag stops the kernel from adjusting capability sets when the "
"threads's effective and file system UIDs are switched between zero and "
"nonzero values.  (See the subsection I<Effect of User ID Changes on "
"Capabilities>.)"
msgstr ""
"Setzen dieses Schalters hindert den Kernel daran, die Capability-Mengen "
"anzupassen, wenn die effektive und die Dateisystem-UID eines Threads zwischen "
"null und von null verschiedenen Werten umgeschaltet werden. (Lesen Sie den "
"Abschnitt I<Effekt von Benutzer-ID-Änderungen auf Capabilities>)"

#. type: TP
#, no-wrap
msgid "B<SECBIT_NOROOT>"
msgstr "B<SECBIT_NOROOT>"

#. type: Plain text
msgid ""
"If this bit is set, then the kernel does not grant capabilities when a set-"
"user-ID-root program is executed, or when a process with an effective or "
"real UID of 0 calls B<execve>(2).  (See the subsection I<Capabilities and "
"execution of programs by root>.)"
msgstr ""
"Falls dieses Bit gesetzt ist, dann verleiht der Kernel keine Capabilities, "
"wenn ein set-user-ID-root-Programm ausgeführt wird oder wenn ein Prozess mit "
"einer effektiven oder realen UID von 0 B<execve>(2) aufruft. (Lesen Sie den "
"Abschnitt I<Capabilities und Ausführung von Programmen durch root>)"

#. type: Plain text
msgid ""
"Each of the above \"base\" flags has a companion \"locked\" flag.  Setting "
"any of the \"locked\" flags is irreversible, and has the effect of "
"preventing further changes to the corresponding \"base\" flag.  The locked "
"flags are: B<SECBIT_KEEP_CAPS_LOCKED>, B<SECBIT_NO_SETUID_FIXUP_LOCKED>, and "
"B<SECBIT_NOROOT_LOCKED>."
msgstr ""
"Jeder der obigen »basis«-Schalter hat einen begleitenden »gesperrten« "
"Schalter. Das Setzen eines »gesperrten« Schalters ist unumkehrbar und hat den "
"Effekt, dass weitere Änderungen an dem entsprechenden Basisschalter nicht "
"mehr möglich sind. Die gesperrten Schalter sind: B<SECBIT_KEEP_CAPS_LOCKED>, "
"B<SECBIT_NO_SETUID_FIXUP_LOCKED> und B<SECBIT_NOROOT_LOCKED>."

#. type: Plain text
msgid ""
"The I<securebits> flags can be modified and retrieved using the B<prctl>(2)  "
"B<PR_SET_SECUREBITS> and B<PR_GET_SECUREBITS> operations.  The "
"B<CAP_SETPCAP> capability is required to modify the flags."
msgstr ""
"Die Schalter I<securebits> können mit den Operationen B<prctl>(2) "
"B<PR_SET_SECUREBITS> und B<PR_GET_SECUREBITS> geändert und abgefragt werden. "
"Die Capability B<CAP_SETPCAP> wird für die Veränderung der Schalter benötigt."

#. type: Plain text
msgid ""
"The I<securebits> flags are inherited by child processes.  During an "
"B<execve>(2), all of the flags are preserved, except B<SECBIT_KEEP_CAPS> "
"which is always cleared."
msgstr ""
"Die Schalter I<securebits> werden von Kindprozessen vererbt. Während eines "
"B<execve>(2) werden alle Schalter beibehalten, außer B<SECBIT_KEEP_CAPS>, das "
"immer bereinigt wird."

#. type: Plain text
msgid ""
"An application can use the following call to lock itself, and all of its "
"descendants, into an environment where the only way of gaining capabilities "
"is by executing a program with associated file capabilities:"
msgstr ""
"Eine Anwendung kann den folgenden Aufruf verwenden, um sich selbst und alle "
"seine Abkömmlinge in eine Umgebung zu sperren, in der die einzige "
"Möglichkeit, Capabilities zu erlangen, darin besteht, ein Programm "
"auzuführen, das über die zugeordneten Datei-Capabilities verfügt:"

#. type: Plain text
#, no-wrap
msgid ""
"prctl(PR_SET_SECUREBITS,\n"
"        SECBIT_KEEP_CAPS_LOCKED |\n"
"        SECBIT_NO_SETUID_FIXUP |\n"
"        SECBIT_NO_SETUID_FIXUP_LOCKED |\n"
"        SECBIT_NOROOT |\n"
"        SECBIT_NOROOT_LOCKED);\n"
msgstr ""
"prctl(PR_SET_SECUREBITS,\n"
"        SECBIT_KEEP_CAPS_LOCKED |\n"
"        SECBIT_NO_SETUID_FIXUP |\n"
"        SECBIT_NO_SETUID_FIXUP_LOCKED |\n"
"        SECBIT_NOROOT |\n"
"        SECBIT_NOROOT_LOCKED);\n"

#. type: SH
#, no-wrap
msgid "CONFORMING TO"
msgstr "KONFORM ZU"

#. type: Plain text
msgid ""
"No standards govern capabilities, but the Linux capability implementation is "
"based on the withdrawn POSIX.1e draft standard; see I<http://wt.xpilot.org/";
"publications/posix.1e/>."
msgstr ""
"Keine Standards regeln Capabilities; die Linux-Capability-Implementierung "
"basiert aber auf dem zurückgezogenen POSIX.1e-Entwurfsstandard; siehe "
"I<http://wt.xpilot.org/publications/posix.1e/>."

#. type: SH
#, no-wrap
msgid "NOTES"
msgstr "ANMERKUNGEN"

#. type: Plain text
msgid ""
"Since kernel 2.5.27, capabilities are an optional kernel component, and can "
"be enabled/disabled via the CONFIG_SECURITY_CAPABILITIES kernel "
"configuration option."
msgstr ""
"Seit Kernel 2.5.27 sind Capabilities eine optionale Kernelkomponente, die "
"über die Kernelkonfigurationsoption CONFIG_SECURITY_CAPABILITIES "
"aktiviert/deaktiviert werden kann."

#. type: Plain text
msgid ""
"The I</proc/PID/task/TID/status> file can be used to view the capability "
"sets of a thread.  The I</proc/PID/status> file shows the capability sets of "
"a process's main thread."
msgstr ""
"Die Datei I</proc/PID/task/TID/status> kann zum Betrachten der "
"Capability-Mengen eines Threads verwandt werden. Die Datei "
"I</proc/PID/status> zeigt die Capability-Mengen des Haupt-Threads eines "
"Prozesses."

#. type: Plain text
msgid ""
"The I<libcap> package provides a suite of routines for setting and getting "
"capabilities that is more comfortable and less likely to change than the "
"interface provided by B<capset>(2)  and B<capget>(2).  This package also "
"provides the B<setcap>(8)  and B<getcap>(8)  programs.  It can be found at"
msgstr ""
"Das Paket I<libcap> stellt eine Suite von Routinen zum Setzen und Abfragen "
"von Capabilities bereit, die komfortablere und änderungsstabilere "
"Schnittstellen als die von B<capset>(2) und B<capget>(2) bereitstellen. Dieses "
"Paket stellt auch die Programme B<setcap>(8) und B<getcap>(8) zur Verfügung. "
"Es kann unter folgender Adresse gefunden werden:"

#. type: Plain text
msgid "I<http://www.kernel.org/pub/linux/libs/security/linux-privs>."
msgstr "I<http://www.kernel.org/pub/linux/libs/security/linux-privs>."

#. type: Plain text
msgid ""
"Before kernel 2.6.24, and since kernel 2.6.24 if file capabilities are not "
"enabled, a thread with the B<CAP_SETPCAP> capability can manipulate the "
"capabilities of threads other than itself.  However, this is only "
"theoretically possible, since no thread ever has B<CAP_SETPCAP> in either of "
"these cases:"
msgstr ""
"Vor Kernel 2.6.24 und seit Kernel 2.6.24, falls Datei-Capabilities nicht "
"aktiviert sind, kann ein Thread mit der Capability B<CAP_SETPCAP> die "
"Capabilities von anderen Threads manipulieren. Allerdings ist dies nur "
"theoretisch möglich, da kein Thread jemals über B<CAP_SETPCAP> in einem der "
"folgenden Fälle verfügt:"

#. type: Plain text
msgid ""
"In the pre-2.6.25 implementation the system-wide capability bounding set, I</"
"proc/sys/kernel/cap-bound>, always masks out this capability, and this can "
"not be changed without modifying the kernel source and rebuilding."
msgstr ""
"In der pre-2.6.25-Implementierung maskiert die systemweite "
"Capability-Begrenzungsmenge I</proc/sys/kernel/cap-bound> diese Capability "
"immer aus und dies kann ohne Veränderung der Kernelquellen und dessen Neubau "
"nicht geändert werden."

#. type: Plain text
msgid ""
"If file capabilities are disabled in the current implementation, then "
"B<init> starts out with this capability removed from its per-process "
"bounding set, and that bounding set is inherited by all other processes "
"created on the system."
msgstr ""
"Falls Datei-Capabilities in der aktuellen Implementierung deaktiviert sind, "
"dann startet B<init> derart, dass diese Capability aus seiner "
"pro-Prozess-Begrenzungsmenge entfernt ist und dass die Begrenzungsmenge von "
"allen anderen im System erstellten Prozessen vererbt wird."

#. type: SH
#, no-wrap
msgid "SEE ALSO"
msgstr "SIEHE AUCH"

#. type: Plain text
msgid ""
"B<capget>(2), B<prctl>(2), B<setfsuid>(2), B<cap_clear>(3), B<cap_copy_ext>"
"(3), B<cap_from_text>(3), B<cap_get_file>(3), B<cap_get_proc>(3), B<cap_init>"
"(3), B<capgetp>(3), B<capsetp>(3), B<credentials>(7), B<pthreads>(7), "
"B<getcap>(8), B<setcap>(8)"
msgstr ""
"B<capget>(2), B<prctl>(2), B<setfsuid>(2), B<cap_clear>(3), B<cap_copy_ext>"
"(3), B<cap_from_text>(3), B<cap_get_file>(3), B<cap_get_proc>(3), B<cap_init>"
"(3), B<capgetp>(3), B<capsetp>(3), B<credentials>(7), B<pthreads>(7), "
"B<getcap>(8), B<setcap>(8)"

#. type: Plain text
msgid "I<include/linux/capability.h> in the kernel source"
msgstr "I<include/linux/capability.h> in den Kernelquellen"

#. type: SH
#, no-wrap
msgid "COLOPHON"
msgstr "KOLOPHON"

#. type: Plain text
msgid ""
"This page is part of release 3.35 of the Linux I<man-pages> project.  A "
"description of the project, and information about reporting bugs, can be "
"found at http://man7.org/linux/man-pages/.";
msgstr ""
"Diese Seite ist Teil der Veröffentlichung 3.35 des Projekts Linux-I<man-"
"pages>. Eine Beschreibung des Projekts und Informationen, wie Fehler "
"gemeldet werden können, finden sich unter http://man7.org/linux/man-pages/.";

Attachment: signature.asc
Description: Digital signature


Reply to: