Zmień UID / GID tylko jednego wątku w Linuksie

Czy istnieje sposób na zmianę UID / GID tylko jednego wątku w procesie wielowątkowym?

Powodem tego jest pisanie aplikacji obsługującej pliki - listy ACL i limity nie są wymuszane, chyba że uid / gid wywołującego jest ustawiony na poprawnego użytkownika, nowe pliki / katalogi nie są tworzone z poprawnym uid / gid itp.

Aplikacje sieciowe mogą zazwyczaj rozwidlać się () na początku i przetwarzać każde żądanie użytkownika w oddzielnym procesie. Jeśli istnieje potrzeba udostępnienia danych, musi przejść przez jakąś pamięć współdzieloną. Jednak np. FUSE (system plików użytkownika Linuksa) domyślnie używa wielowątkowości i w połączeniu z powiązaniami Pythona nie byłoby praktyczne próbowanie użycia rozwidlonego modelu.

„Konsekwentny” UID dla całego procesu wydaje się być zgodny ze standardem POSIX, jednak stare Linuxy nie stosowały POSIX i zezwalały na różne uidy dla różnych wątków. Nowe jądra wydają się podążać za POSIX, czy jest jakiś sposób, aby zezwolić na stare „złamane” zachowanie?

questionAnswers(2)

yourAnswerToTheQuestion