在 Ubuntu 中,我可以执行此操作以添加新组和用户:
groupadd group123
useradd -m -s /bin/bash -g group123 user123
usermod -a -G sudo,www-data user123
我能够在 FreeBsd 中做到这一点:
sudo pw groupadd group123
sudo pw useradd user123 -m -s /bin/tcsh -g group123
但这失败了:
sudo pw usermod -a -G sudo,www-data user123
因为 sudo 组不存在。为什么不? “sudo pw”不是暗示它必须吗?如果没有,如何正确添加呢?
答案1
FreeBSD 上没有名为“sudo”的默认组。命令“sudo”与名为“sudo”的组的存在之间没有任何联系。
您可以使用以下命令查看系统上有哪些组:
$ cat /etc/group
在许多 Linux 发行版(包括 Ubuntu)上,都有一个名为“sudo”的组是很常见的。在 FreeBSD 上,最常见的是使用“wheel”或“operators”组来达到相同的目的。
该sudo
程序读取配置文件。该文件确定允许哪些用户和组执行哪些操作。
如果 sudo 是通过pkg
软件包安装程序安装的,那么您可以在此处找到 sudo 配置文件:
/usr/local/etc/sudoers
配置文件中有趣的部分是以下几行:
## Uncomment to allow members of group wheel to execute any command
# %wheel ALL=(ALL) ALL
## Same thing without a password
# %wheel ALL=(ALL) NOPASSWD: ALL
## Uncomment to allow members of group sudo to execute any command
# %sudo ALL=(ALL) ALL
我的猜测是有人将您的系统设置为允许“wheel”组使用 sudo 并将您的用户添加到该组。 “sudo”组根本不存在,您无法将任何人添加到不存在的组中。
您应该将用户添加到“wheel”组(或中定义的任何组/usr/local/etc/sudoers
) - 或者您应该创建组“sudo”并确保它没有被注释掉/usr/local/etc/sudoers
进一步阅读部分13.14。与 Sudo 共享管理在 FreeBSD 手册中。命令的手册页须藤和配置文件整整一个月。