Linux 中的 sudo 命令和示例
在Linux中须藤(S UPERÚSER DO)命令通常被用作一些命令,只有超级用户被允许运行的前缀。如果您在任何命令前添加“sudo”前缀,它将以提升的权限运行该命令,或者换句话说,允许具有适当权限的用户以另一个用户(例如超级用户)的身份执行命令。这相当于 Windows 中的“以管理员身份运行”选项。 sudo 选项让我们有多个管理员。
这些可以使用sudo命令的用户需要在位于“/etc/sudoers”的sudoers文件中有一个条目。请记住,要编辑或查看 sudoers 文件,您必须使用 sudo 命令。要编辑 sudoers 文件,建议使用“visudo”命令。
默认情况下,sudo 要求用户使用用户密码而不是 root 密码本身对自己进行身份验证。
sudoers 文件:
句法:
sudo -V | -h | -l | -v | -k | -K | -s | [ -H ] [-P ] [-S ] [ -b ] |
[ -p prompt ] [ -c class|- ] [ -a auth_type ] [-r role ] [-t type ]
[ -u username|#uid ] commandsudo -V | -h | -l | -L | -v | -k | -K | -s | [ -H ] [-P ] [-S ] [ -b ] |
[ -p prompt ] [ -c class|- ] [ -a auth_type ] [-r role ] [-t type ]
[ -u username|#uid ] command
选项
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 使用
Tag | Description |
---|---|
EDITOR | Default 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 |
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 |