
У меня есть sshd_config
файл, который настроен так, чтобы не разрешать пользователям в группе nologin
входить ssh
на этот сервер ( DenyGroups nologin
). Хотя у меня есть несколько пользователей в этой группе, я хочу переопределить это для одного из пользователей (назовем пользователя greg
).
Я пробовал добавлять AllowUsers greg
в sshd_config
файл, но это не сработало. Возможно ли это сделать?
Sshd_config выглядит так:
AllowTcpForwarding no
ClientAliveCountMax 1
ClientAliveInterval 300
LoginGraceTime 1m
PermitRootLogin no
Protocol 2
RSAAuthentication no
Subsystem sftp /usr/libexec/openssh/sftp-server
UsePAM yes
X11Forwarding yes
DenyGroups nologin
LogLevel INFO
MaxAuthTries 4
IgnoreRhosts yes
HostBasedAuthentication no
PermitEmptyPasswords no
PermitUserEnvironment no
Ciphers aes128-ctr,aes192-ctr,aes256-ctr
Добавление «AllowUsers greg» (greg является членом группы входа) не позволяет greg использовать ssh.
решение1
Страница руководства sshd_config(5)
описывает поведение этих опций следующим образом:
Если указано,Вход в систему разрешен/запрещен только для пользователей/групп, чей основной или дополнительный список групп или имя соответствует одному из шаблонов.Допустимы только имена групп; числовой идентификатор группы не распознается. По умолчанию вход разрешен для всех групп. Директивы allow/deny обрабатываются в следующем порядке:DenyUsers,РазрешитьПользователям,DenyGroups, и наконецРазрешитьГруппы.
Это намекает, что если вы определите только эти два параметра, тодолженработает для вас. Вы, вероятно, используете какие-то другие опции, которые мешают вашей настройке. Можете ли вы опубликовать всю конфигурацию, которую вы используете?
решение2
Мне кажется, все просто: удалить greg
из nologin
группы.
решение3
Вы не можете сделать это таким образом, так каквседирективы оцениваются до sshd
принятия окончательного решения. Таким образом, хотя greg
разрешено AllowUsers
, оно отклоняется позже соответствием DenyGroups
группе, в которой он находится. Руководство здесь несколько неконкретно, поскольку не упоминает, что все директивы оцениваются в порядке, описанном Jakuje, поэтому я попробовал это в OpenSSH 5.2p1 на запасной системе. Действительно, порядок оценки должен быть обратным (сначала разрешить/запретить группы, затем разрешить/запретить пользователей). Это было бы гораздо более разумно, по крайней мере для меня.