O ulimit Underappreciated

Você pode pensar no ulimit

comando como melhor solução de um administrador Linux para restringir o que os usuários podem e não podem fazer. Cada administrador Linux tem pelo menos um usuário que apenas parece saber como trazer o seu sistema / rede / nervos para um rastreamento. Enquanto eles não podem dizer intencionalmente para fazê-lo, muitas vezes, é uma manifestação de sua amarrar processos e tentar fazer coisas que eles não são totalmente fluentes com.

o ulimit comando é simples de fazer e incluído no bater Concha. A beleza de ser uma parte do shell é que você pode

  • Incluir ulimit no perfil do usuário individual e restringi-la a esse usuário.

  • Coloque suas restrições em / Etc / profile e tê-los se aplicam a todos os usuários.

É importante saber que ulimit não limita o espaço de armazenamento - que é o domínio da contingente série de comandos. Ao invés, ulimit se destina a regular processos e você pode limitá-los de três maneiras:

  • Ilimitado (o padrão)

  • Difícil limitado (o usuário não pode exceder)

  • Soft Limited (o usuário mal pode exceder).

Se o limite que lugar é difícil ou suave é baseada unicamente em se utilizar o -H ou -S parâmetro.

Uma lista completa dos parâmetros que podem ser definidos podem ser encontradas no ficheiro para homem bater, mas estes são alguns dos melhores usos desta função.

Vendo o que está definido

Para ver o que os limites são atualmente definido, o tipo ulimit na linha de comando. Se não há restrições duras ou macias definido, a resposta retornada será simplesmente ilimitado. Isso não significa que não há limites, no entanto, e você tem que ter cuidado para não cair na armadilha de pensar desta maneira. Digitar ulimit -a e será mostrada uma lista de todas as restrições. Esta é uma resposta muito mais útil, e será semelhante ao seguinte:

o tamanho do arquivo de núcleo (blocos, -c) tamanho 0data seg (kbytes, -d) tamanho unlimitedfile (blocos, -f) unlimitedmax bloqueado memória (kbytes, -l) 32max tamanho da memória (kbytes, -m) arquivos unlimitedopen (-n) tamanho 1024pipe (512 bytes, -p) tamanho 8stack (kbytes,-s) tempo unlimitedcpu (segundos, -t) processos de usuário unlimitedmax (u) de memória 2038virtual (kbytes, -v) ilimitada

Não só este dar uma imagem mais realista das limitações do sistema, mas também inclui os parâmetros que você precisa usar para alterar qualquer uma das configurações (poupando-o de ter que ler o homem Páginas). Essas definições que pretende limitar na maioria das vezes são aqueles relacionados a processos, memória virtual, e tamanho do arquivo.

A definição de um valor

A maneira mais fácil de definir um limite é usar o parâmetro que é necessário, e especificar o valor. Por exemplo, para reduzir significativamente o número de processos que um usuário pode ter a partir do padrão de 100, você pode usar o comando ulimit -u 100. Curiosamente, quando você digita ulimit, você ainda vai ter a resposta "ilimitado". Agora, no entanto, quando você digita ulimit -a a resposta será semelhante ao seguinte:

núcleo siz arquivo (blocos, -c) tamanho 0data seg (kbytes, -d) tamanho unlimitedfile (blocos, -f) unlimitedmax bloqueado memória (kbytes, -l) 32max tamanho da memória (kbytes, -m) arquivos unlimitedopen (-n) tamanho 1024pipe (512 bytes, -p) tamanho 8stack (kbytes,-s) tempo unlimitedcpu (segundos, -t) processos de usuário unlimitedmax (u) de memória 100virtual (kbytes, -v) ilimitada

porque nem -H nem -S foram especificados, o valor definido é tanto duro e macio. Para ver que este valor tem algum significado, defina-o muito baixo em sua própria sessão com este comando e ver o resultado: ulimit -u 2.

Definir limites suaves

Uma vez definido, um limite rígido não pode ser aumentado, enquanto um limite suave pode ser aumentado até atingir o valor de um limite rígido. Suponha que os processos máximos de usuários ainda é 2038 (o que pode ser definido de volta para com ulimit -u 2038) E você só quer mudar o limite suave. O comando para dar a alterar apenas o limite suave é: ulimit -S-u 100.

digitando ulimit -a irá mostrar o valor fixado em 100 e não realmente alertar para o fato de que este é um limite suave. Para ver o que está acontecendo, o tipo ulimit -H -a e ulimit -a -S e compare a saída de ambos os comandos. Eles devem ser idênticos, exceto para o número de processos de usuário, com o limite rígido sendo 2.038 eo limite suave sendo 100.

Para ver a diferença que isso faz, tente ulimit -S-u 2 e ver o resultado, comparando-o com o que aconteceu antes. Você agora está permitido exceder o limite.

Pense em um limite suave como mais de um recomendação do que uma regra.

A fixação de limites rígidos

Um limite rígido é realmente um regra. Uma vez definido, ele não pode ser ultrapassado.

As duas maneiras de definir o limite de disco rígido são: ou

  • Não especificar nada (ulimit -u 100), que define de forma eficaz tanto os limites duros e macios

  • Use o parâmetro -H: ulimit -H u 100

Para definir um valor para ilimitado, use a palavra em si: ulimit -u ilimitado.

Para ver apenas um valor, especifique esse parâmetro. Por exemplo, para ver o valor suave de processos de usuário, digite: ulimit -Su

Os valores padrão são definidos em / Etc / profile mas podem (em algumas implementações) também ser derivados de valores definidos em / Etc / initscript ou /etc/security/limits.conf.

menu