centos 系统禁止普通用户使用crontab命令

本文介绍了如何通过cron.allow和cron.deny文件来控制哪些用户可以使用crontab命令。cron.allow优先级高于cron.deny,若用户不在允许列表中且在拒绝列表中,则无法执行crontab命令。

cron计划任务默认root用户与非root用户都可以执行,当然如果在安全方面想禁用这部分用户,则可以通过两个文件来解决:

  • cron.allow
  • cron.deny

cron.allow:定义允许使用crontab命令的用户
cron.deny:定义拒绝使用crontab命令的用户

这两个文件有优先级,普通用户在执行crontab命令的时候
1、系统先检测cron.allow文件是否存在;如果存在,则检测文件中存在的用户中是否有当前用户,检测通过则开始执行,检测不通过直接提示该用户没有执行权限

2、当系统没有检测到cron.allow文件存在的时候,则接下来检测cron.deny文件,看当前用户是否被deny掉,如果没有在cron.deny文件中检测到当前运行crontab的用户,则该命令可以成功执行,如果有检测到该用户在cron.deny文件中,则直接提示该用户没有执行权限


案例1:只允许root和www用户执行crontab命令,其他用户则禁止执行
在需要定义该策略的主机上面执行:
echo “www” > /etc/cron.allow


案例2:只拒绝anonymous用户执行crontab命令,其他用户都可以执行该命令:
rm -f /etc/cron.allow
echo “anonymous” > /etc/cron.deny

### 禁止多个UID为0的用户配置方法 在CentOS系统中,为了防止存在多个UID为0的用户,可以通过以下几种方式实现限制和监控。这些方法包括修改系统配置文件、使用PAM模块以及定期检查系统用户的脚本。 #### 1. 修改`/etc/login.defs`配置文件 在CentOS系统中,`/etc/login.defs`文件用于定义用户账户创建时的一些默认参数。可以通过设置`UID_MIN`和`UID_MAX`来限制普通用户的UID范围[^1]。确保普通用户的UID范围不包含0,例如: ```bash UID_MIN 500 UID_MAX 60000 ``` 这样可以避免通过常规用户创建命令(如`useradd`)生成UID为0的用户。 #### 2. 使用PAM模块限制UID为0的用户 PAM(Pluggable Authentication Modules)模块可以用来增强系统的安全性。通过配置PAM模块,可以限制只有特定用户能够拥有UID为0的权限[^2]。编辑`/etc/pam.d/system-auth`或`/etc/pam.d/password-auth`文件,添加如下内容: ```bash auth required pam_succeed_if.so uid != 0 quiet_success ``` 这行配置会拒绝任何尝试切换到UID为0的非root用户操作。 #### 3. 定期检查系统用户的脚本 可以编写一个定期运行的脚本来检查是否存在多个UID为0的用户,并发出警告或自动禁用多余的UID为0用户。以下是一个示例脚本: ```bash #!/bin/bash # 检查是否存在多个UID为0的用户 duplicate_root_users=$(awk -F: '($3 == 0) {print $1}' /etc/passwd) # 如果有多个UID为0的用户 if [ $(echo "$duplicate_root_users" | wc -l) -gt 1 ]; then echo "检测到多个UID为0的用户: $(echo "$duplicate_root_users")" # 禁用多余的UID为0用户(保留第一个) count=0 for user in $duplicate_root_users; do if [ $count -gt 0 ]; then usermod -L $user echo "已禁用用户: $user" fi ((count++)) done fi ``` 将此脚本添加到定时任务中以定期执行: ```bash crontab -e # 添加以下内容 0 * * * * /path/to/check_uid0_users.sh ``` #### 4. 禁用普通用户切换到root 通过修改`/etc/sudoers`文件或使用PAM模块,可以禁止普通用户通过`su`或`sudo`命令切换到root用户。例如,在`/etc/pam.d/su`文件中添加以下内容: ```bash auth required pam_wheel.so use_uid ``` 这将要求用户必须属于`wheel`组才能切换到root用户。 --- ### 注意事项 - 在进行上述配置前,请确保备份相关配置文件。 - 配置完成后,建议测试是否仍然可以正常登录并切换到root用户。 - 对于生产环境,建议结合日志监控工具(如`auditd`)进一步加强安全性。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值