📜  Linux 中的 sudo 命令和示例

📅  最后修改于: 2022-05-13 01:57:32.454000             🧑  作者: Mango

Linux 中的 sudo 命令和示例

在Linux中须藤(S UPERÚSER DO)命令通常被用作一些命令,只有超级用户被允许运行的前缀。如果您在任何命令前添加“sudo”前缀,它将以提升的权限运行该命令,或者换句话说,允许具有适当权限的用户以另一个用户(例如超级用户)的身份执行命令。这相当于 Windows 中的“以管理员身份运行”选项。 sudo 选项让我们有多个管理员。
这些可以使用sudo命令的用户需要在位于“/etc/sudoers”sudoers文件中有一个条目。请记住,要编辑或查看 sudoers 文件,您必须使用 sudo 命令。要编辑 sudoers 文件,建议使用“visudo”命令。
默认情况下,sudo 要求用户使用用户密码而不是 root 密码本身对自己进行身份验证。

sudoers 文件:

句法:

选项

1. -V: -V(版本)选项使 sudo 打印版本号并退出。如果调用用户已经是 root,则 -V 选项将打印出 sudo 编译时使用的默认值列表。

2. -l: -l(列表)选项将打印出当前主机上允许(和禁止)用户的命令。

这表明当前用户可以将所有命令用作 sudo。

3. -h 或 –help: -h(帮助)选项使 sudo 打印使用消息并退出。

4. -v:如果给定 -v(验证)选项,sudo 将更新用户的时间戳,并在必要时提示用户输入密码。这会将 sudo 超时再延长 5 分钟(或在 sudoers 中给出),但不会运行命令。这不会给出任何输出。

5. -k: sudo 的 -k (kill) 选项使用户的时间戳无效。因此,下次运行 sudo 时将需要密码。此选项不需要密码,添加此选项是为了允许用户从 .logout 文件中撤销 sudo 权限。

6. -K:与 -k 选项类似,-K(确定杀死)选项用于完全删除用户的时间戳。同样,此选项不需要密码。

7. -b: -b(后台)选项告诉 sudo 在后台运行给定的命令。请注意,如果使用 -b 选项,则无法使用 shell 作业控制来操作进程。

8. -p :-p(提示)选项允许您覆盖默认密码提示并使用自定义提示。支持以下百分比 ('%') 转义:



%u 扩展为调用用户的登录名;

%U 扩展为将运行命令的用户的登录名(默认为 root);

%h 扩展为不带域名的本地主机名;

%H 扩展为本地主机名,包括域名(仅当机器的主机名是完全限定的或设置了“fqdn”sudoers 选项时);

%%(两个连续的 %字符)被折叠成一个 %字符。

通常我们通过 sudo 命令得到这个:

使用 sudo -p 我们得到,

9. -n:使用 -n 选项,如下所示,将执行命令而不提示输入密码。当我们希望将某些 sudo 命令作为后台作业(或在 shell 脚本中)运行时,这非常有用,我们不希望 sudo 询问密码。 -n 选项代表非交互式。



10. -u: -u(用户)选项使 sudo 以 root 以外的用户身份运行指定的命令。要指定 uid 而不是用户名,请使用 #uid。

11. -s: -s (shell) 选项运行由 SHELL 环境变量指定的 shell,如果它被设置或在文件 passwd 中指定的 shell。

12. -H: -H (HOME) 选项将 HOME 环境变量设置为 passwd 中指定的目标用户(默认为 root)的主目录。默认情况下,sudo 不会修改 HOME。

13. -S: -S (stdin) 选项使 sudo 从标准输入而不是终端设备读取密码。

14. -a: -a(身份验证类型)选项使 sudo 在验证用户时使用指定的身份验证类型,这是 /etc/login.conf 允许的。系统管理员可以通过在 /etc/login.conf 中添加“auth-sudo”条目来指定特定于 sudo 的身份验证方法列表。

15. –: – 标志表示 sudo 应该停止处理命令行参数。它与 -s 标志结合使用最为有用。

环境变量

这些环境变量由 sudo 使用

TagDescription
EDITORDefault editor to use in -e (sudoedit) mode if VISUAL is not set
HOME

In -s or -H mode (or if sudo was configured with the
–enable-shell-sets-home option), set to homedir of the target user

PATH

Set to a sane value if the secure_path sudoers option is set.

SHELL

Used to determine shell to run with -s option



SUDO_PROMPT

Used as the default password prompt

SUDO_COMMAND

Set to the command run by sudo

SUDO_USER

Set to the login of the user who invoked sudo

SUDO_UID

Set to the uid of the user who invoked sudo

SUDO_GID

Set to the gid of the user who invoked sudo

SUDO_PS1

If set, PS1 will be set to its value

USER

Set to the target user (root unless the -u option is specified)

VISUAL

Default editor to use in -e (sudoedit) mode