需要注意的是,当我们为用户定义可以运行的命令时,必须使用完整的命令路径。这样做是完全出于安全的考虑,如果我们给出的命令只是简单的userad而非/usr/sbin/useradd,那么用户有可能创建一个他自己的脚本,也叫做userad,然后放在它的本地路径中,如此一来他就能够通过这个名为useradd的本地脚本,作为root来执行任何他想要的命令了。这是相当危险的!
sudo命令的另一个便捷的功能,是它能够指出哪些命令在执行时不需要输入密码。这很有用,尤其是在非交互式脚本中以超级用户的身份来运行某些命令的时候。例如,想要让用户作为超级用户不必输入密码就能执行kill命令,以便用户能立刻杀死一个失控的进程。为此,在命令行前边加上NOPASSWD:属性即可。例如,可以在/etc/sudoers文件中加上下面一行,从而让jorge获得这种权力:
jorge ALL=(root) NOPASSWD: /bin/kill, /usr/bin/killall
这样一来,jorge就能运行以下命令,作为root用户来杀死失控的rm进程了。
jorge@ubuntu:~$ sudo killall rm
6.如何启用root帐户
通过以上介绍,我们发现sudo的确很好用,但是如果您早就习惯了在root下工作,想回味一下过去的感觉该怎么办呢?很简单,只要为root设置一个root密码就行了:
$ sudo passwd root
好了,现在您能直接作为root登录了。