Linux sudo 命令的应用
sodo 的字面意思理解应该是switch user excute a command as another user,用另外一个用户的权限来执行命令。如同电视剧中,皇帝派心腹大臣调查贪官污吏,但是大臣并没有皇帝的权利,到了某些时候要使用生杀予夺的权利时,就可以拿出皇帝御赐的上方宝剑来当代表皇帝来行使这些权利。
sudo 与su 的区别
有些人很困惑那么已经有了su,如果要执行没有权限的命令时,可以直接切换用户完成操作,为什么又要开发出这样一个命令呢。原因就在于,使用su的时候必须要输入对应用户的密码,如果要使用的是root用户才有权限操作的命令,那么root用户就面临着密码泄露的危险,考虑到系统安全,于是就开发出更易使用和安全的sudo来了。
sudo 配置文件路径
/etc/sudoers
sudo 配置文件特殊编辑器
编辑sudo 有专有的命令visudo
,这个命令只允许单个用户进行编辑,并且可以进行语法检查。
sudo 配置文件的基本格式
who where=(run_as_who) run_commands
总结下来就是:
谁在哪台主机以谁的身份运行什么命令
sudo 配置的别名机制
sudo 的别名有三种,分别是:
用户别名、地址别名、Runas 别名,命令别名。
User_Alias TEST_USER =jack,rose //用户之间以分号隔开
Host_Alias TEST_HOST= ALL //所用地址都可以使用sudo
Runas_Alias TEST_Runas //用法和用户别名一样
Cmnd_Alias TEST_Cmnd /usr/sbin/useradd, /usr/bin/passwd //命令要写觉得路径
默认情况下,第一次使用sudo命令的时候要求输入密码,但是第二次就不用输入了。sudo的密码能够缓存5分钟,五分钟以内使用是不需要输密码的,五分钟过后就要求再次输入密码。那么当我们有事外出的时候,可以使用sudo -k 命令让自己的密码失效,那么当再次使用的时候,就需要重输密码了。
如果不想每次使用的时候输入密码,那么可以添加NOPASSWD 选项:
118 ## Here is sudo config
119
120 ## User_Alias
121 User_Alias USER_ALLOW=liangzi
122 Host_Alias HOST_ALLOW=192.168.75.188
123 Cmnd_Alias COMMAND_ALLOW=/usr/sbin/useradd
124
125 USER_ALLOW HOST_ALLOW=(root) NOPASSWD:COMMAND_ALLOW
sudo的命令执行日志信息放在cat /var/log/secure
文件内,可以定期的去查看一下,以免执行恶意命令。