linux学习之路:sudo命令

sudo 是linux下常用的允许普通用户使用超级用户权限的工具,允许系统管理员让普通用户执行一些或者全部的root命令,如halt,reboot,su等 等。这样不仅减少了root用户的登陆和管理时间,同样也提高了安全性。Sudo不是对shell的一个代替,它是面向每个命令的

1、命令格式

  touch 【选项】

2、命令参数

  -h  会显示版本编号及指令的使用方式说明

  -l   显示出自己(执行 sudo 的使用者)的权限

     -v   因为 sudo 在第一次执行时或是在 N 分钟内没有执行(N 预设为五)会问密码,这个参数是重新做一次确认,如果超过 N 分钟,也会问密码

   -k   将会强迫使用者在下一次执行 sudo 时问密码(不论有没有超过 N 分钟)  

   -b   将要执行的指令放在背景执行

   -p   prompt 可以更改问密码的提示语,其中 %u 会代换为使用者的帐号名称, %h 会显示主机名称

3、命令功能

  sudo 是linux下常用的允许普通用户使用超级用户权限的工具,允许系统管理员让普通用户执行一些或者全部的root命令

4、命令特性

  1、sudo能够限制用户只在某台主机上运行某些命令。

  2、sudo可以提供日志,忠实地记录每个用户使用sudo做了些什么,并且能将日志传到中心主机或者日志服务器。

  3、sudo使用时间戳文件来执行类似的“检票”系统。当用户调用sudo并且输入它的密码时,用户获得了一张存活期为5分钟的票(这个值可以在编译的时候改变)

  4、sudo的配置文件是sudoers文件,它允许系统管理员集中的管理用户的使用权限和使用的主机。

5、工作过程

1,当用户执行sudo时,系统会主动寻找/etc/sudoers文件,判断该用户是否有执行sudo的权限

2,确认用户具有可执行sudo的权限后,让用户输入用户自己的密码确认

3,若密码输入成功,则开始执行sudo后续的命令

4,root执行sudo时不需要输入密码(eudoers文件中有配置root ALL=(ALL) ALL这样一条规则)

5,若欲切换的身份与执行者的身份相同,也不需要输入密码

4、使用范例

   实例一:显示出自己的权限

   命令:sudo -l

[root@CentOS-study data]# sudo -l
Matching Defaults entries for root on this host:
    requiretty, !visiblepw, always_set_home, env_reset, env_keep="COLORS DISPLAY HOSTNAME
    HISTSIZE INPUTRC KDEDIR LS_COLORS", env_keep+="MAIL PS1 PS2 QTDIR USERNAME LANG
    LC_ADDRESS LC_CTYPE", env_keep+="LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT
    LC_MESSAGES", env_keep+="LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE",
    env_keep+="LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY",
    secure_path=/sbin\:/bin\:/usr/sbin\:/usr/bin

User root may run the following commands on this host:
    (ALL) ALL
[root@CentOS-study data]#

   实例二:配置sudo

   命令:visudo

[root@CentOS-study data]# visudo

## Sudoers allows particular users to run various commands as
## the root user, without needing the root password.
##
## Examples are provided at the bottom of the file for collections
## of related commands, which can then be delegated out to particular
## users or groups.
##
## This file must be edited with the 'visudo' command.

  说明:配置sudo必须通过编辑/etc/sudoers文件,而且只有超级用户才可以修改它,还必须使用visudo编辑。之所以使用visudo有两个原因,

     一、它能够防止两个用户同时修改它;

       二、它也能进行有限的语法检查。所以,即使只有你一个超级用户,你也最好用visudo来检查一下语法。

  实例三:编辑用户,给用户加root权限

zhy ALL=(ALL)    ALL

  保存退出后,切换到zhy用户,我们用它的身份执行命令:

[zhy@CentOS-study ~]$ ls /root
ls: cannot open directory /root: Permission denied
[zhy@CentOS-study ~]$ sudo ls /root
anaconda-ks.cfg  data  install.log  install.log.syslog    test  test1

 

  

posted @ 2015-12-02 10:57  大白虾  阅读(1471)  评论(0)    收藏  举报