sudo的使用

一、 介绍

   sudo工具能够帮你把一部分系统管理的责任分摊给其他人,还不用给出完全的root访问权限。它是一个setuid程序,只需要输入用户自己的密码,就可以执行sudo后面的命令。使用sudo时关系到一个很重要的文件,那就是/etc/sudoers。该文件需要使用visudo来编译。该文件的内容如下所示

#############################################################

# sudoers file.

# This file MUST be edited with the 'visudo' command as root.

# See the sudoers man page for the details on how to write a sudoers file.

# Host alias specification

# User alias specification

# Cmnd alias specification

# Defaults specification

# User privilege specification

root    ALL=(ALL) ALL

# Uncomment to allow people in group wheel to run all commands

# %wheel        ALL=(ALL)       ALL

# Same thing without a password

# %wheel        ALL=(ALL)       NOPASSWD: ALL

# Samples

# %users  ALL=/sbin/mount /cdrom,/sbin/umount /cdrom

# %users  localhost=/sbin/shutdown -h now

##################################################################

二、 配置/etc/sudoers

  1.  最简单的配置

  让普通用户support具有root的所有权限。执行visudo之后,可以看见缺省只有一条配置:

   root    ALL=(ALL) ALL

  那么你就在下边再加一条配置:

   support ALL=(ALL) ALL

  这样,普通用户support就能够执行root权限的所有命令。

  那一行”support ALL=(ALL) ALL”所代表的意义是:

  用户账号 登入主机=(可以变换的身份) 可以执行的命令

  举个例子,假设有一个开发人员需要在开发服务器上获得root访问权限,在其他服务器上就不行,那么我们这样做.
     steven beta.xplore.cn=(ALL) ALL

  2. 不需要密码

  还有一个有用的标志,那就是"NOPASSWD:" 如果设置了这个标志,表示当前授权的帐号执行后面的帐号不需要输入当前帐号的密码:

   xplore ALL=(ALL) NOPASSWD: ALL

  这允许帐号xplore可以用任何帐号执行所有指令,还不用输入密码。

  3.  针对用户组

  其实第一列中也可以指定组帐号,表示允许所有属于这个组的帐号都获得这样的授权,语法上,只需要在组帐号之前加上一个%号,就像这样:

   %mail WEBSERVERS=(mail) sendmail

  现在,属于mail组的帐号都可以在WEBSERVERS定义的服务器上用mail帐号来执行sendmail指令

  4. 使用Alias语法

  如果你觉得在指定用户或者机器或者命令时列表太长(比如很多帐号授权相同,一个帐号需要指定的命令和机器列表过长),我们可以使用sudo列表里Alias语法,Alias的语法和shell环境变量中alias类似,你可以看成是一个变量:

  USER_Alias ADMINS=wgzhao,kevin,steven

  User_Alias WEBMASTERS=xplore,glemir,xinhe

  Runas_Alias DAEMONS=bind,www,ftp

  Host_Alias WEBSERVERS=www.xplore.cn,www.lawburn.com

  Cmnd_Alias APACHE=/usr/bin/apachectl

  WEBMASTERS WEBSERVERS=(www) APACHE

   ADMINS ALL=(DAEMONS) ALL

三、 使用sudo命令

  [root@redflag ~]# sudo [-u username] [command] 

   参数说明: 

   -u:将身份变成 username 的身份

 [support@redflag ~]$ sudo mkdir /root/testing 
  password:          <==输入support自己的密码

 

你可能感兴趣的:(职场,sudo,休闲)