How to disable crontab “-r” option in Linux ?

In this article, we will look at a trick how to disable crontab “-r” option in Linux.

“E” and “R” lies nearby, hence there are chances while typing “crontab -e”, we run “crontab -r” and it will remove the crontab file.

To prevent this, we will add a function to /etc/profile file to enable this option system-wide.

Lets see the usage of crontab -l, -r, options.

General Crontab commannd Usage

Here we will see how crontab works.

### Lists crontab file
[root@nglinux ~]# crontab -l
1 1 1 1 1 echo "hello"
[root@nglinux ~]# 

### removes crontab file
[root@nglinux ~]# crontab -r
[root@nglinux ~]#

### Now list again, it will say no crontab for root user.
[root@nglinux ~]# crontab -l
no crontab for root
[root@nglinux ~]# 

Different options of crontab file

	
-e	(edit user's crontab)
	-l	(list user's crontab)
	-r	(delete user's crontab)
	-i	(prompt before deleting user's crontab)
	-s	(selinux context)

 

Creating custom crontab command

[root@nglinux ~]# cat /etc/profile | tail -10
function crontab()
{
if [ $1 == "-r" -o $1 == "-sr" -o $1 == "-rs" ]; then
echo "-r option removes the crontab file."
echo "To remove the file use the option '-ir' to interactively remove crontab file"
else
command crontab $1
fi

}
[root@nglinux ~]# 

Output/Usage of Crontab function

### Usage via root user

[root@nglinux ~]# crontab -l
no crontab for root

[root@nglinux ~]# crontab -r
-r option removes the crontab file.
To remove the file use the option '-ir' to interactively remove crontab file


### usage via nglinux user

[root@nglinux ~]# su - nglinux
Mysql password is root/redhat
PHPMyAdmin can be accessed at http://localhost/phpmyadmin
Apache and FTP Server already setup.
Your IP addr:10.0.2.15 addr:172.21.49.107

NGEL System Console can be accessed at URL http://localhost/system
Run NGELINUX_HARDDISK_INSTALL to create partitions and install this live CD on your system hard disk
Run NGELINUX_INSTALL to copy block by block your ISO file to a USB or Complete Hard disk

[nglinux@nglinux ~]$ crontab -l
no crontab for nglinux

[nglinux@nglinux ~]$ crontab -r
-r option removes the crontab file.
To remove the file use the option '-ir' to interactively remove crontab file
[nglinux@nglinux ~]$ 

Leave a Reply

Your email address will not be published.