Os dois , não, three , ... Entre os principais obstáculos para isso estão:
-
Não é um nome válido para um alias. Manual on-line do Bash :
The characters ... and any of the shell metacharacters or quoting characters listed above may not appear in an alias name.
(
,)
,&
,|
e espaço em branco estão no Bash 4.4. -
Essa sequência específica não é a única maneira de escrever uma bifurcação na casca, apenas famosa porque parece obscura. Por exemplo, não há necessidade de chamar a função
:
em vez de algo realmente composto de letras. -
Se você pudesse definir o alias, o usuário poderia cancelar o alias, contorná-lo, escapando o nome do alias na linha de comando, ou desabilitar todos os aliases, possivelmente executando a função em um script (Bash não expanda aliases em shells não interativos).
-
Mesmo que o shell seja restrito o suficiente para interromper todas as versões de uma fork fork, um sistema de propósito geral terá outros utilitários programáveis que podem recorrer e separar subprocessos. Got Perl ou um compilador C? Bastante fácil. Até o awk provavelmente poderia fazer isso. Mesmo que você não tenha aqueles instalados, você também precisará parar o usuário de trazer binários compilados de fora do sistema, ou executando
/bin/sh
, que provavelmente precisa ser um shell totalmente operacional para o resto do sistema. função.
Basta usar ulimit -u
(ou seja, RLIMIT_NPROC
) ou equivalente para restringir o número de processos que um usuário pode iniciar. Na maioria dos sistemas Linux, há pam_limits
que pode definir o limite de contagem de processos antes de qualquer comando escolhidos pelo usuário são iniciados.
Algo como isso em /etc/security/limits.conf
colocaria um limite de 50 processos para todos os usuários:
* hard nproc 50
(Stephen Kitt já mencionado , ponto 1, Jeff Schaller simitado 2 e 3.)