Mam demona, który uruchamia się jako root (więc może wiązać się z małymi portami). Po inicjalizacji bardzo chciałbym, aby z powodu bezpieczeństwa usunęło przywileje roota.Upuszczanie uprawnień roota
Czy ktoś może wskazać mi na znany poprawny kod w C, który to zrobi?
Przeczytałem strony podręcznika użytkownika, zapoznałem się z różnymi wersjami tego w różnych aplikacjach i wszystkie są różne, a niektóre z nich są naprawdę skomplikowane. To jest kod związany z bezpieczeństwem i naprawdę nie chcę wymyślać tych samych błędów, które popełniają inni. To, czego szukam, to najlepsza praktyka, znana dobra, przenośna funkcja biblioteczna, z której mogę korzystać, wiedząc, że to się uda. Czy coś takiego istnieje?
Dla porównania: Zaczynam jako root; Muszę się zmienić, aby działać pod innym uid i gid; Potrzebuję prawidłowo utworzonych grup uzupełniających; Nie muszę później zmieniać przywilejów roota.
To bardzo różni się między Unixami - czy są jakieś szczególne? Jeśli potrzebujesz "przenośnego" rozwiązania, będzie to nieprzyjemne, a Ty najlepiej sobie z tym poradzisz, np. funkcja permanently_set_uid() z OpenSSH - w uidswap.c plik – nos