Jakie są zasady dotyczące uprawnień do / proc / <PID> / Environment?

2

Rozumiem, że zwykły proces użytkownika otrzymuje uprawnienia czytelne dla użytkownika:

-r-------- 1 1000 1000 0 Nov 19 13:51 /proc/9083/environ

ale np. Demon SCREEN zostaje rootwłaścicielem:

-r-------- 1 root root 0 Nov 19 13:47 /proc/9167/environ

Chociaż 9167 jest również identyfikatorem UID użytkownika:

# ps axnu|grep 9167
    1000  9167  0.0  0.0  23488  2008 ?   Ss   13:47   0:00 SCREEN
midenok
źródło

Odpowiedzi:

2

W większości systemów /usr/bin/screenjest instalowany z bitem setuid dla roota, co oznacza, że ​​najpierw rozpocznie się od efektywnego UID 0, a dopiero później upuści uprawnienia (powrót do normalnego UID).

(Służy to do implementacji funkcji „udostępniania sesji”, ponieważ w przeciwnym razie ekran nie mógł się łączyć z gniazdami ekranowymi innych użytkowników).

Ponieważ jednak uprzywilejowane procesy mogą potencjalnie przechowywać poufne informacje w pamięci, jądro zapewnia im specjalną ochronę - nawet jeśli upuszczą wszystkie uprawnienia i przejdą na UID, nadal nie możesz wysyłać im sygnałów, dołączać debuggera ani tworzyć zrzutów podstawowych.

Opcja „bez zrzutów rdzenia”, znana również jako fs.suid_dumpableustawienie sysctl, powoduje, że /procpliki Screen są na stałe własnością root, niezależnie od efektywnego UID.

grawitacja
źródło