Ограничить время, когда пользователь может войти в систему

9

У нас есть несколько систем Backbox 3.13, построенных на Ubuntu 12.04. Один из моих подростков не понимает понятия "сон" и склонен вставать, чтобы играть на компьютере. Я пытаюсь ограничить это действие. Мы попробовали няню, которая работала в течение нескольких дней. Затем, хотя настройки все еще были в силе, она все еще позволяла подростку получить доступ к своей учетной записи пользователя и Интернету.

После некоторых исследований я решил попробовать модифицировать /etc/security/time.conf. Очевидно, я делаю это неправильно, потому что, независимо от того, какие команды я ввожу в файл, мы все равно можем войти в ее учетную запись пользователя. Мы не хотим, чтобы она имела доступ с 9 вечера до 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

Я схожу с ума здесь, пытаясь понять, как это сделать. Я уверен, что это что-то простое, что мне не хватает, или что я вхожу неправильно. Любая помощь будет оценена.

user81117
источник
1
Попробуй login;*;daughter;A10600-2100. Это должно разрешить вход только с 6 утра до 9 вечера. Если это не сработает, тогда, возможно *;*;daughter;A10600-2100. Если это работает, вы также хотели бы иметь cronработу, которая убивает сеансы вашей дочери в 9 вечера, так как это только останавливает запуск новых сеансов. Есть некоторые подробности здесь
Warwick
К сожалению, это не сработало. Я попытался войти в систему; *; дочь; A10600-1900, чтобы проверить решение безрезультатно. Я также пытался ; ; дочь; A10600-1900 без положительных результатов. Это должно работать, но не работает. Это из-за системы Единства?
user81117
2
Вы настроили pamиспользовать pam_time? Если нет, вам нужно account required pam_time.soв обоих /etc/pam.d/gdmи /etc/pam.d/loginчуть ниже authзаписей.
Уорик
Я добавил эти строки в файлы / 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

Этот пример позволяет входить в систему с помощью программного обеспечения, поддерживающего pam, каждый день с 8:00 до 22:00.

Ингмар
источник
0

Это здесь, что вы делаете, или вы используете их вместо Ls?

Временные ограничения должны гласить «заглавная А, маленькая буква L », а затем время ...

январь
источник
Привет ниггер Я попробовал это обоими способами, поскольку я видел документацию, показывающую и 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

У меня также есть cron-задание, которое в 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

Ragansi
источник
Я не думаю, что это сработает. Что делать, если аутентификация не выполняется для локальной базы паролей ( /etc/shadow)? passwd -lможет даже ничего не делать в этом случае. Что если машина выключена или задание cron не запускается по какой-либо другой причине? Тогда аккаунт может оказаться в нежелательном состоянии.
Jayhendren
Мне неизвестна какая-либо система UNIX или Linux, которая не аутентифицируется на основе локальной базы паролей, если только она не подключена к центральному серверу аутентификации.
Раганси
Мой предыдущий комментарий оборвался преждевременно. Не понял, нажав Enter, оставил комментарий. Тем не мение. Если машина выключается, то cron может оставить систему в нежелательном состоянии. Вы можете использовать cron для вызова небольшого скрипта, который проверяет время, а затем соответственно блокирует или разблокирует. Запускайте его каждые 5 минут или даже @reboot в cron.
Раганси
msgstr "если он не подключен к центральному серверу аутентификации". И я о том же.
Джейхендрен
В этом случае ваш центральный сервер аутентификации будет (или должен ...) иметь средства для выполнения вышеупомянутых функций блокировки. В этом случае вам не нужно (и не нужно) выполнять блокировку учетных записей пользователей на локальном компьютере, если что-то не настроено вне области, с тем, как предполагается использовать центральную аутентификацию.
Раганси