Могу ли я разрешить пользователю без полномочий root входить в систему, когда существует файл / etc / nologin?


8

Предположим, что пользователь без полномочий root с привилегиями sudo выполняет отложенное завершение работы ( shutdown +10или что-то еще) и выходит из системы. Затем, прежде чем происходит отключение, он хочет войти в систему и отменить отключение. Проблема в том, что shutdownсоздает /etc/nologinи loginразрешает пользователю root вход в систему только тогда, когда этот файл существует ... возможно ли создать исключение из этого для пользователя?

Если нет, то как лучше всего разрешить пользователю инициировать отложенное завершение работы, а затем войти в систему и отменить ее позднее?


Можно было бы использовать shutdown nowс atпланировщиком в качестве обходного пути.
jw013

Ответы:


14

Если ваша система использует PAM , модуль отказывает в входе в систему, когда он /etc/nologinсуществует .pam_nologin

Вы можете пропустить pam_nologinвызов для пользователей, соответствующих определенным критериям pam_succeed_if. Например, если вы хотите разрешить пользователям admгруппы входить в текстовую консоль, даже если она /etc/nologinсуществует, добавьте следующую строку /etc/pam.d/loginнепосредственно перед строкой с auth requisite pam_nologin.so:

auth [default=ignore success=1] pam_succeed_if.so quiet user ingroup adm

2

Ответ Жиля выше очень хорош, но учтите, что вы должны сопоставить «тип» с типом pam_nologin.so. Например, в моей системе RHEL5:

account [default=1 success=ignore] pam_succeed_if.so quiet user ingroup nx
account required     pam_nologin.so

... если бы я использовал auth, как требовал другой ответ, это не сработало бы.


2

Версия Весы К ответа Райана Новосельского работает для меня, но строки в:

/etc/pam.d/sshd

не:

/etc/pam.d/login

В моем случае я просто хочу, чтобы UID 1000 под Ubuntu 14.04 LTS был разрешен для входа через SSH.

# Disallow non-root logins when /etc/nologin exists.
account [success=1 default=ignore] pam_succeed_if.so quiet uid eq 1000
account    required     pam_nologin.so

1

Я не уверен, возможно ли переопределить /etc/nologinсоздание / использование без подвохов. Но для вашей цели вы можете использовать такую ​​функцию:

off () { 
   touch /tmp/GOING-DOWN
   sudo sh -c "sleep ${1-1} && [ -f /tmp/GOING-DOWN ] && /sbin/poweroff"
}

После повторного входа в систему удаление файла /tmp/GOING-DOWNпредотвратит завершение работы.

Изменить : Добавлен простой способ отменить выключение.


0

Сегодня я попробовал правило Райана и обнаружил, что у бота ответов Джилса и Райана есть правила успеха / по умолчанию, «обратные», нологин блокирует только nx-группу. Вот как я реализовал это правило (группа nx не блокируется nologin).

account [success=1 default=ignore] pam_succeed_if.so quiet user ingroup nx
account required     pam_nologin.so
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.