分类: LINUX
2008-04-24 21:53:42
四、配置Sudo
要配置sudo ,我们必须对%/sudo-1.6.9p5/sudoers 文件进行编辑,该文件中定义了哪些用户可以执行哪些命令。此外,只有root用户才有编辑该文件的权限,并且还必须用visudo 命令对其编辑。在sudo 目录中,包含了一个名为sample.sudoers 的示例文件:
默认时,visudo命令会使用vi 文本编辑程序打开sudoers 文件。当然,我们可以通过编译选项来让visudo 改变默认的文本编辑程序。visudo使用环境变量EDITOR表示文本编辑程序。在编辑sudoers 文件时,visudo命令会执行以下任务:
(一) 检查语法错
即使在修改中找到一个语法错误,visudo也不会保存所做的修改。当发现语法错误时,它会指出错误所在的行号,并给出相应的指导性的提示。这时,我们会看到一个“What Now ?”提示和三个选项:“e”表示重新编辑文件;“x”表示退出并且不作任何保存;“Q”表示退出并保存更改的内容。如果sudoers 文件存在语法错误,而我们又选择Q退出并保存visudo的修改的话,那么我们是无法正常运行sudo的,直到语法问题得到纠正为止。遇到这种情况,我们必须再一次运行visudo,修正错误,然后再次保存文件。当修正问题时,最好选择e项;如果您对于正误还心存顾虑时,可以选择x项,这样在退出时便不会变成修改了。
(二) 防止同时对该文件进行多重编辑
当我们在编辑sudoers 文件的时候运行visudo的话,将收到一个错误信息,让我们稍后再试。sudoers 文件由两种类型的条目组成:用户规定和别名。下面用实例介绍如何使用用户规定条目来定义哪些用户可以运行哪些命令。别名基本上就是一些变量。
Sudoers文件中包含一个root条目,默认的权限规定如下所示:
root ALL = (ALL ) ALL |
该配置允许root用户可以执行所有命令。
要想让其他用户作为root 来运行命令,我们必须将这些用户加入到sudoers 文件中。我们还必须规定允许在哪些主机上运行这些命令。最后,我们还必须列出这些用户可以作为root 来运行的具体命令。在下面的步骤中,我们将创建用户bob ,并允许他作为root 用户在我们的机器上执行某些命令。
⒈ 打开该sudoers文件,命令如下所示:
visudo |
⒉ Sudoers 文件将在vi 中打开,在其中找到“User privilege specification”部分。然后在root 条目之后,按i键插入下面一项:
bob your-hostname = /sbin/ifconfig, /bin/kill, /bin/ls |
⒊ 这一行的作用是允许用户bob作为root用户来执行命令ifconfig、kill和ls。
需要注意的是,除非您有另行规定,否则默认凡是列在sudoers 文件中的命令,都将作为root用户来运行。比如,我们可以让用户bob作为用户Tom来运行命令。命令如下所示:
bob your-hostname = (Tom) /sbin/ifconfig |
就本例来说,ifconfig命令将以用户Tom 的身份来执行。当然,您可以允给bob 以多种不同的用户身份来执行命令,比如:
bob your-hostname = (Tom) /sbin/ifconfig, (root) /bin/kill, /bin/ls |
其中,kill 和ls 命令将作为root用户来运行,而ifconfig命令则作为用户Tom来执行。Bob可以在命令行中键入以下命令:
sudo –u Tom /sbin/ifconfig |
⒋ 按下ESC写入并退出文件,然后键入以下命令:
:wq |
这个命令利用vi写并退出该文件。
⒌ 现在,我们需要建立用户bob,命令如下:
useradd bob |
6. 提供下列命令为用户bob 创建口令:
Passwd bob Changing password for user bob New UNIX password: Retype new UNIX password: passwd: all authentication tokens updated successfully |