You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

rbash是否限制函数使用?如何禁用rbash用户的函数声明与执行?

禁用rbash中用户声明和执行函数的方法

核心方案:开启bash的no_function_defs选项

bash自带no_function_defs shell选项,开启后会直接禁止所有函数定义操作,包括:(){ :|:& };:这类无需显式声明的函数语法。

具体配置步骤

  • 编辑受限用户的shell启动配置文件(如/etc/rbashrc或用户家目录下的~/.bashrc,注意rbash下用户无法自行修改该文件,需由管理员预先配置),添加以下内容:
    # 开启禁止函数定义的选项
    shopt -s no_function_defs
    
    # 清空所有通过环境变量传入的预定义函数
    unset "${!BASH_FUNC_@}"
    
    # 禁用shopt命令,防止用户关闭no_function_defs选项
    disable shopt
    

验证效果

当用户尝试定义函数时,会收到类似如下的错误提示:

bash: function definition not allowed in this shell

此时用户无法创建任何自定义函数,自然也就无法执行fork bomb这类依赖函数的恶意操作。

额外注意事项

  • 确保受限用户的$PATH仅包含安全的系统命令目录,且目录下的命令均为经过审核的安全工具,避免用户通过其他命令间接执行危险操作。
  • 保留rbash的默认限制(如禁止cd、重定向输出、修改环境变量等),不要随意放宽权限。

内容的提问来源于stack exchange,提问作者user12334293

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 02:21:04