Обмежте час, коли користувачеві дозволяється входити в систему


9

У нас є кілька систем Backbox 3.13, побудованих на Ubuntu 12.04. Один з моїх підлітків не розуміє поняття цієї речі під назвою «сон» і схильний вставати, щоб грати за комп’ютером. Я намагаюся обмежити цю дію. Ми намагалися Няню, яка працювала кілька днів. Тоді, хоча налаштування все ще існували, це все ще дозволяло вказаному підлітку отримати доступ до свого облікового запису користувача та Інтернету.

Після деяких досліджень я вирішив спробувати модифікувати /etc/security/time.conf. Мабуть, я роблю це не правильно, оскільки, незалежно від того, які команди я ввожу у файл, ми все одно можемо увійти до її облікового запису користувача. Ми не хочемо, щоб вона мала доступ з 21 вечора до 6 ранку. Нам все ще потрібно мати доступ до комп’ютера весь час. Ось декілька синтаксисів, які я спробував:

1. login;*;username;A12100-0600
2. login;*;username;!A12100-0600
3. login;*;username;!A12100-0600
   login;*;my username;A10000-2400
4. login;*;!username;A12100-0600

Я тут збиваюся, намагаючись зрозуміти, як це зробити. Я впевнений, що це щось просте, що я пропускаю, або що я вводжу неправильно. Будь-яка допомога буде вдячна.


1
Спробуйте login;*;daughter;A10600-2100. Це має дозволяти входити між 6:00 та 21:00. Якщо це не працює, то, можливо *;*;daughter;A10600-2100. Якщо це працює, ви також хочете мати cronроботу, яка вбиває сесії вашої дочки о 21:00, оскільки це лише зупиняє запуск нових сесій. Є деякі подробиці тут
Warwick

На жаль, це не вийшло. Я спробував увійти; *; дочка; A10600-1900 перевірити рішення безрезультатно. Я також спробував ; ; дочка; A10600-1900 без позитивних результатів. Це має працювати, але це не так. Це через систему Єдності?
user81117

2
Ви налаштували pamдля використання pam_time? Якщо ні, то вам потрібно account required pam_time.soв обох /etc/pam.d/gdmта /etc/pam.d/loginтрохи нижче authзаписах.
Warwick

Я додав ці рядки до файлів / gdm та / login, а потім повторно ввів інформацію у конфігураційний файл. У нас все ще немає радості з цього приводу. Зараз я гуглю, щоб переконатися, що я ввів рядок у правильне місце у файлі / gdm.
user81117

Відповідно до ask.fedoraproject.org/en/question/7260/… , (Вибачте за довгу URL-адресу), я повинен припинити команду, ввівши в новий рядок. Я коментую цей рядок знаком #, правда? Він також говорить, що потрібний обліковий запис pam_time.so йде в кінці файлу / gdm. Я знаю одну річ точно. Як тільки це з’ясувалося, я не забуду так швидко знову!
user81117

Відповіді:


1

1. Відредагуйте /etc/pam.d/common-auth та додайте наступний рядок: account required pam_time.so

2. Відредагуйте /etc/security/time.conf і додайте обмеження: *;*;username;Al0800-2200

Цей приклад дозволяє входити в систему із пам’яті, що обізнано пам’яті, всі дні між 8:00 та 22:00 щодня.


0

Це ви просто робите, або ви використовуєте їх замість Ls?

У часових обмеженнях слід писати "велика величина А, мала L ", а потім час ...


Привіт Nigge. Я пробував це обома способами, оскільки бачив документацію, що показує і Al, і A1. Жоден метод не працює. У мене ведмідь часу намагається з'ясувати, чому.
user81117

Вибачте, що це було причиною вашої проблеми. Інша річ, щоб перевірити: чи може ваша система використовувати інший DM? Загляньте в / etc / X11 / default-display-manager ...
січня

Система використовує Light DM. Я думаю, що коли я встановив GDM, я встановив його для Light DM.
user81117

0

Наступні роботи для мене:

*;*;child1|child2|child3;Wk0445-1958|Sa0445-2300|Su0445-1958

У наступному рядку /etc/pam.d/common-accountможе бути щось, що я додав або прокоментував.

account required  pam_time.so

Також у мене є робота з крон, яка перевіряє о 20:00, чи не входить один із дітей, і виходить з нього, якщо так ... частина, яка насправді реєструє їх, полягає в наступному:

echo 'logging off - Following children are still logged in...'
for n in $active_children ; do echo "  " $n ; done
festival --tts <<EOT
Is is bedtime. Good bye and good night.
EOT
for n in $active_children
do
    killall -HUP -u $n
done
sleep 15
for n in $active_children
do
    killall      -u $n
done
echo "[`date`] - done"

0

Більш загальний метод - використовувати cron для блокування та розблокування облікового запису. Це виключає як специфічні вимоги, так і будь-які змінні, пов’язані з диспетчером вікон. Це призначено лише для автономної машини, а не для робочого столу / ноутбука / планшета, підключеного до центрального сервера аутентифікації.

0 21 * * * /usr/bin/passwd -l childsUserName 0 6 * * * /usr/bin/passwd -u childsUserName'

ПРИМІТКА. Можливо, вам доведеться налаштувати свій шлях для команди 'passwd'. Визначте правильний шлях за допомогою "який".

У вікні CentOS 6:

which passwd

/usr/bin/passwd


Я не думаю, що це спрацює. Що робити, якщо автентифікація не буде виконана щодо локальної бази даних паролів ( /etc/shadow)? passwd -lможе навіть не зробити нічого в цьому випадку. Що робити, якщо машина вимкнена або робота з хронічної системи не працює з якоїсь іншої причини? Тоді обліковий запис може перебувати в небажаному стані.
jayhendren

Мені невідома жодна система UNIX або Linux, яка не підтверджує автентифікацію на локальній базі даних паролів, якщо тільки вона не підключена до центрального сервера аутентифікації.
Рагансі

Мій попередній коментар передчасно відрізали. Не усвідомив, що потрапив, увійшов до коментаря. У всякому разі. Якщо машина вимкнеться, то крон напевно може залишити систему в небажаному стані. Ви можете використовувати cron для виклику невеликого сценарію, який перевіряє час, а потім блокується чи розблоковується відповідно. Запускайте його кожні 5 хвилин або навіть @reboot в cron.
Рагансі

", якщо він не підключений до центрального сервера аутентифікації". Саме це я і маю на увазі.
jayhendren

У цьому випадку ваш центральний сервер аутентифікації матиме (або повинен ...) засоби для виконання вищезазначених функцій блокування. У такому випадку вам не потрібно (і не потрібно) виконувати блокування облікових записів користувачів на локальній машині, якщо щось не буде налаштовано поза межами, з тим, як планується використовувати центральний аутентифікатор.
Рагансі
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.