linux里怎么禁用 其他用户使用sudo添加定时器,例如创建的tomcat用户禁止使用 sudo crontab -u tomcat -e 添加定时器

要禁止 tomcat 用户通过 sudo crontab -u tomcat -e 添加定时任务,需从 sudo 权限控制crontab 访问限制两方面入手。以下是具体步骤:


一、核心思路

  1. 禁止 tomcat 用户使用 sudo 提权执行 crontab
    • 修改 /etc/sudoers 配置,移除 tomcat 用户执行 crontab 的权限。
  2. 全局限制 tomcat 用户的 crontab 访问
    • 通过 /etc/cron.deny 文件或权限控制,彻底禁止该用户使用定时任务。

二、操作步骤

1. 检查当前 sudo 权限

首先确认 tomcat 用户在 /etc/sudoers 中的配置:

bash 复制代码
sudo grep "tomcat" /etc/sudoers /etc/sudoers.d/*

如果输出包含类似以下内容,说明该用户拥有 crontab 的提权权限:

复制代码
tomcat ALL=(ALL) NOPASSWD: /usr/bin/crontab
2. 移除 sudo 权限

通过 visudo 安全编辑配置,移除相关权限:

bash 复制代码
sudo visudo

找到与 tomcat 相关的行(如 tomcat ALL=(ALL) NOPASSWD: ...),删除或注释掉允许执行 crontab 的部分:

bash 复制代码
# tomcat ALL=(ALL) NOPASSWD: /usr/bin/crontab  # 注释此行
3. 使用更精细的 sudo 权限控制

如果需保留其他 sudo 权限,仅禁止 crontab,可添加如下规则:

bash 复制代码
# 允许 tomcat 执行其他命令,但禁止 crontab
tomcat ALL=(ALL) ALL, !/usr/bin/crontab

或针对特定参数禁止(更严格):

bash 复制代码
tomcat ALL=(ALL) ALL, !/usr/bin/crontab -u tomcat*
4. 全局禁止 crontab 访问

通过 /etc/cron.deny 确保 tomcat 用户无法直接使用 crontab

bash 复制代码
sudo sh -c 'echo "tomcat" >> /etc/cron.deny'
5. 验证配置

切换到 tomcat 用户测试:

bash 复制代码
sudo su - tomcat

# 尝试使用 sudo 执行 crontab(应失败)
sudo crontab -u tomcat -e
# 预期输出:
# Sorry, user tomcat is not allowed to execute '/usr/bin/crontab -u tomcat -e' as root.

三、其他安全加固

1. 检查现有定时任务

清理 tomcat 用户可能已添加的任务:

bash 复制代码
# 查看任务列表
sudo crontab -u tomcat -l

# 删除所有任务
sudo crontab -u tomcat -r
2. 审计可疑活动

检查系统日志,确认是否有异常操作:

bash 复制代码
sudo grep "tomcat" /var/log/auth.log
# 或(CentOS/RHEL)
sudo grep "tomcat" /var/log/secure
3. 限制用户 Shell 访问

tomcat 用户仅用于服务运行(非交互式登录),可将其 Shell 设置为 /sbin/nologin

bash 复制代码
sudo usermod -s /sbin/nologin tomcat

四、总结

操作目标 实现方法
移除 sudo crontab 权限 修改 /etc/sudoers,禁止执行 /usr/bin/crontab
禁止普通 crontab 使用 添加 tomcat/etc/cron.deny
清理残留任务 使用 crontab -u tomcat -r 删除现有任务
防止提权后门 审计 sudoers 文件,限制用户权限粒度

通过以上步骤,可彻底禁止 tomcat 用户通过 sudo 或普通权限操作定时任务。

相关推荐
☆凡尘清心☆22 分钟前
CentOS Stream 9 源码编译搭建 Zabbix7.0.29 完整部署方案(部署成功)
linux·运维·centos
Escalating_xu25 分钟前
【Linux】进程间通信:从匿名管道、FIFO 到共享内存、消息队列与信号量
java·linux·面试
予昊34 分钟前
Linux 资源控制实战分析:用 LXC 亲手造一个 “迷你虚拟机“
linux·运维·服务器
allforgood42 分钟前
管理网络安全
linux
灵晔君1 小时前
【Linux】进程控制(一)——进程创建、进程终止与进程等待
linux·c语言·算法
wsad05321 小时前
CentOS 10 上使用 Docker Compose 部署 Discuz X5.0 论坛完整教程
linux·docker·centos·discuz
张宇Joaquin1 小时前
openEuler编译和更换内核的方法
java·linux·服务器
小此方1 小时前
Re:Linux系统篇(五十六)线程篇 · 九:基于阻塞队列的生产者消费者模型与条件变量
linux·运维·服务器
迷途之人不知返1 小时前
自动化工程的构建
linux·自动化
Escalating_xu1 小时前
【Linux】库制作与链接原理:从静态库、动态库到 ELF、重定位、GOT 与 PLT
linux·运维·服务器