- /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.
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 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.