El requisito aquí es que ningún usuario que no sea root debe poder editar las entradas de crontab. La publicación describe los pasos para hacerlo. Hay tres formas de lograr esto:
1. Deshabilite el ssh del usuario no root en el sistema, lo que a su vez deshabilita el inicio de sesión de shell para un usuario no root.
2. Agregue el nombre de usuario al archivo /etc/cron.deny , cada usuario por línea (método típico que afecta solo a los usuarios enumerados en el archivo).
# cat /etc/cron.deny oracle
La otra solución fácil es tener el archivo /etc/cron.deny vacío y agregar solo el nombre de usuario root al archivo /etc/cron.allow . Esto permite que solo el usuario root modifique/agregue entradas cron.
Nota :Asegúrese de que no haya conflicto entre el archivo /etc/cron.allow y /etc/cron.deny. Consulte la publicación a continuación para obtener más información sobre cómo crontab valida el acceso del usuario a cron.UNIX/Linux:Cómo crontab valida el acceso en función de los archivos cron.allow y cron.denyVerifique el usuario denegado con la creación de una entrada crontab. Debería darte un error como se muestra a continuación.
# crontab -e You (oracle) are not allowed to use this program (crontab) See crontab(1) for more information
3. Otro enfoque agresivo es eliminar el permiso de ejecución del comando crontab. Esto, a su vez, afecta la capacidad de todos los usuarios no root para modificar/agregar entradas cron.
Permisos predeterminados del archivo /usr/bin/crontab:
# ls -lrt /usr/bin/crontab -rwsr-xr-x 1 root root 51784 Jul 22 2016 /usr/bin/crontab
Después de eliminar el permiso de ejecución:
# chmod 700 /usr/bin/crontab # ls -lrt /usr/bin/crontab -rwx----- 1 root root 51784 Jul 22 2016 /usr/bin/crontabNota:asegúrese de tener una copia de seguridad del archivo /usr/bin/crontab antes de cambiar su permiso de archivo. También tenga en cuenta que, después de actualizar o reinstalar un paquete, este cambio se revertirá a los valores predeterminados.
tenga en cuenta los permisos predeterminados del archivo /usr/bin/crontab antes de cualquier cambio:
# stat /usr/bin/crontab File: `/usr/bin/crontab' Size: 51784 Blocks: 104 IO Block: 4096 regular file Device: fd00h/64768d Inode: 1318020 Links: 1 Access: (4755/-rwsr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root) Access: 2017-09-13 09:39:27.192418684 +0530 Modify: 2016-07-22 12:50:39.000000000 +0530 Change: 2017-09-08 18:11:33.668586770 +0530
Verifique el usuario denegado con la creación de una entrada crontab:
# crontab -e bash: /usr/bin/crontab: Permission denied