Цель здесь - создать сценарий для простого управления резервированием для машины. Когда пользователь резервирует машину, она должна быть единственной, кто может получить доступ к машине в течение определенного времени (кроме, конечно, администраторов).
Я уже нашел решение с PAM. Эта единственная строка в /etc/pam.d/sshd
решила бы мою проблему:
auth required pam_listfile.so item=user sense=allow file=/etc/ssh/sshd.allow onerr=fail
с логином пользователя в /etc/ssh/sshd.allow
Но совсем не работает:
$ cat /etc/ssh/sshd.allow
foo
$ tail -f /var/log/auth.log
Dec 1 12:12:05 mini sshd[2697]: Accepted publickey for bar from 192.168.0.11 port 58087 ssh2
Dec 1 12:12:05 mini sshd[2697]: pam_unix(sshd:session): session opened for user bar by (uid=0)
Здесь /etc/pam.d/sshd
файл
# PAM configuration for the Secure Shell service
auth required pam_env.so # [1]
auth required pam_env.so envfile=/etc/default/locale
auth required pam_listfile.so item=user sense=allow file=/etc/ssh/sshd.allow onerr=fail
@include common-auth
account required pam_nologin.so
@include common-account
@include common-session
session optional pam_motd.so # [1]
session optional pam_mail.so standard noenv # [1]
session required pam_limits.so
@include common-password
Я использую Debian Squeeze box, я не знаю, отличается ли от этого поведение PAM.
Идея, аналогичная описанной выше: не могли бы вы использовать AllowGroups в sshd.conf, чтобы разрешить определенную группу (+ группу для администраторов), а затем добавлять и удалять пользователей из группы с помощью вашей системы аутентификации, не позволяя вам вообще редактировать файлы, или по крайней мере, редактируйте файлы только с хорошо установленными интерфейсами (/ etc / group через usermod и т.д.).
Вы можете очень легко использовать для этого pam_access:
# /etc/pam.d/system-auth
account required pam_access.so
Затем контролируйте, у кого есть доступ, следующим образом:
# /etc/security/access.conf
+ : root otheruser : ALL
- : ALL : ALL
Почему вы не использовали в / etc / ssh / sshd_config в разделе AllowUsers user1 user2 user3