许多用户在 FreeBSD 环境下尝试用普通账户通过 SSH 登录后,执行 su 或 su - root 指令切换到 root,系统却直接返回“su: Sorry”——这一错误提示是否让你感到困惑?刚接触 FreeBSD 的朋友常常在此卡住。实际上并非密码输入错误,而是 FreeBSD 对 su 命令的用户权限施加了额外限制。
问题根源在于:FreeBSD 默认仅允许属于 wheel 组(root 的基本属组,组 ID 为 0)的用户执行 su 提权为 root。换言之,即便你知晓 root 密码,若当前用户不在 wheel 组中,系统同样拒绝切换。这种设计旨在防止任意用户通过 su 未经授权提升权限,从而增加一道安全屏障。
解决方式非常直接——将需要管理员权限的普通用户加入 wheel 组。操作步骤如下:
首先使用 root 账户从终端登录(或直接本地登录),然后编辑组配置文件 /etc/group。找到 wheel 那一行,在冒号后面添加用户名,多个用户用逗号分隔。例如,要将用户 hxh 加入,修改后的内容如下:
wheel:*:0:root,hxh daemon:*:1: kmem:*:2: ...
保存退出后,用 hxh 用户重新 SSH 登录,再执行 su 并输入 root 密码,一切正常,成功切换到 root。操作就是这么简单。
归根结底,FreeBSD 在这一安全设计上比某些 Linux 发行版更为严格——并非每个用户都能随意使用 su,只有经过明确授权的 wheel 组成员才具备资格。对于服务器管理员而言,这反而是一个优势,至少减少了一个可能被滥用的入口。当然,如果你实在觉得不便,也可以通过修改 pam.conf 或 login.access 来放宽限制,但那已属于另一个话题了。
