В то время как Вы могли отредактировать Ваш /etc/ssh/sshd_config
выглядеть примерно так:
ForceCommand /bin/sh
PermitOpen 0.0.0.0
AllowTcpForwarding no
PermitTunnel no
# Subsystem sftp /usr/lib/openssh/sftp-server
PermitUserEnvironment no
Я вместо этого определил бы то, для чего пользователь, вероятно, будет использовать его. Поскольку, если существует только несколько команд, к которым Вы хотите, чтобы у них был доступ, я вместо этого удалил бы способность к ним даже вызвать нормальное ssh
оболочка.
AllowUsers root
PermitRootLogin forced-commands-only
PermitUserEnvironment no
AllowTcpForwarding no
PermitTunnel no
# Subsystem sftp /usr/lib/openssh/sftp-server
Subsystem smb-reload /usr/bin/smbcontrol smbd reload-config
Subsystem status /opt/local/bin/status.sh
ssh root@example -s smb-reload
Если Вы находите, что действительно необходимо смочь выполнить нормальную оболочку, большинство, на которое действительно можно надеяться, должно замедлить их и сделать ее более трудной.
Я предложил бы bdb бэкенд. SQL, вероятно, будет очень надежен (принятие совместимого ACID сервера), но Вы действительно хотите выполнить целый SQL-сервер только для поддержки каталога LDAP?:)