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 或普通权限操作定时任务。

相关推荐
柏木乃一29 分钟前
Linux初步认识与指令与权限
linux·运维·服务器·shell·权限
Joemt35 分钟前
ubuntu源码编译安装cmake高版本、pybind11安装、crow使用
linux·运维·ubuntu
huohuopro1 小时前
在linux(ubuntu)服务器上安装NTQQ并使用
linux·ubuntu
Jooolin1 小时前
Ubuntu?Centos?还是 redhat?Linux 系统选哪个?
linux·ubuntu·ai编程
Sadsvit1 小时前
Linux 进程管理与计划任务
linux·服务器·网络
bigcarp2 小时前
linux + 宝塔面板 部署 django网站 启动方式:uwsgi 和gunicorn如何选择 ?
linux·运维·django
爱凤的小光2 小时前
图漾相机-ROS1_SDK_ubuntu 4.X.X版本编译
linux·数码相机·ubuntu
六点半8883 小时前
【Linux】vim—基操
linux·vim·excel
CCF_NOI.4 小时前
从底层架构到多元场景:计算机构成与应用的深度剖析
大数据·linux·运维·服务器·计算机