Linux教程
Linux目录
Linux命令
Linux用户
Linux文件
Linux进程
Linux查询
Linux I/O
Linux正则
Linux安全
Linux shell
Linux网络
Linux VI
Linux 系统命令
Linux 其他

Linux sudo

Linux sudo

简介

Linux sudo命令代表超级用户执行。通常,它用作允许超级用户执行的一些命令的前缀。
如果我们将命令与其他命令一起添加前缀,它将以较高的特权执行该命令。换句话说,它将允许用户以及具有适当权限的用户像超级用户一样使用其他用户的命令。
它等同于Windows中的选项"以管理员身份运行" 。 sudo选项允许我们拥有多个管理员。可以应用sudo命令的用户要求将文件sudoers内的条目放置在"/etc/sudoers/" 。
注意: 要查看或编辑文件,我们必须应用sudo命令。为了编辑文件,建议应用" visudo"命令。
默认情况下,sudo命令需要用户验证自己以及作为用户密码的密码,而不是root密码本身。

sudo命令的语法

下面提到了sudo命令的语法:
sudo OPTION... COMMAND 

sudo命令中的选项

下面解释了sudo命令中的一些重要选项:
1、-V: 代表版本。此选项启用sudo命令以打印版本号并退出。如果发出请求的用户已经是root用户,则-V选项将打印出默认的sudo列表暂停。
Linux sudo
2、-l: 代表列表。此选项将有助于在当前主机上打印出允许用户使用的各种命令。
它表明当前用户可以以sudo的形式应用每个命令。
Linux sudo
3、-h或-help: 在此选项中,h代表 help 。此选项启用sudo命令,以打印有关使用情况并退出的消息。
Linux sudo
4、-v: 代表 validate 。如果sudo命令将更新用户的时间戳,则必要时validate会提示您输入用户密码。它将sudo命令超时延长其他5分钟,但不执行命令。它不会提供任何结果。
5、-k: 代表 kill 。此选项使用户的sudo时间戳无效。因此,下次执行sudo命令时,将需要密码。-k选项不需要任何密码,它包含在其中,它允许用户通过 .logout 文件撤消sudo命令的权限。
6、-b: 代表背景。此选项通知sudo命令在后台执行所提供的命令。
注意: 如果应用此选项,则无法应用Shell作业控件来操纵该过程。
Linux sudo
7、-K: 此选项与-k选项相同。但是,它代表确定杀死。此选项适用于完全删除用户的时间戳。同样,它不需要任何密码。
8、-p: 表示提示。此选项允许我们覆盖密码提示(默认)并应用自定义提示。允许有百分之几的转义,如下所示:
%u被开发为调用用户的登录名。 %U被开发为用户的登录名 %h被开发为没有任何域名称的主机名(本地)。 %H被开发为具有域名称的主机名(本地)(仅当计算机的主机名完全合格时) %%(两个连续字符)可以分成一个单独的%字符。 Linux sudo
9、-n: 此选项将在不要求输入密码的情况下运行命令。如果我们希望执行一些命令作为后台任务(或在Shell脚本内部),而这在我们不希望使用sudo命令询问密码的情况下非常有用。此选项是非交互式的缩写。
10、-u: 代表用户。此选项使sudo命令以root用户身份执行除root以外的描述的命令。要指定 uid 而不是用户名,我们可以使用 #uid 。
11、-H: 代表 HOME 。如passwd文件中所述,此选项可以为根用户的主目录设置 HOME环境变量。默认情况下,sudo命令不会更改HOME。
12、-s: 它代表 shell 。此选项执行设置时通过 SHELL环境变量描述的shell或 passwd 文件中描述的shell。
13、-S: 代表 stdin 。此选项使sudo命令可以通过标准输入而不是终端设备读取密码。
14、-: 此选项说明sudo命令必须停止处理命令行的参数。结合-s标志最有用。
15、-a: 代表身份验证类型。如果/etc/login/.config 允许,此选项将使sudo命令在验证用户时使用所描述的身份验证类型。
系统管理员可能会描述通过在/etc/login/.config 中包含" auto-sudo" 项,来指定sudo特定身份验证的方法的列表。
Linux sudo

sudo命令中的环境变量

以下是一些环境变量sudo命令应用的内容:
标签 说明
EDITOR 这是默认的编辑器,当不固定VISUAL时,可以在-e模式(sudoedit)中使用。
HOME 它将在-H或-s模式下(或在使用选项-enable-shell-sets-home形成sudo命令时)设置为用户(目标)的homedir。
PATH 在固定了secure_path sudoers选项的情况下,将其设置为合理的值。
SHELL 它可以用于确定要使用-s选项执行的shell。
SUDO_COMMAND 它设置为由sudo命令执行的命令。
SUDO_PROMPT 它可以用作密码提示(默认)。
SUDO_USER 它设置为请求sudo命令的用户登录名。
SUDO_UID 它设置为请求sudo命令的用户uid。
SUDO_GID 它设置为请求sudo命令的用户的gid。
SUDO_PS1 如果设置,PS1将固定为其值。
USER 它设置为用户(除非描述选项-u,否则为root)。
VISUAL 这是默认编辑器,在-e模式(sudoedit)中使用。

sudo命令的历史记录

Cliff Spencer和Robert Coggeshall于1980年在计算机科学系SUNY/Buffalo编写了实际的子系统。罗伯特·科格斯霍尔(Robert Coggeshall)随身携带须藤到科罗拉多博尔德大学。实质上,1986年至1993年之间,工程学院和科罗拉多大学博尔德分校计算机科学系的IT成员以及托德·米勒(Todd C. Miller)的应用科学人员对功能和代码进行了更改。该版本自1994年以来由Todd .C Miller(OpenBSD开发人员)管理,并自1999年以来以ISC风格的许可证共享。微软拥有sudo特权。狭义地,声明被限制在特定的GUI而不是sudo方法。

sudo命令的设计

用户可以在必要时向sudo提供密码多余的er,与su命令不同。它允许可访问的用户执行合格的特权,而无需担心其他帐户的密码的保密性。
当配置文件允许用户访问时,在身份验证之后,系统会请求声明的命令。 sudo命令在每个伪终端的宽限时间(通常为5分钟)内保留了用户的调用权限,并且允许用户作为要求保护的用户执行各种连续命令,而不必再次提供任何密码 可能将sudo命令配置为记录作为审核和安全功能运行的每个命令。 当时,用户在未列出配置文件的情况下调用sudo命令的镜头,向该用户显示了一个异常插图,说明该镜头已被记录。 将在系统内部保存一个条目,并且将通过邮件通知root用户。

sudo命令的配置

/etc/sudoers 文件包括有权运行命令的用户组或用户列表。包含根用户或其他列出的用户的权限的一组命令。

sudo命令的影响

在一些系统发行版中,sudo命令已取代了用法(默认)。超级用户用于各种管理操作的不同登录名,最重要的是在一些Apple的macOS和Linux发行版中。
它可以防止一些漏洞利用,并且还允许对admin命令进行更受保护的日志记录。

RBAC

sudo命令可用于与SELinux协作在基于角色的访问控制内的各种类型的角色之间进行转换。

类似的程序和工具

visudo是命令行的实用程序,允许以故障安全的方式编辑sudo的配置文件。它执行语法和完整性检查,还可以防止同时进行多个编辑和锁定。
runas程序有助于在Microsoft Windows中实现相同的性能。但是,它不能将当前的长命令行传递给子级,环境变量或目录。
它不支持常规提升,但可以像其他用户一样执行子级。对于Windows,使用 Hamilton C shell 添加了一个真正的sudo和su,该sudo和su可以传输每个状态详细信息并以其他用户身份或更高身份开始子级。
该GUI可用适用于sudo(特别是 gksudo ),但在Debian中已弃用,在Ubuntu中也不再使用。其他各种类型的用户界面不是直接在sudo上设计的,而是为管理目标提供了相同的特权提升(临时),例如 Mac OS X的授权服务,Microsoft Windows内的用户帐户控制和 <在类似于unix的操作系统中是strong> pkexec 。
自5.8版OpenBSD(2015年10月)以来, doas 可用。

su vs. sudo

如果我们习惯了更经典的Linux设置,则可以使用它来替代sudo命令。

su vs. sudo

然后我们习惯于使用su命令来获得root特权。我们也可以发出su命令,以有效地以root用户身份登录(root用户的主目录成为我们的主目录)。
使用这些分布,我们还可以作为路由用户登录。但是,以root用户身份登录不是一个好主意。如果我们要应用依赖于su命令并允许root用户登录的发行版,则以我们的标准用户身份和su命令登录到root用户。
最有可能的是,我们会注意到我们可以•使用基于sudo的发行版以root用户身份登录。实际上,在某些发行版(如Ubuntu)中,root用户的帐户已被禁用。
我们无法以root用户身份登录,而无法使用su命令成为root用户。我们可以做的就是使用sudo命令发出这些命令以获得管理特权。

使用sudo命令

在Linux中执行管理应用程序有两种不同的方法。我们可以使用su命令更改超级用户或root用户,也可以利用sudo命令。
当我们在终端上利用时间时,sudo是我们将要使用的重要命令之一。经常使用。使用sudo命令而不是以root用户身份登录会受到更大的保护,因为我们可以在不知道root密码的情况下仅授予单个用户几个管理特权。
我们如何实现它取决于我们在哪个发行版上使用。少数发行版本允许root用户(例如 OpenSUSE,Red Hat 或 Fedora ),而少数发行版本不允许(例如 Debian 和 Ubuntu )。
使用sudo命令非常简单。例如,我们必须执行dpkg来安装软件。如果我们仅以标准用户身份运行 dpkg-i software.deb 命令,我们将收到一条错误消息,指出该用户无权运行该命令。
为什么默认情况下标准用户不能在Linux机器上安装各种应用程序。如果要在Linux机器上安装任何应用程序,我们需要具有超级用户的权限。
我们将改为运行 sudo dpkg-i software.deb 命令,以便我们可以成功执行安装。

安装sudo命令

大多数Linux发行版中都预先安装了sudo命令包。要确认该软件包已安装在我们的系统上,必须执行以下步骤:
首先,打开我们的终端。 输入sudo并单击输入按钮。 如果我们的系统上安装了sudo软件包,它将显示一条短消息。 否则,我们将通过一条消息通知,即未找到sudo命令。 如果未安装该软件包,则可以通过应用过度分发的软件包管理器来轻松安装此软件包。

在Fedora和CentOS上安装Sudo

$ yum install sudo 

在Debian和Ubuntu上安装Sudo

$ apt install sudo 

Linux sudo

更新sudo的命令

Linux sudo
昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4