Linux 下使用Sudo 命令,可以让普通用户也能执行一些或者全部的root命令,我们通过一些例子来了解一下sudo 的 技巧
情景一: 用户无权限使用执行Root 命令
普通用户登录Shell 之后,如果自身没有权限访问某个文件或者执行某个指令时,如果该用户获得Root授权,
那么,就可以在需要执行的命令前加上sudo,临时切换到root用户的权限,完成相关的操作,sudo于1980年后被写出之前,一般用户管理系统的方式 是利用su切换成超级用户,但是使用su命令缺点之一就是,必须知道su密码,而sudo使一般用户不需要知道超级用户即可临时获得root权限.
so问题来了,那些用户可以获取root权限???,这就需要在 /etc/sudoers文件中进行配置
授权给单个用户:
guohl ALL=(ALL) ALL
解释一下:
- guohl:允许使用sudo的用户名
- ALL 允许任何终端(任何机器)使用sudo
- (ALL) 允许以任何用户执行sudo
- ALL 允许sudo权限执行所有命令
举个栗子:
如果我们想让用户 test 只能在本机(主机名:my-pc) 以ROOT 账户执行 /bin/chown bin/chmod 两条命令,则可以如下配置:
test my-pc=(root) /bin/chown,/bin/chmod
上面例子是授权单个用户,那如何授权用户组呢,其实和授权单个用户一样,唯一的区别就是记载用户组前面添加 % ;顺便提一下Linux 查看用户组命令
sudo cat /etc/group
情景二:vim 编辑后发现忘记使用sudo
估计这种情景大家遇到肯定很多,我们使用vim对某个文件进行各种编辑之后,在ESC 到命令模式,使用:wq退出,发现没有权限对该文件修改,之前的做法是强制退出,再加上suod重新编辑,但是从今以后不会了,我们可以退到命令模式,使用如下命令
:w !sudo tee %
这样我们就可以root权限来保存文件了~~~~
情景三:执行root 命令忘记添加 sudo
其实该情景也算是Linux命令的一个小技巧,我们如果输入了一个很长的命令,执行后发现需要root权限,我们可以使用如下命令
sudo !!
Linux 中 !! 代表了上一条命令