Winkiel 0 Zgłoś post Napisano Sierpień 30, 2013 Witam. Jest możliwość przypisania maksymalnego zużycia pamięci RAM dla dowolnego procesu odpalanego przez screena? Udostępnij ten post Link to postu Udostępnij na innych stronach
Gość patrys Zgłoś post Napisano Sierpień 30, 2013 Niet. Udostępnij ten post Link to postu Udostępnij na innych stronach
Winkiel 0 Zgłoś post Napisano Sierpień 30, 2013 (edytowany) Dostałem wiadomość: Mozna ale to juz trzeba szukac we wlasnym zakresie ; ) Na openvz moze nie dzialac. Ja mam właśnie serwer na OpenVZ. Edytowano Sierpień 30, 2013 przez Winkiel (zobacz historię edycji) Udostępnij ten post Link to postu Udostępnij na innych stronach
Gość patrys Zgłoś post Napisano Sierpień 30, 2013 Musiał byś poszukać jakiegoś programu za pomocą którego zachodziło by takie limitowanie uruchamianego procesu. Może znajdzie się jakiś wrapper na githubie.. Udostępnij ten post Link to postu Udostępnij na innych stronach
Pan Kot 1535 Zgłoś post Napisano Sierpień 30, 2013 Pierwsze co mi przyszło na myśl to proces na osobnym userze z limitami pamięci via ulimit (do zrobienia). Udostępnij ten post Link to postu Udostępnij na innych stronach
Dentarg 46 Zgłoś post Napisano Sierpień 30, 2013 Powinno się dać bez problemu przez cgroups, ale nie wiem czy na openvz control grupy działają. 1 Udostępnij ten post Link to postu Udostępnij na innych stronach
Winkiel 0 Zgłoś post Napisano Sierpień 31, 2013 Dzięki za odpowiedź panowie. Jeżeli utworzę 2 użytkowników i podzielę między nimi pamieć RAM to będę mógł odpalić ten sam proces na obu użytkownikach? To co chcę odpalić nie będzie znajdowało się na koncie żadnego z użytkowników. Udostępnij ten post Link to postu Udostępnij na innych stronach
Pan Kot 1535 Zgłoś post Napisano Sierpień 31, 2013 Powinno się dać jeśli binarka/skrypt ma odpowiednie chmody (minimum 755). Wtedy jest to odpalane z poziomu danego usera, a zatem wszelkie limity nałożone na usera zadziałają. Udostępnij ten post Link to postu Udostępnij na innych stronach
Winkiel 0 Zgłoś post Napisano Sierpień 31, 2013 Zatrzymałem się w miejscu. Zrobiłem po kolei: mkdir /mnt/cgroups/test echo $ > /mnt/cgroups/test/tasks echo '2G' > /mnt/cgroups/test/memory.limit_in_bytes I nie wiem co dalej. W jaki sposób przypisać uzytkownika do grupy "test", która ma ograniczone zuzycie pamięci RAM do 2 GB? Udostępnij ten post Link to postu Udostępnij na innych stronach
Pan Kot 1535 Zgłoś post Napisano Sierpień 31, 2013 addgroup user nazwagrupy Udostępnij ten post Link to postu Udostępnij na innych stronach
Winkiel 0 Zgłoś post Napisano Sierpień 31, 2013 Dziękuję. Teraz coś czego nigdy nie zrozumiem i jest to dla mnie czarną magią... W jaki sposób nadać prawa grupie tylko na wybrany przezemnie katalog i jego podkatalogi? Chodzi mi o to, że użytkownicy z grupy "test" mogą robić co chcą, ale tylko wybranym przezemnie miejscu np. /jakiś/tam/folder. Udostępnij ten post Link to postu Udostępnij na innych stronach
Pan Kot 1535 Zgłoś post Napisano Sierpień 31, 2013 chown -R root:jakasgrupa /jakis/tam/folder (-r -> resursive, wszystko to co tam jest też) chmod -R 774 /jakis/tam/folder (-r -> resursive, 774 allow rwx dla roota i grupy, read dla pozostałych) Udostępnij ten post Link to postu Udostępnij na innych stronach
Winkiel 0 Zgłoś post Napisano Sierpień 31, 2013 (edytowany) chown -R root:test /jakis/tam/folder -r Grupa test zostaje właścicielem "/jakis/tam/folder" Po wpisaniu tego właściciel ma dostęp do "/jakis/tam/folder", a inni tylko mogą przeglądać. chmod -R 774 /jakis/tam/folder -r Czy może właścicielem jest root i grupa test? Wole zapytać i się czegoś nauczyć niż ślepo wpisywać polecenia. Edytowano Sierpień 31, 2013 przez Winkiel (zobacz historię edycji) Udostępnij ten post Link to postu Udostępnij na innych stronach
Dentarg 46 Zgłoś post Napisano Sierpień 31, 2013 W sumie ja już nie wiem o czym rozmawiamy. Archi pisał o ulimit, tym da sie nałożyć chyba limit na usera (nie używałem, to nie jestem pewien). Jesli chodzi o cgroups to zalezy jaka to dystrybucja, w redhatopodobnych są 2 demony i 2 pliki konfiguracyjne za to odpowiedzialne (cgconfig i cgred) W jednym definiujesz polisę (grupę) (/etc/cgconfig.conf), tam wpisujesz reguły jakie dotyczą tej grupy (to nie jest grupa użytkowników w systemie, to jest grupa kontrolna). W /etc/cgrules.conf definiuje się reguły dla poszczególnych userów, czy procesów, albo procesów userów . Tam ustalasz w jaką grupę kontrolną jakie procesy mają wpadać. Uwaga taka, że jak po uruchomieniu procesu, który objęty jest control grupami zrestartujesz demona cgconfig to juz uruchomione procesy mogą stracić limity. Udostępnij ten post Link to postu Udostępnij na innych stronach
Pan Kot 1535 Zgłoś post Napisano Sierpień 31, 2013 (edytowany) Nie dopisuj -r, już przecież masz na początku -R, to to samo . chown zmienia właściciela danego pliku, folderu lub folderu i wszystkiego co w nim jest (-r/-R). Każdy folder/plik w linuxie składa się z dwóch właścicieli. Właściciela czyli usera (w naszym wypadku chcemy, żeby był to root) oraz właściciela-grupy, w naszym przypadku chcemy żeby to była grupa test. chmod określa dostęp właściciela, właściciela-grupy oraz całej reszty. 4 -> odczyt 2 -> zapis 1 -> wykonanie. Jeśli chcesz zmixować odczyt i wykonanie dajesz 5, jeśli chcesz zmixować wszystko dajesz 7. Ustawiając np. chmod 764 określasz, że tylko główny właściciel ma dostęp do zapisu/odczytu i wykonywania binarek, grupa ma dostęp wyłącznie do zapisu i odczytu bez wykonywania binarek (6 zamiast 7), a cała reszta, czyli userzy nieznajdujący się ani w grupie, ani nie będący właścicielem mają dostęp tylko do odczytu, jeśli chcesz im zabrać wszystko zamieniasz 4 na 0. Ja to wszystko piszę na bazie ulimit - tak można też zadeklarować grupę, nie tylko pojedynczego usera. A w zasadzie to nie ma większej różnicy bo teraz rozmawiamy o accessach, a nie limitach . Edytowano Sierpień 31, 2013 przez Archi (zobacz historię edycji) Udostępnij ten post Link to postu Udostępnij na innych stronach
Winkiel 0 Zgłoś post Napisano Sierpień 31, 2013 W poście dziewiątym opisałem w jaki sposób utworzyłem grupę i nadałem jej limit pamięci. Prosze mnie poprawić jeżeli jest coś źle. Udostępnij ten post Link to postu Udostępnij na innych stronach
Dentarg 46 Zgłoś post Napisano Sierpień 31, 2013 Nie wiem jaka to dystrybucja, w RH czy Centos grupy tworzą się same (bo jest gotowy config), a potem nowe grupy dodaje się do tego configa (/etc/cgconfig.conf). Tak jak zrobiłeś też powinno działać. W RH dalej sie robic tak, ze przypisuje sie tą stworzoną grupę do procesu usera w /etc/cgrules.conf (tam jest też skrócony manual). Po ustawieniu rules trzeba zrestartowac (reload) usługę cgred. Potem jak dobrze ustawiłeś reguły to proces który chcesz ograniczać wpadnie w regułkę i będzie ograniczany. Jeszcze musisz doczytać czy akurat memory.limit_in_bytes spełni swoje zadanie. po za tym to man cgconfig.conf, man cgrules.conf, man cgset, man cgget i najważniejsze man cgrulesengd. Udostępnij ten post Link to postu Udostępnij na innych stronach
Pan Kot 1535 Zgłoś post Napisano Sierpień 31, 2013 Nadal nie wiem co jest trudnego we wpisaniu: addgroup nicwamniedam echo '@nicwamniedam hard memlock 100000' >> /etc/security/limits.conf adduser uzyszkodnik nicwamniedam ew. jeszcze killall -u uzyszkodnik Co prawda ulimit mają same w sobie pewne limity i ograniczenia (np. jeśli chodzi o forki i inne rzeczy), ale przynajmniej w większości przypadków ww. implementacja będzie wystarczająca. Udostępnij ten post Link to postu Udostępnij na innych stronach
Winkiel 0 Zgłoś post Napisano Sierpień 31, 2013 Archi ja nie mam problemów. Tylko kolega coś tam wspomniał i zapytał w jaki sposób nadałem ten limit. Mój system to Ubuntu 11.10 w wersji 64 bitowej. Przy tworzeniu grup i nadaniu limitu nie było żadnych błędów. Jutro z rana sprawdzę jak to w rzeczywistości działa. Udostępnij ten post Link to postu Udostępnij na innych stronach
Winkiel 0 Zgłoś post Napisano Wrzesień 2, 2013 W jaki sposób nadać kilku użytkownikom dostęp do polecenia screen? Udostępnij ten post Link to postu Udostępnij na innych stronach
Pan Kot 1535 Zgłoś post Napisano Wrzesień 2, 2013 Screen to nie jest polecenie zarezerwowane dla roota, a zatem każda osoba może z niego skorzystać. Tyle, że jak działasz via ssh to musisz zalogować się od razu na danego użytkownika (a nie via su) jeśli chcesz, żeby ten screen działał. Ew. można posłużyć się rootem i sztuczką typu su user -c 'screen -dmS mojanazwa /sciezka/do/pliku.sh'. Jeśli natomiast chcesz, żeby jeden użytkownik miał dostęp do outputa screena innego użytkownika to uwierz mi, że nie chcesz tego robić. Udostępnij ten post Link to postu Udostępnij na innych stronach
Winkiel 0 Zgłoś post Napisano Wrzesień 2, 2013 Po wpisaniu polecenia mam taką informację: Cannot make directory '/var/run/screen': Permission denied Udostępnij ten post Link to postu Udostępnij na innych stronach
HaPe 242 Zgłoś post Napisano Wrzesień 2, 2013 Jeśli natomiast chcesz, żeby jeden użytkownik miał dostęp do outputa screena innego użytkownika to uwierz mi, że nie chcesz tego robić. Jest to niewykonalne? Udostępnij ten post Link to postu Udostępnij na innych stronach
Pan Kot 1535 Zgłoś post Napisano Wrzesień 2, 2013 (edytowany) Po wpisaniu polecenia mam taką informację: Cannot make directory '/var/run/screen': Permission denied No to nie wiem jak ty tego screena zainstalowałeś skoro "standardowymi" metodami czy to via apt-get, yum czy czego tam używasz instaluje się paczka dla wszystkich. Jest to niewykonalne? Wykonalne jest, nadając odpowiednie prawa/accessy na odpowiedni /dev/tty kwestia jest tego rodzaju, że ani to bezpieczne, ani użyteczne. I stanowi podłoże do wielu innych problemów. O wiele łatwiej jest forwardować output screena via > /tmp/output.txt i parsować niezależnie. Edytowano Wrzesień 2, 2013 przez Archi (zobacz historię edycji) Udostępnij ten post Link to postu Udostępnij na innych stronach
F L 18 Zgłoś post Napisano Wrzesień 2, 2013 Po wpisaniu polecenia mam taką informację: Cannot make directory '/var/run/screen': Permission denied Sprawdź czy powyższy katalog istnieje, możliwe że z jakiegoś powodu nie został utworzony, lub ma nieodpowiednie uprawnienia. Udostępnij ten post Link to postu Udostępnij na innych stronach