In questo tutorial per principianti imparerai a conoscere il comando ulimit in Linux. Scoprirai come usarlo per controllare l'allocazione delle risorse di sistema.
Cos'è ulimit in Linux?
Ulimit è un comando shell integrato progettato per visualizzare, allocare e limitare le risorse. È essenziale che qualsiasi sistema regoli questi tipi di controlli.
Questo tipo di controllo può essere applicato a livello globale, di gruppo e utente. Oltre a garantire un'elaborazione regolare delle attività, impedisce ai processi indesiderati di divorare risorse di sistema come RAM e potenza della CPU.
Ulimit è collegato a un file di configurazione della sicurezza. La tua posizione esatta può variare, ma in genere è qualcosa come /etc/security/limits.conf
. Ulimit ci consente di modificare rapidamente tale configurazione.
Limiti soft vs hard limiti
Come utente, puoi effettivamente regolare le tue impostazioni ulimit.
Ti starai chiedendo perché anche impostare un limite se un utente può modificarlo. È qui che entrano in gioco i limiti soft e hard.
Quindi, dal punto di vista dell'amministratore, potresti preferire che il tuo utente si muova attorno a un certo valore. Questo sarebbe il tuo limite morbido (diciamo 25).
Quindi, potresti stabilire un limite rigido che non può essere superato da quell'utente (50). L'utente sarebbe autorizzato ad aumentare il proprio limite da 25 a 50.
Utilizzo di ulimit in Linux

Ecco la sintassi del comando ulimit:
ulimit <options>
Mostra tutti i limiti per qualsiasi utente
Puoi visualizzare tutti i tipi di limiti per un utente specificato in questo modo:
ulimit -a user_name
Il -a
flag mostrerà tutte le opzioni e la loro configurazione per il tuo nome utente specifico.
Se ometti user_name, mostra i limiti per te. Lascia che ti mostri i limiti impostati per me di default:
[email protected]:~$ ulimit -a
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 31503
max locked memory (kbytes, -l) 65536
max memory size (kbytes, -m) unlimited
open files (-n) 1024
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 8192
cpu time (seconds, -t) unlimited
max user processes (-u) 31503
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
I tuoi valori predefiniti potrebbero essere diversi dai miei, ovviamente. Questa visualizzazione mostra una descrizione, il flag assegnato (che può essere utilizzato per modificare i limiti) e la configurazione.
Visualizza limiti hard e soft
È anche possibile visualizzare uno di questi rispettivi limiti con un flag.
Per visualizzare i limiti soft, usa l'opzione -S:
ulimit -S
Per visualizzare i limiti rigidi, utilizzare l'opzione -H:
ulimit -H
È più utile combinarli con flag specifici dall'alto. Quindi, se vuoi controllare il limite rigido sul numero massimo di processi utente, dovresti digitare:
[email protected]:~$ ulimit -Hu
31503
Cambia i limiti (temporaneamente)
Ora cambiamo quel valore in 31500 a scopo dimostrativo e controlliamo di nuovo il limite rigido.
[email protected]:~$ ulimit -u 31500
[email protected]:~$ ulimit -Hu
31500
Vale la pena notare che tutte le modifiche che i tuoi privilegi ti consentiranno verranno scritte solo temporaneamente e influenzeranno la tua shell attuale.
Per confermare ciò, sono uscito dalla mia shell e ho creato un nuovo terminale e ho ottenuto il valore predefinito originale.
[email protected]:~$ ulimit -Hu
31503
La sezione successiva mostra come rendere permanenti le modifiche.
Apportare modifiche permanenti a ulimit
Come ho detto all'inizio dell'articolo, ulimit è governato da /etc/security/limits.conf. Se desideri apportare modifiche permanenti agli ulimits di qualsiasi utente, dovrai apportare modifiche al file di sicurezza come root.
Durante la modifica devi includere questi quattro elementi:
<domain> <type> <item> <value>
Ecco il testo che ho aggiunto al file per impostare il limite rigido sul numero di processi per l'utente christoper (ovvero il mio account):
christopher hard nproc 2000
Tieni presente che è buona norma non abilitare l'account root a meno che tu non sia pienamente consapevole delle potenziali conseguenze. L'ho fatto su una macchina virtuale, quindi non devi farlo da solo.
[email protected]:~$ su
Password:
[email protected]:/home/christopher# nano /etc/security/limits.conf
[email protected]:/home/christopher# exit
exit
[email protected]:~$ ulimit -u
20000
Come puoi vedere, il limite per "christopher" è stato cambiato a 20000.
Come fai a sapere quale parola chiave usare per modificare il file /etc/security/limits.conf? Bene, ecco una tabella che include le possibili parole chiave degli articoli e le loro descrizioni:
Parola chiave elemento | Descrizione |
---|---|
core | limita la dimensione del file principale (KB) |
dati | dimensione massima dei dati (KB) |
fsize | dimensione massima del file (KB) |
blocco memoria | spazio di indirizzi in memoria bloccato (KB) |
nessun file | numero massimo di descrittori di file aperti |
rss | dimensione massima del set residente (KB) |
pila | dimensione massima dello stack (KB) |
cpu | Tempo massimo CPU (MIN) |
nproc | numero massimo di processi |
come | limite spazio indirizzi (KB) |
maxlogin | numero massimo di accessi per questo utente |
maxsyslogins | numero massimo di accessi al sistema |
priorità | la priorità con cui eseguire il processo utente |
serrature | numero massimo di blocchi di file che l'utente può mantenere |
in attesa | numero massimo di segnali in sospeso |
msgqueue | – memoria massima utilizzata dalle code di messaggi POSIX (byte) |
bello | Priorità piacevole massima consentita per aumentare ai valori:[-20, 19] |
rtprio | Priorità massima in tempo reale |
chroot | cambia root in directory (specifica per Debian) |
Tipo limite | Descrizione |
---|---|
difficile | limite rigido |
morbido | limite morbido |
– | limite sia hard che soft |
Cambia ulimit per i gruppi
La modifica di un criterio di gruppo è molto simile a quanto visto nella sezione precedente, ma includerai un @
simbolo prima del nome del gruppo.
Ecco un esempio in cui ho impostato il numero massimo di accessi per lo studente del gruppo è 4 modificando il file /etc/security/limits.conf:
@student - maxlogins 4
Conclusione
Spero che questo rapido manuale di istruzioni sul comando ulimit Linux ti sia piaciuto.
Se hai commenti o domande, lasciali qui sotto. Se hai suggerimenti per argomenti che vorresti vedere trattati, sentiti libero di lasciare anche quelli.