sudo

用途

以其他身份来执行指令。

语法

sudo [-bhHpV][-s ][-u <用户>][指令] 或 sudo [-klv] 

描述

sudo可让用户以其他的身份来执行指定的指令,预设的身份为root。在/etc/sudoers中配置了可执行sudo指令的用户。若其未经授权的用户企图使用sudo,则会发出警告的邮件给管理员。用户使用sudo时,必须先输入密码,之后有5分钟的有效期限,超过期限则必须重新输入密码。

参数

-b  在后台执行指令。
-h  显示帮助。
-H  将HOME环境变量设为新身份的HOME环境变量。
-k  结束密码的有效期限,也就是下次再执行sudo时便需要输入密码。
-l  列出现在用户可执行和无法执行的指令。
-p   改变询问密码的提示符号。
-s<shell>   执行指定的shell。
-u<用户>   以指定的用户作为新的身份。若不加上此参数,则预设以 root 作为新的身份。
-v   延长密码有效期限5分钟。
-V   显示版本信息。

例子

用户 leon 没有执行 sudo 的权利,却执行 sudo 指令:

$ shutdown now
shutdown:must be root.
$ sudo shutdown now
leon is not in the sudoers file. This incident will be reported.
#sudo 会以 leon 的帐号,发出一封邮件给管理员,报告此事情。

用户有执行 sudo 的权利,而执行 sudo 指令:

$ sudo shutdown now
Password:              <——输入leon的密码即可执行shutdown指令

谁可以使用 sudo

在 /etc/sudoers 这个档案规范了谁可以使用 sudo,如果没有规范,人人都可以用 sudo 的话,那这样就没什么保护的意义了。

/etc/sudoers 这个档案设定的方式,可以看下面这一行:

root    ALL=(ALL) ALL

这说明了 root 这个帐号可以使用所有的权限及更改所有的档案,如果你要新增一个使用者也能使用 sudo 的话,可以仿照这一行的写法,详细的说明可以参考 man sudo。而这一行:

%admin  ALL=(ALL) ALL

表示所有在admin群组的使用者都可以使用 sudo,因为 Ubuntu 把预设的使用者帐号设在 admin 群组下,所以我们的预设帐号才能使用 sudo。

sudo 的用法

sudo 的用法很简单,只要在你想执行的指令前面加上 sudo 即可。它会提示要你输入密码,你只要输入你目前使用帐号的密码就可以了。

比方说,你要重新启动一个系统的程式,它们大多被放在 /etc/init.d/ 下面,也需要 root 的权限才能做,所以我们可以透过 sudo 来动作:

$ sudo /etc/init.d/networking restart   # 如果打算重新执行网路的设定

如果要更改 /etc/sudoers 这个档,也是需要 root 权限才能对它写入:

$ sudo gedit /etc/sudoers

在图形界面下,执行某些系统设定程式也会要求你输入密码,它的道理跟 sudo 是一样的。

相关命令

shells/commands/sudo.txt · 最后更改: 2010/09/06 03:27 (外部编辑)
[unknown link type]到顶部
GNU Free Documentation License 1.3
京ICP备05034962号 Debian Driven by DokuWiki get firefox browser Recent changes RSS feed Valid XHTML 1.0