proc_pid_attr(5)

NAZWA
/proc/pid/attr/ - atrybuty związane z bezpieczeństwem

OPIS

/proc/pid/attr/
    Pliki w tym katalogu udostępniają API do modułów bezpieczeństwa. Zawartością katalogu są pliki, które mogą być odczytywane i zapisywane, aby ustawić atrybuty związane z bezpieczeństwem. Ten katalog został dodany do obsługi SELinux, ale intencją było to, aby API było na tyle ogóle, aby obsługiwać również inne moduły bezpieczeństwa. Dla wyjaśnienia, poniżej przedstawiono przykłady jak SELinux używa tych plików.

    Obecne tylko, jeśli jądro zostało skonfigurowane z CONFIG_SECURITY.

/proc/pid/attr/current (od Linuksa 2.6.0)
    Zawartość tego pliku reprezentuje aktualne atrybuty bezpieczeństwa procesu.

    W SELinuksie plik ten służy do pozyskania kontekstu bezpieczeństwa procesu. Do Linuksa 2.6.11 plik nie mógł służyć do ustawienia kontekstu bezpieczeństwa (zapis był zawsze zabroniony), ponieważ SELinux ograniczał przejścia bezpieczeństwa procesu do execve(2) (zob. opis /proc/pid/attr/exec, poniżej). Od Linuksa 2.6.11 SELinux poluzował to ograniczenie i zaczął obsługiwać operacje „ustawiania” poprzez zapis do tego węzła, jeśli jest on autoryzowany przez politykę, choć użycie tej operacji jest odpowiednie jedynie dla aplikacji zaufanych do zarządzania pożądaną separacją pomiędzy starymi a nowymi kontekstami bezpieczeństwa.

    Do Linuksa 2.6.28 SELinux nie pozwalał wątkom z wielowątkowych procesów na ustawienie ich kontekstu bezpieczeństwa poprzez ten węzeł, jeśli mogło to doprowadzić do niespójności wśród kontekstów bezpieczeństwa wątków dzielących tą samą przestrzeń pamięci. Od Linuksa 2.6.28 SELinux poluzował to ograniczenie i rozpoczął obsługiwanie operacji „ustawiania” dla wątków procesów wielowątkowych, jeśli ich nowy kontekst bezpieczeństwa jest powiązana ze starym kontekstem bezpieczeństwa, gdzie relacja powiązania jest zdefiniowana w polityce i gwarantuje, że nowy kontekst bezpieczeństwa ma podzbiór uprawnień starego kontekstu bezpieczeństwa.

    Inne moduły bezpieczeństwa mogą wybrać aby obsługiwać operacje „ustawiania” poprzez zapis do tego węzła.

/proc/pid/attr/exec (od Linuksa 2.6.0)
    Ten plik reprezentuje atrybuty przypisane do procesu przez kolejne execve(2).

    W SELinuksie jest to potrzebne do obsługi przejść roli/domeny, a execve(2) jest preferowanym punktem do takich przekształceń, ponieważ oferuje on lepszą kontrolę nad inicjalizacją procesu w nowej etykiecie bezpieczeństwa i nienaruszalności stanu. W SELinuksie ten atrybut jest resetowany przy execve(2), tak więc nowy program powraca do domyślnego zachowania przy każdym wywołaniu execve(2) jakie może utworzyć. W SELinuksie proces może ustawić tylko swój atrybut /proc/pid/attr/exec.

/proc/pid/attr/fscreate (od Linuksa 2.6.0)
    Plik ten reprezentuje atrybuty do przypisania do plików utworzone przez kolejne wywołania do open(2), mkdir(2), symlink(2) i mknod(2)

    SELinux wykorzystuje ten plik do obsługi tworzenia pliku (za pomocą wspomnianych wcześniej wywołań systemowych) w stanie bezpieczeństwa, co nie daje ryzyka niepoprawnego dostępu uzyskanego podczas tworzenia pliku i ustawiania atrybutów. W SELinuksie atrybut ten jest resetowany przy execve(2), tak więc nowy program powraca do domyślnego zachowania przy każdym wywołaniu tworzącym plik jakie może on wykonać, ale atrybut jest zachowywany podczas wielu wywołań tworzących plik przez jeden program, chyba że jest jawnie resetowany. W SELinuksie proces może ustawić tylko swój atrybut /proc/pid/attr/fscreate.

/proc/pid/attr/keycreate (od Linuksa 2.6.18)
    Jeśli proces zapisuje kontekst bezpieczeństwa do tego pliku, wszystkie kolejno utworzone klucze (add_key(2)) będą oznaczone tym kontekstem. Więcej informacji znajduje się w pliku źródeł jądra Documentation/security/keys/core.rst.

/proc/pid/attr/prev (od Linuksa 2.6.0)
    Plik ten zawiera kontekst bezpieczeństwa procesu przed ostatnim execve(2); tj. poprzednią wartość /proc/pid/attr/current.

/proc/pid/attr/socketcreate (od Linuksa 2.6.18)
    Jeśli proces zapisuje kontekst bezpieczeństwa do tego pliku, wszystkie kolejno utworzone gniazda będą oznaczone tym kontekstem.

ZOBACZ TAKŻE
proc(5)

TŁUMACZENIE
Tłumaczenie niniejszej strony podręcznika: Przemek Borys <pborys@dione.ids.pl>, Robert Luberda <robert@debian.org> i Michał Kułach <michal.kulach@gmail.com>

Niniejsze tłumaczenie jest wolną dokumentacją. Bliższe informacje o warunkach licencji można uzyskać zapoznając się z GNU General Public License w wersji 3 (https://www.gnu.org/licenses/gpl-3.0.html) lub nowszej. Nie przyjmuje się ŻADNEJ ODPOWIEDZIALNOŚCI.

Błędy w tłumaczeniu strony podręcznika prosimy zgłaszać na adres listy dyskusyjnej manpages-pl-list@lists.sourceforge.net.