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 deb...@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/."
signature.asc
Description: Digital signature