Автор Тема: Изключване на потребител в определено време  (Прочетена 3677 пъти)

cyrilo

  • Напреднали
  • *****
  • Публикации: 190
    • Профил
Значи имах следният проблем. Децата се прибират и сядат да играят игри вместо да пишат домашни.
Реших го, всеки път паролата им е последователност от верните отговори на определен брой задачи. Решават ги и играят.
Сега обаче искам да не седят прекалено дълго пред компютъра. И бих искал да мога да им заключа акаунта след определено време работа и да ги изрита ОС-а.
Някакви идей как?
Активен

echo qwurtyuiopasdfrwp|tr fiaryotsqpdwu .@aceghijmlov
http://jovchev.blogspot.com

ivanatora

  • Напреднали
  • *****
  • Публикации: 658
  • Distribution: Ubuntu 10.04
  • Window Manager: Fluxbox
    • Профил
    • WWW
Пробвай да напишеш някое скриптче '<img'>
Съвсем на бързо ще ти нахвърлям някои идеи (за които сигурно си се сетил вече де  ':p' )
- ако времето е изтекло, да се изключи машината/заключи потребителя (xscreensaver -lock?) и да се запише някъде че сесията е била 'изтекла' (виж долното)
- ако машината се рестартира, да се провери дали предишната сесия е била 'изтекла' и ако е да я блокира отново
- да има възможност за отблокиране/отключване (в xscreensaver-a трябва да се въведе паролата на потребителя, приложимо е ако пускаш децата с твоя потребител, на когото не знаят паролата)
Разбира се, вероятно съществува много по-просто решение  '<img'>
Активен

cyrilo

  • Напреднали
  • *****
  • Публикации: 190
    • Профил
Благодаря, мислех че има някакви по-така начини, мързеше ме.
Но кво да се прави.
Да видим дали няма по-просто решение, от някой киоск например.
Инак по това което написа
1.  Ако времето е изтекло трябва просто да направи logout.
2. Децата работят със собствен потребител. Урязан към какво ли не, включително и към сайтове които могат да посещават.
3. За рестартирането. Трябва да я изключат от контакта или копчето, те са изобретателни де. Но инак им трябва root парола.

Та все още чакам по-просто решение. Дано се размина без много писане, че цял ден писане и в къщи писане то не бива.
Тука е варианта под уиндоус. Айде да видим как да се направи под линукс.
Активен

echo qwurtyuiopasdfrwp|tr fiaryotsqpdwu .@aceghijmlov
http://jovchev.blogspot.com

George Andonov

  • Напреднали
  • *****
  • Публикации: 261
  • Distribution: Ubuntu
    • Профил
Една идея:

В profile-а на техния потребител старираш следния скрипт:
1. sleep $ВРЕМЕ
2. заключване на account-а на потребителя (usermod -е)
3. logout

За активиране да достъпа, е необходимо (като root) да премахнеш expire date на потребителя.

P.S. Предполагам, че скрипта трябва да има SetUserID bit (за да работи като root). Но ти го провери.
Активен

Hapkoc

  • Напреднали
  • *****
  • Публикации: 2117
    • Профил
Друга идея - at в .profile/.bashrc/.bash_login/.bash_profile
В смисъл at е измислено с такава цел - изпълнение на scheduled (не мога да измисля подходяща българска дума '<img'> ) команди.

$ man at

Поздрави

п.с. надявам се да споделиш решението, което си намерил '<img'>
п.п.с. задачката е доста интересна
п.п.п.с. тая хава с паролата и въпросите дето си я измислил - може ли малко подробности, че и за нея ми стана интересно '<img'>
Активен

rpetrov

  • Напреднали
  • *****
  • Публикации: 571
    • Профил
    • WWW
ако не си с redhat базирана дистрибуция, то пакета shadow трябва да съдържа logoutd - толкова за еквивалентността.
Активен

cyrilo

  • Напреднали
  • *****
  • Публикации: 190
    • Профил
Дистрото е Debian.
И на мен ми е трудно с българските думи аналози.

Така хавата с паролата е доста просто решение.
Значи като се приберат от училище имат задачи.
За сега е само математика. Решават задачите. Получават отговори. Числа обикновенно. Ако са дробни, до вторият знак след запетаята. Без калкулатор, да се учат да делят.
След това отговор след отговор лепят един след друг и се получава паролата им. За целта аз решавам задачите предварително, добре че са още малки 1 и 2-ри клас. Значи всеки си има отделен потребител и си влизат с него. За малкият едни игри, за големият други. Те и без друго се дърлят кой да играе така че не си подсказват и големият не решава задачите на малкият защото игрите на малкият не са интересни за големият.
Ще трябва да измисля нещо за четене на книги. Нещо с думи или букви от думи така че да трябва да четат и да им е като хакване. Сега с тия задачи е игра "да хакнем паролата". Забавно им е.
Като станат 7-8 клас ще трябва да се разчита на съзнание.
Активен

echo qwurtyuiopasdfrwp|tr fiaryotsqpdwu .@aceghijmlov
http://jovchev.blogspot.com

Agent_SMITH

  • Administrator
  • Напреднали
  • *****
  • Публикации: 3082
  • matrix kernel module
    • Профил
Супер тема! Поздравления. Много ще се радвам, ако откриете ергономично решение, което после да опишете в една кратка статия. Това са практични и полезни неща. Успех!
Активен

-= СПАЗВАЙТЕ ПРАВИЛАТА НА ФОРУМА =-

nqkoisi

  • Напреднали
  • *****
  • Публикации: 46
    • Профил
Малко грубиянско решение ама '<img'>

#!/bin/sh

pkill -u username
passwd -l username

#end:)

та значи с pkill убиваш всички процеси на дадения потребител,
а с passwd -l му локваш акаунта (т.е. паролата му се заменя с стойност ,която няма криптирана еквивалентна или нещо подобно беше '<img'>)

passwd -u username

да му отключиш акаунта или да му върне старата парола.

Така ти остава само да добавиш в cron-a подходящите часове за стартиране и спиране.При рестарт акаунта остава заключен.
Активен

spawnman

  • Напреднали
  • *****
  • Публикации: 455
    • Профил
Чудя се дали някой продукт за управление на интернет кафета няма да свърши работата?
Активен

Mandriva Cooker
BlackBox

FV80503200 SL27J, 82437FX TSC, 128 (4x32) MB 72pin EDO, AHA-2940UW, ST34572W, M2513A, CDU521, CTL0024, 3C509b-TPC, 215R3PUA22, FP767-12

cyrilo

  • Напреднали
  • *****
  • Публикации: 190
    • Профил
Значи до тука стигнах до следното което си поиграх и написах:
Това се пуска с root след като се логне някой
Примерен код

#!/bin/sh

#wait 2 hours
sleep 2h
#Kill all user processes
pkill -u kris
#Lock the account
passwd -l kris


Значи според мен няма нужда от cron или at защото тука потребителят работи само определено време.
Значи в моемента нямам нужда но скрипта може да се разшири така че да е валиден за определени потребители, може да се опишат във файл.
Може да бъде добавена опиция в crontab за заключване на потребителя в определено време и отключване пак в определено време.

Благодаря за идейте. Доста ми помогнахте да си изградя някаква система.
Активен

echo qwurtyuiopasdfrwp|tr fiaryotsqpdwu .@aceghijmlov
http://jovchev.blogspot.com

nqkoisi

  • Напреднали
  • *****
  • Публикации: 46
    • Профил
Не съм те разбрал много добре , но това нещо което си направил е добре да го сложиш в :

/home/kris/.bash_profile

за да се изпълнява след влизането на потребителя.
Активен

cyrilo

  • Напреднали
  • *****
  • Публикации: 190
    • Профил
Значи това се изпълнява след влизането на потребителя и е точно в .bash_profile
Мислех че трябва да се изпълнява с root но работи и без root.

Благодаря много "Някой си"
Активен

echo qwurtyuiopasdfrwp|tr fiaryotsqpdwu .@aceghijmlov
http://jovchev.blogspot.com

cyrilo

  • Напреднали
  • *****
  • Публикации: 190
    • Профил
Хубаво го написах аз по-горният скрипт. Да но .bash_rc не се пуска от KDM затова трябваше да мисля нещо по-така.

Значи идеята ми е нещо да се пуска от cron.
Да пита who.
Да гледа след това в списък от потребители с времена дали някой не си е надвишил времето за престой. grep
И ако има такива пуска горният скрипт.

Някакви коментари?
От типа, къде е най-добре да опиша времената на потребителите съответно? /etc/passwd?
Активен

echo qwurtyuiopasdfrwp|tr fiaryotsqpdwu .@aceghijmlov
http://jovchev.blogspot.com

XaugyTuH

  • Напреднали
  • *****
  • Публикации: 267
    • Профил
    • WWW
Първо да кажа, че темата ме кефи, защото е важно да се грижим за децата си! Моята дъщеря още няма 2 години, но сигурно като утре ще дойде времето, когато ще се чудя как да я ограничавам на компютъра. Та сега по темата:
В Линукс нещата обикновено са организирани в текстови файлове. И моята идея е в един текстов файл да е записано на кой акаунт колко минути са му останали да използва. В cron-а пък е добавено на всяка минута да се изпълнява скрипт, който проверява кои потребители са лог-нати и им намалява времето с една единица. В момента в който цифрата стане нула достъпа се прекратява.
Надявам се да съм бил ясен. Успех.  '<img'>
Активен

Когато говорите, трябва думите ви да бъдат по-добри от мълчанието!

Не правете от мухата слон. Разходите са прекалено големи.