我有一个用户,他的rbash
默认 shell 是 (为了限制他的权限)。我还更改了他的默认bin
目录,以切断他的 中的大多数二进制文件PATH
。用户应该不时更改密码。因此,哪些二进制文件应该可以访问,以便他可以通过 ssh 更改密码。我在passwd
他的 bin 目录中创建了一个符号链接,但他仍然无法使用 ssh 更改密码。
答案1
受限 bash shell 中的用户应该能够成功运行passwd
命令,只要它们有位置(包含目录的完整路径)passwd
在其搜索路径中查找工作二进制文件。
这是通常的rbash
因为默认限制仅适用于:
• 使用 cd 更改目录
• 设置或取消设置 SHELL、PATH、ENV 或 BASH_ENV 的值
• 指定包含 / 的命令名称
• 指定包含 / 的文件名作为 . 内置命令的参数
• 将包含斜杠的文件名指定为 hash 内置命令的 -p 选项的参数
• 启动时从 shell 环境导入函数定义
• 在启动时从 shell 环境中解析 SHELLOPTS 的值
• 使用 >、>|、<>、>&、&> 和 >> 重定向运算符重定向输出
• 使用 exec 内置命令将 shell 替换为另一个命令
• 使用 -f 和 -d 选项向启用内置命令添加或删除内置命令
• 使用 enablebuiltin 命令启用已禁用的 shell 内置命令
• 为命令内置命令指定 -p 选项
• 使用 set +r 或 set +o restricted 关闭限制模式。
但是,如果你要添加一些额外的严格措施,而不是将rbash
其用作用户的 shell,你可能需要查看实际passwd
需要访问、打开或写入的内容strace
像这样:
strace -e open,openat,write,access passwd