在学习Linux用户管理时,我们不得不需要了解一个命令,那就是sudo。sudo的作用是切换身份,以其他身份来执行命令。
那么为什么在Linux系统中我们需要来切换身份呢?原因有以下几个方面
1、养成一个对系统操作的好习惯。不管是在一些博文还是书籍中,作者经常会建议Linux使用者尽量用一般身份来操作Linux的日常作业。
等需要设定系统环境时,再切换成root身份进行系统管理,这样对系统是相对安全的,避免因为一些错误的指令而造成严重的事故
2、用较低的权限来启动系统服务。比如,系统上安装了apache服务,我们可以建立一个apache用户,专门用做对apache服务的操作。这样
即使apache出了什么问题,也不会影响到系统其他方面
鉴于以上,我们都被建议过使用普通账号登录系统,当系统需要维护或者软件更新时,再切换成root身份来操作。那么,如何来切换呢?
"su"命令可以用来切换成root身份,但是需要输入root密码。对与普通用户来说,是不应该被告知root密码的。
"sudo"命令也可以切换到root,但不需要root的密码,只需要自己的密码,这样root的密码就不会流传出去。
在/etc/sudoers里设置了可执行sudo指令的用户,若没有经过授权的用户使用sudo,则系统会向root发送警告邮件。用户在使用sudo时,必须先要输入密码,密码输入成功后有5分钟的有效期,过了期限,则需要再次输入密码
新建一个用户sudoer,在使用sudo命令时系统会给出提示,用户soduer不能在本机运行sudo命令
那么如何才能让sudoer可以使用sudo命令呢?我们需要管理员在/etc/sudoers文件中给予权限
找到/etc/sudoers中"root ALL=(ALL) ALL"行,添加一行"sudoer ALL=(ALL) ALL",这样sudoer便具有了使用sudo的权限
现在,我们再用sudoer身份来使用sudo的相关命令来验证是否具有权限
此时,用户sudoer可以执行所有的命令
sudo的使用方法就是 sudo [选项] [参数],我们先用man sudo来了解sudo的一些选项及用法
我们来了解一下其中的一些选项
-b : 在后台运行指令
- h : 显示帮助信息
- H : 将HOME环境变量设置为切换后的新用户的HOME路径
- k : 使时间戳失效,结束密码的有效期,再次使用sudo时需重新输入密码
- l : 列出目前用户可执行和不可执行的命令
- v : 延长密码有效期5分钟