【服务器管理】管理sudo权限
前言
在Linux系统中,sudo权限非常强大,可以让拥有权限的用户执行几乎任何命令(至少到目前为止没发现过无法执行的)。
因此,有必要明确服务器上的哪些用户拥有sudo权限,并且在新用户索取sudo权限时进行有效管理。
拥有sudo权限的用户
可以通过查看sudoers
文件确认哪些用户拥有sudo权限
命令:sudo cat /etc/sudoers
预期结果:
-
这一部分是开头,主要说的是“sudoers”文件非常重要,必须用“visudo”这个工具修改,同时建议在
/etc/sudoers.d/
目录中添加内容以替代直接修改这个文件。
当然,既然已经看到这个文件了,头铁对这个文件进行修改是早晚会做出来的事——不管是在新手时做了误操作,还是后来发现问题要改回来,抑或是有些别的什么目的——总之,虽然开头的注释已经明确了这个文件的重要性,也说了很多注意事项,但是当真的想要修改这个文件时,就当它不存在吧。# # This file MUST be edited with the 'visudo' command as root. # # Please consider adding local content in /etc/sudoers.d/ instead of # directly modifying this file. # # See the main page for details on how to write a sudoers file.
-
接下来这一部分我也不知道在说啥,反正乱动“sudoers”文件的时候没动过这里
点击查看代码
# Host alias specification # User alias specification # Cmnd alias specification
-
接着描述的是三类有sudo权限的用户
第一类是直接拥有sudo权限的用户,初始时只有root用户
第二类是在admin
组内的用户;这个可以当没看见
第三类是在sudo
组内的用户;主要注意这个# User privilege specification root ALL=(ALL:ALL) ALL # Members of the admin group may gain root privileges %admin ALL=(ALL) ALL # Allow members of group sudo to execute any command %sudo ALL=(ALL:ALL) ALL
为普通用户赋予sudo权限
- 直接编辑sudoers文件
仿照root ALL=(ALL:ALL) ALL
的句式,将文件中对应位置改成类似下面的形式。修改完sudoers文件并保存退出后,[xxx]就将直接可以使用sudo权限。# User privilege specification root ALL=(ALL:ALL) ALL [xxx] ALL=(ALL:ALL) ALL
- 将用户添加到sudo用户组
如上文所述,sudo用户组中的用户可以使用sudo权限,因此也可以将用户添加到sudo组中实现目的。这种方法在修改后需要让用户重新登录一次才能够生效。
命令:usermod -a -G sudo xxx