Как предотвратить выполнение команды chpasswd по времени или дням с помощью pam?

Похоже, что другие респонденты на самом деле не тестировали BusyBox. Вот единственные команды, которые работали с BusyBox в моей initramfs:

  • cat /proc/partitionsпоказывает размер диска и раздела в блоках (КиБ)

  • blkidпоказывает метки разделов, UUID и типы (EXT4, NTFS и т. д.)

3
30.12.2018, 19:43
1 ответ

Вы не можете запретить пользователям запускать chpasswdс помощью pam_time.so, так как это гарантирует только то, что проверка разрешений PAM завершится ошибкой, когда пользователь действительно попытается изменить свой пароль.

Если ваша цель — запретить пользователям изменять свой пароль с помощью chpasswdв течение часов, указанных в /etc/security/time.conf, этого подхода должно быть достаточно.

Если вы хотите, чтобы пользователи не запускали chpasswd, вам нужно добавить что-то вроде этого cronjob (, например. /etc/cron.d/disable_chpasswd), который отключает разрешения для других пользователей запускать эту программу в указанный час.

# disable chpasswd daily at 5pm
0 17 * * * root /usr/bin/chmod 4750 /usr/bin/chpasswd
# enable  chpasswd daily at 5am
0  5 * * * root /usr/bin/chmod 4755 /usr/bin/chpasswd

Однако, если вы хотите, чтобы пользователи вообще не меняли свой пароль, вы не можете полагаться наpam_time.so(или подобный cronjob ), потому что пользователи все равно смогут изменить свой пароль, используя passwd(, что, насколько Я знаю, что не использует учетную запись группу управления )или, возможно, другие методы (, например некоторые графические инструменты используют интерфейс D -Bus, предоставляемый AccountsService ). Чтобы обойти это, вы можете, например, настроить задание cron, которое отключает и разрешает изменение пароля в вашей конфигурации PAM (, но я не знаю, будет ли это жизнеспособным решением для вас ).

0
18.03.2020, 11:40

Теги

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