FreeBSD安装sudo命令来执行命令

时间:2020-01-09 10:38:34  来源:igfitidea点击:

在FreeBSD服务器,sudo命令始终显示以下错误:

zsh: command not found: sudo
zsh:找不到命令:sudo

如何在FreeBSD 9.x/10.x/11.x/12.x系统下安装sudo命令?

解决方法:
sudo是一个程序,旨在允许sysadmin向用户授予有限的root特权并记录root活动。
与su不同,sudo会根据自己的密码而不是目标用户的密码对用户进行身份验证。

Sudo允许系统管理员委派权限,以赋予某些用户(或用户组)以root或其他用户身份运行某些(或全部)命令的能力,同时提供命令及其参数的审核跟踪。
这允许将特定命令委派给特定主机上的特定用户,而无需在它们之间共享密码。

FreeBSD安装sudo命令

  • 打开终端应用程序
  • 对于远程服务器,请使用ssh命令登录。例如:ssh ec2-user @ ec2-freebsd-server-ip
  • 更新您的pkg数据库,运行:pkg update && pkg upgrade
  • 通过执行pkg install sudo命令在FreeBSD上安装sudo。
  • 根据需要在FreeBSD上配置sudo访问

让我们详细了解如何在FreeBSD系统上安装和使用sudo。

使用FreeBSD端口系统安装sudo

要安装端口,请执行:

# cd /usr/ports/security/sudo/ && make install clean

FreeBSD使用pkg_add或pkg命令安装sudo命令

要添加二进制软件包,请在较旧版本的FreeBSD(例如FreeBSD 9.x)上使用pkg_add,运行:

# pkg_add -rv sudo

或者

# pkg_add -r sudo

输出示例:

Fetching ftp://ftp.freebsd.org/pub/FreeBSD/ports/amd64/packages-9.0-release/Latest/sudo.tbz... Done.

对于最新版本的FreeBSD,例如FreeBSD 11.x +,请使用pkg命令:

# pkg install sudo

如何配置sudo?

默认配置文件位于/usr/local/etc/sudoers中。
该文件必须使用visudo命令作为根文件进行编辑。
不使用visudo可能会导致语法或文件权限错误,从而阻止sudo运行。

% su 

# visudo

允许用户Hyman通过sudo运行所有管理

Hyman ALL=(ALL) ALL

允许组轮成员执行任何命令:

%wheel ALL=(ALL) ALL

保存并关闭文件。

使用sudo成为root用户

执行以下命令以目标用户身份运行shell:

% sudo -s

输出示例:

We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:
 
    #1) Respect the privacy of others.
    #2) Think before you type.
    #3) With great power comes great responsibility.
 
Password: <Enter Your Own Password Here>
fdbsd9#

在以下示例中,以目标用户身份运行登录shell程序:

$ sudo -i

输出示例:

Password:
root@examplejail:~ #

使用id命令验证用户名和组名以及数字ID:

$ id

有关详细信息,请参见"如何在FreeBSD服务器上向用户添加,删除和授予Sudo特权"。

以root用户身份运行任何命令

语法为:

sudo /path/to/command
sudo /path/to/command arg1

在此示例中,重新启动ftpd服务:

% sudo /etc/rc.d/ftpd restart

输出示例:

Password: <Enter Your Own Password Here>
Stopping ftpd.
Starting ftpd.

如何列出用户权限或检查特定命令

要查看允许您运行的命令,请执行:

$ sudo -l

$ sudo -ll

输出示例:

User Hyman may run the following commands on examplejail:

Sudoers entry:
    RunAsUsers: ALL
    Commands:
	ALL