W minione święta mój syn otrzymał nowego laptopa, głównie do użytku w swojej nowej szkole ... A teraz, kiedy ma własnego laptopa, jest podekscytowany zainstalowaniem Steam.
Ale żona chce, żebym usunął Steam, ponieważ laptop jest przeznaczony głównie do użytku szkolnego ... Wolałbym tego nie robić, jeśli nie muszę.
Czy istnieje sposób, aby ograniczyć lub w inny sposób ograniczyć dostęp do Steam? Być może hasło do samego Steam, lub ustawić czas, w którym można go uruchomić?
Idealnie byłoby, gdyby był to bardzo prosty w użyciu, ponieważ moja praca często utrzymuje mnie z dala od domu (i komputerów, telekomunikacji i ...) przez długi czas, a moja żona nie czuje się tak komfortowo przy komputerach jak ja, łatwiejszy w użyciu jest o wiele lepszy.
Z pewnością jest coś , co może wykonać to zadanie?
źródło
Odpowiedzi:
Ustaw limit czasu dla procesu lub aplikacji
Za pomocą małego skryptu w tle możesz ustawić limit czasu dla procesu lub aplikacji.
Tak długo, jak użytkownik nie zna hasła administratora , nie jest ono zbyt łatwe do przekroczenia.
Rozwiązanie poniżej
To taki mały skrypt w tle. Ogranicza dzienne użycie do określonej liczby minut, które można ustawić w skrypcie. Po skonfigurowaniu (co nie jest zbyt trudne) działa bardzo łatwo i nie wymaga żadnych dodatkowych działań.
Scenariusz
Jak używać
limit
limit_use
(bez rozszerzenia) w folderze i spraw, aby był wykonywalnyEdytuj w nagłówku skryptu nazwę procesu do ograniczenia i maksymalną liczbę dozwolonych minut. W przykładzie:
Skopiuj folder do katalogu
/opt
:Teraz edytuj,
/etc/rc.local
aby skrypt działał tak, jakroot
podczas uruchamiania:Tuż przed linią
inna linia:
Otóż to
Gdy ktoś próbuje zabić skrypt w tle:
(działanie niedozwolone)
Wyjaśnienie; jak to działa
/opt/limit/uselog
). Jeśli dzienny limit zostanie osiągnięty, skrypt nie pozwala już na uruchomienie procesu, zabijając go, jeśli istnieje.rc.local
tylko użytkownicy z uprawnieniami sudo mogą zatrzymać skrypt, nawet jeśli użytkownik zna nazwę procesu.Zatrzymaj skrypt
Jeśli chcesz zatrzymać skrypt, użyj polecenia:
Ale ponownie potrzebujesz do tego hasła sudo.
EDYTOWAĆ
Chociaż powyższy skrypt powinien zapewniać względnie bezpieczny sposób ograniczania użycia aplikacji, jak wspomniano w @Bytecommander, można go przekroczyć, choć nie bardzo łatwo. Połączenie z poniższą miarą sprawi, że jest bardzo mało prawdopodobne, że tak się stanie, chyba że twój syn wie konfigurację i jest dość doświadczony w Linuksie / Ubuntu.
Dodatkowa miara
Nieco dalej od „prostego rozwiązania”, ale wciąż niezbyt trudnego do skonfigurowania, jest dodatkowy środek poniżej. Jeśli nasza podejrzewany przestępca dowie skrypt jest wywoływany
/etc/rc.local
, że uda się uzyskać uprawnienia administratora i usunąć linię/etc/rc.local
, czy będzie w stanie zatrzymać skrypt w ten sposób, możemy skonfrontować go z kolejnym problemem: czarni odfiltrować po zaloguj się. Ponadto rozwiązanie sprawdza, czy skrypt w tle działa po 5 minutach od ponownego uruchomienia, aw razie potrzeby wygasa.Dodatkową miarą jest uruchomienie - sprawdzenie, czy linia
/opt/limit/limit_use &
jest obecna/etc/rc.local
, i sprawdzenie po 5 minutach, czy skrypt nadal działa. Ponieważ skrypt działa w programie uruchamiającym (ukrytym przed aplikacjami startowymi),/etc/xdg/autostart
trudno będzie dowiedzieć się, co się dzieje, chyba że wiesz, jak to zrobić. Połączenie tych dwóch środków sprawia, że jest mało prawdopodobne, że twój syn się dowie, a jeśli to zrobi, prawdopodobnie nic go nie powstrzyma.Jak skonfigurować
W grę wchodzą dwa proste kroki:
Skopiuj poniższy kod do pustego pliku i zapisz go jak
blackout.desktop
na pulpicie:Skopiuj plik do
/etc/xdg/autostart
:Skopiuj poniższy skrypt do pustego pliku, zapisz go jak
blackout.py
na pulpicie, ustaw go jako wykonywalny i skopiuj do/usr/local/bin
:Scenariusz
Wyjaśnienie
Program uruchamiający w
/etc/xdg/autostart
uruchomi aplikację (w tym przypadku dodatkowe sprawdzenie bezpieczeństwa) dla wszystkich użytkowników. To mógłby być zastąpiony lokalnie, ale trzeba znać się sprawdzać przebiegów. Umieszczając linięNoDisplay=true
w naszym programie uruchamiającym, nie pojawi się ona lokalnieStartup Applications
, więc bez wiedzy, że istnieje, jest mało prawdopodobne, aby została odkryta.Co więcej, twój syn ma tylko 15 sekund, aby się dowiedzieć (wtedy ekran jest zaciemniony), więc miałby poważny problem, chyba że jest genialny, ma duże doświadczenie z Ubuntu i kreatywnym umysłem.
źródło
rc.local
?Z własnego doświadczenia wynika, że ograniczenie dostępu do gier komputerowych jest jednym z najtrudniejszych zadań w edukacji naszych dzieci. Oczywiście my, rodzice, chcemy, aby korzystali ze swoich komputerów głównie w szkole, ale jest to bardzo sprzeczne z intencjami dziecka. Będą nas nienawidzić za to, że dali im sprzęt nadający się tylko do szkoły.
Oczywiście chcemy też, aby nauczyli się rozsądnie korzystać z komputera, w tym z niego nie tylko w pracy, ale również w czasie wolnym. Obejmuje to gry i oglądanie filmów.
Niestety, dobrze utrzymana i działająca kontrola rodzicielska w celu ograniczenia przetwarzania danych przez dziecko jest prawie niedostępna dla Ubuntu. Inną ważną kwestią jest to, że gdy tylko są inteligentnymi dziećmi, wszystkie podjęte przez nas środki stają się daremne. Zawsze znajdą sposoby na przezwyciężenie naszych ograniczeń, na wypadek, gdyby byli naprawdę sprytni, a my nawet tego nie zauważymy.
Wszelkie oprogramowanie blokujące lub ograniczenia PAM działające na komputerze dziecka będą miały charakter tymczasowy i wcześniej lub później można je bardzo łatwo pokonać. Dlatego postanowiliśmy pozwolić routerowi chronionemu hasłem wykonać zadanie, w którym fizyczny dostęp może być kontrolowany o wiele łatwiej.
To, co robimy tutaj, aby nieco ograniczyć obecnie grę, to połączenie wszystkich następujących elementów:
sudo
wcześniej czy później będą mogli dołączyć do grupy. Plan jest taki, że poprosą nas o to, zamiast ukrywać się.Aby ułatwić realizację umowy dotyczącej korzystania z komputera zarówno przez dzieci, jak i przez nas, zainstalowaliśmy następujące ograniczenia:
Zablokowanie dostępu do Internetu skutecznie wyłączy grę, jeśli ta gra potrzebuje dostępu do Internetu, takiego jak Steam , Minecraft lub inne serwery gamig. Nie będzie to jednak miało wpływu na gry uruchamiane poza linią.
źródło
ssh
lub po prostu zamknięcie aplikacji?Można to osiągnąć za pomocą skryptów powłoki.
Pierwszym skryptem jest zabijanie
Steam
zaraz po uruchomieniu:Zapisz go jako
/path/to/anyname.sh
i dodaj do listy aplikacji startowych.Ten skrypt zrobi to, że będzie sprawdzał każdy otwarty proces nazwany
steam
co sekundę, a jeśli go znajdzie, zabije go.Ale potrzebujesz rozwiązania, w którym
steam
można uruchomić w określonym czasie we właściwym czasie, aby twój syn mógł grać w gry w tym czasie. Aby to zrobić, musisz napisać inny skrypt:Zapisz go jako,
/path/to/anyname2.sh
a także dodaj go do listy aplikacji startowych.Ten skrypt zabije pierwszy skrypt o godzinie 10:00. Więc kiedy twój syn biegnie
Steam
o godzinie 10:00. Będzie mógł teraz w nią zagrać.Trzeci skrypt polega na ponownym zainicjowaniu pierwszego skryptu w innym momencie, aby zabijał
Steam
po pewnym czasie, a Twój syn nie będzie mógł już grać w grySteam
.Zapisz go jako
/path/to/anyname3.sh
i dodaj do listy aplikacji startowych.Upewnij się, że te ścieżki są ukryte, aby twój syn się nie dowiedział.
źródło
Dlaczego nie skorzystać z nowego konta użytkownika (poprzez Ustawienia systemowe )? Jest to jedyna metoda dla „uprawnień” w systemie Linux.
sudo
grupa). To konto nie będzie miało dostępu do konta root, nie będzie mogło instalować ani usuwać oprogramowania, zmieniać ustawień systemowych.Kilka notatek ..
/home/son/.steam
i oczywiście plik binarny/usr/games/steam
źródło