How to Disable Ctrl+c or Ctrl+z Using the “trap” Command in Linux

The purpose is to disable CTRL+C or CTRL+Z interrupt for the root user or a general user account by the trap command. So basically, when the user tries to interrupt any command or script using CTRL+C or CTRL+Z, he will not be able to do so. The trap command can be used to trap these signals and disable them.

1. Show the signal numbers with “kill -l”. In the below output the numbers for the signals are shown, and in case of CRTL+C is “SIGINT” signal number 2 and CRTL+Z is “SIGTSTP” signal number 20.

# kill -l
1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP
6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR1
11) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM
16) SIGSTKFLT 17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP
21) SIGTTIN 22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ
26) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO 30) SIGPWR
31) SIGSYS 34) SIGRTMIN 35) SIGRTMIN+1 36) SIGRTMIN+2 37) SIGRTMIN+3
38) SIGRTMIN+4 39) SIGRTMIN+5 40) SIGRTMIN+6 41) SIGRTMIN+7 42) SIGRTMIN+8
43) SIGRTMIN+9 44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13
48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12
53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9 56) SIGRTMAX-8 57) SIGRTMAX-7
58) SIGRTMAX-6 59) SIGRTMAX-5 60) SIGRTMAX-4 61) SIGRTMAX-3 62) SIGRTMAX-2
63) SIGRTMAX-1 64) SIGRTMAX

To disable ctrl+c or ctrl+z for all users, append the trap command combinations in /etc/profile.

# vi /etc/profile
...
### Disable CTRL+C and CRTL+Z command ########
trap ' '2 20

If these signals should only be enabled for a specfic user, the trap command can be added to ~/.bash_profile.

# cat .bash_profile
...
### Disable CTRL+C and CRTL+Z command ########
trap ' '2 20
Related Post