【服务器管理】管理sudo权限

前言

在Linux系统中,sudo权限非常强大,可以让拥有权限的用户执行几乎任何命令(至少到目前为止没发现过无法执行的)。
因此,有必要明确服务器上的哪些用户拥有sudo权限,并且在新用户索取sudo权限时进行有效管理。

拥有sudo权限的用户

可以通过查看sudoers文件确认哪些用户拥有sudo权限
命令:sudo cat /etc/sudoers
预期结果:

  1. 这一部分是开头,主要说的是“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.
    
  2. 接下来这一部分我也不知道在说啥,反正乱动“sudoers”文件的时候没动过这里

    点击查看代码
    # Host alias specification
    
    # User alias specification
    
    # Cmnd alias specification
    
  3. 接着描述的是三类有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权限

  1. 直接编辑sudoers文件
    仿照root ALL=(ALL:ALL) ALL的句式,将文件中对应位置改成类似下面的形式。修改完sudoers文件并保存退出后,[xxx]就将直接可以使用sudo权限。
    # User privilege specification
    root    ALL=(ALL:ALL) ALL
    [xxx]    ALL=(ALL:ALL) ALL
    
  2. 将用户添加到sudo用户组
    如上文所述,sudo用户组中的用户可以使用sudo权限,因此也可以将用户添加到sudo组中实现目的。这种方法在修改后需要让用户重新登录一次才能够生效。
    命令:usermod -a -G sudo xxx
posted @ 2022-10-05 11:31  TheError  阅读(76)  评论(0编辑  收藏  举报