rbash 是一种受限的 bash shell,它通过禁用 cd 命令、禁止修改 path 环境变量、不允许使用绝对路径或当前目录执行命令以及限制输出重定向等手段来限制用户行为。要配置用户只能运行特定命令,首先需创建专用用户并设置其默认 shell 为 rbash;其次,在用户目录下建立包含允许命令软链接的 bin 目录,并固定该用户的 path 环境变量指向此目录;最后,还需禁止用户修改关键配置文件,并考虑额外措施如 chroot 或容器技术以增强隔离性。此外,应注意权限管理、测试限制效果及防范潜在绕过方法,确保构建出的环境安全可靠。
Linux系统中,有时我们需要限制某些用户的操作权限,让他们只能执行特定的命令。一个常见的做法是使用受限 shell(restricted bash,简称 rbash)。通过合理配置,可以有效防止用户随意切换目录、执行任意命令或修改环境变量等行为。
rbash 是 bash 的一种受限模式,它对用户的 shell 行为做了很多限制,比如:
这些限制使得用户只能在预设的路径下执行白名单中的命令,非常适合用于构建“只允许运行特定程序”的环境。
要启用 rbash,通常的做法是将用户的默认 shell 设置为 /bin/rbash,或者在启动 bash 时加上 -r 参数。
要让某个用户只能运行你允许的命令,需要从以下几个方面入手:
首先创建一个新用户,并将其默认 shell 设置为 rbash:
useradd -m -s /bin/rbash limiteduser passwd limiteduser
这一步完成后,该用户登录后就会进入受限 shell 环境。
由于 rbash 不允许用户修改 $PATH,你需要手动为该用户设置一个固定的路径,只包含你想允许执行的命令。
以 /home/limiteduser/bin 为例,你可以这样做:
mkdir /home/limiteduser/bin chmod 755 /home/limiteduser/bin
然后在这个目录中创建指向允许命令的软链接:
ln -s /bin/ls /home/limiteduser/bin/ ln -s /usr/bin/cat /home/limiteduser/bin/
再编辑用户的 .bash_profile 文件,强制其 PATH 指向这个目录:
export PATH=/home/limiteduser/bin
这样用户就只能运行你在 bin 目录中提供的命令了。
为了进一步限制用户,建议做以下几点:
chown root:root /home/limiteduser/.bash_profile chmod 644 /home/limiteduser/.bash_profile
确保用户无法通过其他方式运行命令,比如 Python、vi 的 shell 调用等。
可以考虑使用 chroot 或者容器技术来进一步隔离环境,但这属于更高级的配置。
基本上就这些步骤。只要路径控制得当,配合 rbash 的限制机制,就能实现一个相对安全的“命令白名单”环境。虽然不复杂,但确实容易忽略细节,比如权限设置和命令覆盖范围,稍有不慎就可能留下漏洞。
以上就是如何让Linux用户只能执行特定命令 rbash限制shell配置指南的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号