Não, não é possível limitar pelo nome do processo, porque o nome do processo pode ser alterado facilmente.
Assim, esse limite pode ser facilmente evitado.
(Pode até ser alterado em tempo de execução, eu acho.)
é possível limitar o número de processos para um determinado grupo ou usuário usando o nome do processo? Por exemplo. Eu gostaria que os grupos remotes tivessem apenas 5 processos ssh simultâneos que são executados no meu servidor. Não vejo nenhuma opção em pam_limit (só posso limitar o número de processos por usuário ou grupo, independentemente do nome do processo) e não vejo capacidade em cgroups .
Você tem alguma idéia de como fazer isso? (script no cron não é uma resposta para mim:))
Embora eu não saiba como limitar o número de processos pelo nome, talvez você consiga atingir sua meta geral por meio de pam_limits, limitando o número de logins de usuários.
Uma entrada em /etc/security/limits
, como
@remotes hard maxlogins 5
garantirá que os usuários do grupo de remotos não possam ter mais de 5 sessões de login no sistema. Você pode querer emparelhar isto com MaxSessions = 1 no seu sshd_config (para evitar sessões SSH multiplexadas).
Outra opção seria executar o serviço sshd em um supervisor de serviço, sistema init ou superservidor que permite limitar as instâncias dos serviços iniciados. edvinas.me mencionou xinetd. Se você estava rodando sshd sob xinetd, o fragmento de configuração xinetd completamente não testado abaixo limitaria seu número total de instâncias ssh a 20:
service ssh
{
socket_type = stream
protocol = tcp
wait = no
user = root
server = /usr/sbin/sshd
server_args = -i
per_source = UNLIMITED
instances = 20
}
Um efeito semelhante pode ser obtido usando uma unidade de soquete systemd com MaxConnections=20
.