Как предоставить crontab доступ пользователю домена?

392
Simone

Я работаю на сервере RedHat 7.3, и пользователю нужен доступ к crontab. Однако этот пользователь является пользователем домена (например, test @ [domain]). Таким образом, пользователь не отображается в файле / etc / passwd.

Я уже пытался добавить его имя и полное имя (с доменом за ним) в файл cron.allow.
Похоже, это не сработало, но в разрешении отказано. Можно ли даже предоставить пользователям домена (без рут-доступа) доступ к crontab? И если да, то как?

0

1 ответ на вопрос

0
grawity

Cron всегда использует одни и те же методы для определения доступа, независимо от типа учетной записи. Одна проверка - файл cron.allow, другая проходит через PAM:

  1. Cron вызывает PAM для запуска стека «учетная запись» (учет / авторизация) /etc/pam.d/crond.
  2. Этот файл, прямо или косвенно (через include / substack), будет содержать модуль, принадлежащий вашему клиенту домена - например, pam_sssесли вы используете SSSD, pam_winbindесли вы используете Samba / Winbindd или pam_ldapесли вы используете nslcd.
  3. pam_sss связывается с SSSD, который принимает решение, разрешить ли пользователю test@domainдоступ к crondсервису. Способ принятия этого решения зависит от параметров, sssd.confнапример, при присоединении к домену Active Directory он может даже прочитать ваши групповые политики и принять решение в зависимости от того, предоставит ли Windows пользователю разрешение «Пакетный вход».

    (Я просто предполагаю, что это SSSD из-за синтаксиса имени пользователя и потому, что RHEL создал его.)

Как примечание, нет никакой разницы между локальными пользователями и пользователями домена с технической стороны. Даже ...@domainсинтаксис - это просто причудливое имя пользователя, которое генерирует SSSD; в этом нет ничего особенного для остальной системы. Поэтому, если вы используете cron.allow, вы, как правило, должны включить его.

В качестве дополнительного примечания к дополнительному примечанию, с SSSD возможно иметь асимметричное имя → UID → перевод имени (например, test@domain→ 12345 → domain\test). Вы не знаете, хранит ли cron дословно имя пользователя или восстанавливает его по UID. Поэтому вы должны работать getent passwd <uid>с числовым UID и включать получающееся имя пользователя в cron.allow, если оно отличается от исходного имени пользователя (то есть вы должны перечислить обе версии).

Похожие вопросы