sudo命令允许您以其他用户身份运行命令与程序,默认是root用户。如果您是个命令行用户,那么sudo是您将经常使用的命令之一。

使用sudo而不是以root用户身份登录会更安全,因为您可以为单个用户授予有限的管理权限,而无需让他们知道root用户密码。

sudo命令已预先安装在大多数Linux发行版中。要检查系统是否安装sudo命令,请使用快捷键ctrl+alt+t打开终端台,键入sudo,然后按Enter

如果您的系统已安装sudo,系统将显示一条简短的帮助消息,否则您将看到类似sudo command not found的信息。

如果你未安装sudo,则可以使用发行版的软件包管理器安装它,例如apt命令或者yum命令安装sudo。

如果你的计算机运行的是基于Debian的Linux发行版,例如Ubuntu,Linux mint,则可以运行命令sudo apt install sudo安装sudo。

如果你的计算机运行的是基于RedHat的Linux发行版,例如CentOS,Fedora,则可以运行命令yum install sudo安装sudo。

apt install sudo #for ubuntu and debian
yum install sudo #for CentOS and RedHat

语法与选项

sudo命令的基本语法是sudo OPTION.. COMMANDsudo命令有用于控制其行为的选项,但通常sudo都是以其最基本的形式使用,没有任何选项。

其中COMMAND是您要运行的命令。sudo将读取/etc/sudoers文件,并检查用户是否授予sudo的访问权限。

在第一次使用sudo时,系统会提示您输入当前用户密码,并且该命令将以root用户执行。

例如,要列出/root目录中的所有文件,请运行命令sudo ls /root

sudo ls /root
[sudo] password for myfreax:
.  ..  .bashrc	.cache	.config  .local  .profile

设置密码超时

默认情况下,sudo闲置五分钟后,sudo会要求您再次输入密码。您可以通过编辑/etc/sudoers文件来更改默认超时。运行命令visudo 编辑/etc/sudoers。

添加行Defaults  timestamp_timeout=10来设置默认超时,其中是单位以分钟为单位指定的超时,这里设置为10分钟。

如果您只想仅为指定用户更改sudo的超时,请添加行Defaults:user_name timestamp_timeout=10,其中user_name是用户名。

sudo visudo
Defaults  timestamp_timeout=10
Defaults:user_name timestamp_timeout=10 #specify user
/etc/sudoers

结论

您已经学习了如何使用sudo命令以及选项。包括如何使用sudo以其它用户运行命令,设置sudo超时,sudo与重定向,如何修改/etc/sudoer文件等。如果您有任何疑问,请随时发表评论。