前言
sudo是linux系统管理指令,是允许系统管理员让普通用户执行一些或者全部的root命令的一个工具,如halt,reboot,su等等。这样不仅减少了root用户的登陆 和管理时间,同样也提高了安全性。Sudo不是对shell的一个代替,它是面向每个命令的。
§ Sudo能够限制用户只在某台主机上运行某些命令。
§ Sudo提供了丰富的日志,详细地记录了每个用户干了什么。它能够将日志传到中心主机或者日志服务器。
§ Sudo使用时间戳文件来执行类似的“检票”系统。当用户调用sudo并且输入它的密码时,用户获得了一张存活期为5分钟的票(这个值可以在编译的时候改变)。
§ Sudo的配置文件是sudoers文件,它允许系统管理员集中的管理用户的使用权限和使用的主机。它所存放的位置默认是在/etc/sudoers,属性必须为0411。
系统环境 Red Hat Enterprise Linux Server release 6.0 (Santiago)
sudo是否安装 rpm -qa sudo
sudo命令的配置文件 /etc/sudoers
sudo命令的编辑 visudo
- ## Syntax:
- ##
- ## user MACHINE=COMMANDS
- ##
- ## The COMMANDS section may have other options added to it.
- ##
- ## Allow root to run any commands anywhere
- root ALL=(ALL) ALL
- redhat ALL=(root) /usr/sbin/useradd,/usr/bin/passwd
上文第八行是系统给出的模板,第九行就是我添加的一个测试命令行
第一个redhat为我要使用sudo命令的用户,ALL为使用sudo的主机,在本地,可以使用ALL,但是在企业环境中,存在多台主机sudo配置的时候,需要指定主机。 括号中的root为sudo之后使用root的权限。 后面跟的为具体的命令,命令需要用绝对路径,多个命令用逗号隔开。
上文第九行整句话的意思为 允许redhat在所有主机上用root的权限执行useradd和passwd命令。
小技巧
我们已经从某个账户登录,但是每次都输入密码,太麻烦了,修改一个配置文件,sudo之后就不需要密码了。
redhat localhost=NOPASSWD:/usr/sbin/useradd
这样 每次本地登录之后使用sudo useradd就不需要输入redhat的密码了
如果所有的命令都不需要输入密码,那就增加这样一行
redhat localhost=NOPASSWD:ALL
转载于:https://blog.51cto.com/yanyi3721/730890