尽管它的名字非常类似于su,但sudo在一个完全不同的方式下工作。它只是使用指定的用户来执行一个命令,而不建立完整的会话,默认情况下是超级用户,语法如下:
- sudo nano /etc/fstab
命令su和sudo在功能上的主要不同在于:使用命令sudo执行命令时,系统提示输入自己的帐户密码。我已经能听到你的尖叫--为什么我没有root的密码却能够获取root的权限?原来在/etc/sudoers配置文件中,该文件指定了允许使用sudo的用户列表。更重要的是,指定了允许执行的命令,此外,所有用户的行为都被记录在日志文件中,包括失败的sudo尝试。
默认情况下,sudoers文件中没有用户,因此,必须先以root用户登录,然后再将指定的用户添加到/etc/sudoers文件,这个文件遵循一个严格的语法,因此,对于它可以使用一个专用的工具visudo,其源于众所周知的vi文本编辑器,visudo检测文件的语法然后保存文件,并确保该文件没有被同时编辑。
Visudo是一种扩展功能,vi则工作在两种模式下:命令模式和插入模式。在插入模式下可以直接编辑文档,按Esc键切换到命令行模式,输入命令来控制程序本身。在开始使用visudo时,按I键切换到插入模式,然后进行必要的修改,例如,在文件的末尾添加一个新的sudo用户:
在文件sudoers中,这种定义授予alex用户所有的命令权限。编辑完毕后,按Esc键进入命令行模式,再键入如下命令来保存修改:
- alex ALL=(ALL) ALL
再键入以下命令退出visudo:
- :w
如果希望退出但又不想保存修改,则键入以下命令:
- :q
关于vi或visudo的更多信息,可使用man命令来了解(或者如果你熟悉行话,那就是RTFM!)。
- :q!