sprawić, by wszystkie procesy danego użytkownika mogły być przetwarzane przez kogokolwiek
15
Na wspólnym serwerze chciałbym mieć użytkowników o bardzo niskim priorytecie, tak aby ilekroć inny użytkownik (także bez uprawnień roota) potrzebował zasobów, mógł zabić dowolny proces użytkownika o niskim priorytecie.
Naprawdę mam nadzieję, że ci użytkownicy o niskim priorytecie są rzeczywistymi użytkownikami ludzkimi, a ty i twoi kumple jesteście rasowymi BOFH . Sprawia, że pytanie jest znacznie bardziej intrygujące.
@DavidFoerster jeden problem jest to, że nawet gdy procesor nie jest w 100% proces niski priorytet może wypełnić cache procesora itd. Podobnie z dostępem do dysku itp
Zezwól innym użytkownikom na zabijanie procesów jako użytkownik o niskim priorytecie
sudo -u lowpriouser /bin/kill PID
Użytkownik może sygnalizować tylko własne procesy, chyba że ma uprawnienia roota. Używając sudo -uużytkownika z poprawną konfiguracją w sudoerspliku, można przyjąć tożsamość użytkownika o niskim priorytecie i zabić proces.
Na przykład:
%killers ALL = (lowpriouser) /bin/kill
Umożliwiłoby to wszystkim użytkownikom w grupie killersdziałanie /bin/killjako lowpriouser.
Zobacz także sudoersinstrukcję obsługi systemu.
W systemie OpenBSD to samo można zrobić za pomocą natywnego doasnarzędzia o konfiguracji takiej jak
Jeśli pozwolisz żadnego polecenia kill, można nadużywać go do wysyłania sygnałów niezwiązanych z rozwiązania do dowolnych procesów, które mogą być problemem bezpieczeństwa.
@forest Dlatego nie sugeruję, aby dać wszystkim możliwość korzystania z konta root do uruchamiania kill. Zauważ też, że sugeruję użycie grupy użytkowników ( killers), nie wszystkich użytkowników.
@forest Tak. Umożliwia wysyłanie sygnałów do procesów będących własnością firmy lowpriouser. Jeśli chcesz ograniczyć sygnały TERM, napisz skrypt opakowujący /bin/killi pozwól innym go używać /bin/kill.
Nie powinieneś zabijać procesów, jeśli mają niski priorytet, zużyją niewiele zasobów.
Aby faktycznie nadać im niski priorytet, zmień ich priorytet ręcznie lub użyj demona takiego autonice, jaki napisałem dla DEC OSF / 1 wiele lat temu (ok. 1994), który szuka długoterminowych zadań i stopniowo zmniejsza ich priorytet, im dłużej działają .
EDYCJA jest pakiet o nazwie, andktóry oferuje tę funkcjonalność dla nowoczesnych Unices.
Jednym z problemów jest to, że nawet gdy procesor nie jest w 100% niski priorytet proces może wypełnić cache procesora itd. Podobnie z dostępem do dysku etc
Myślę, że podchodzisz do problemu z niewłaściwego punktu widzenia: jeśli proces jest uruchamiany z ustawieniami niskiego priorytetu (CPU, I / O), nie powinien on mieć większego wpływu na inne procesy, ponieważ nie zostanie zaplanowany do uruchomienia. Jeśli chodzi o użycie pamięci, jeśli pamięć główna jest napięta i proces nie był zaplanowany na długi czas (np. Z powodu ograniczeń procesora i we / wy), jego „czyste” strony są usuwane, a „brudne” strony są zatwierdzane lub zamienione i nie wpływają już na wydajność innych procesów.
Wniosek: przy odpowiednim ustawieniu priorytetu i wystarczającej przestrzeni wymiany zabijanie zadań o niskim priorytecie nie powinno być konieczne, aby „zrobić miejsce” na ważniejsze zadania; zamiast tego jądro zadba o to, aby ten pierwszy spał na korzyść tego drugiego.
„Niski priorytet” może równie dobrze oznaczać „nieistotny” bez dorozumianego znaczenia „działający ze zmniejszonym priorytetem procesora”. Nie jest to jednak wyraźnie określone w pytaniu.
To nie jest takie proste. Nawet proces o niskim priorytecie może zatrzymać system, szczególnie jeśli ma ograniczenia pamięci: w zależności od tego, jak są skonfigurowane, spowoduje to zamianę procesu. Zamiana powoduje We / Wy (które mogą nie zostać uwzględnione w przydziale We / Wy procesu), a także spowoduje, że system będzie mniej reagował na rzędy wielkości. Wtedy prawdopodobnie również chciałbyś tego w ogóle (podczas gdy inni nie potrzebują zasobów), proces o niskim priorytecie może faktycznie uzyskać wszystkie potrzebne zasoby (co sprawia, że typowe limity pamięci nie mają zastosowania). Udostępnia pomoc CPU tutaj.
@JonasWielicki, stary „uniksowy sposób” wymiany całego procesu miał swoją przewagę. Jeśli dobrze pamiętam, HPUX może kilka narzędzi do rozwiązania tego problemu w latach 90.
Używamy plików cookie i innych technologii śledzenia w celu poprawy komfortu przeglądania naszej witryny, aby wyświetlać spersonalizowane treści i ukierunkowane reklamy, analizować ruch w naszej witrynie, i zrozumieć, skąd pochodzą nasi goście.
Kontynuując, wyrażasz zgodę na korzystanie z plików cookie i innych technologii śledzenia oraz potwierdzasz, że masz co najmniej 16 lat lub zgodę rodzica lub opiekuna.