/etc/sudoers文件解析

/etc/sudoers文件解析CATALOG前言规则讲解第一部分A第二部分B第三部分C第四部分D第五部分E举例前言/etc/sudoers文件一般涉及到linux系统中关于sudo命令的权限配置问题。规则讲解sudoers文件的数据,每一行分为五个部分,我们用ABCDE来表示。一般情况下是:AB={©}{D}E且C与D是可以省略的,我们用大括号扩起来方便大家注意到,但真正书写命令的时候不需要打括号。第一个部分A代表授权使用sudo的用户或者组第二部分B代表允许授权用户在哪些主机上使用这些权利第三部分C代

大家好,又见面了,我是你们的朋友全栈君。

前言

/etc/sudoers文件一般涉及到linux系统中关于sudo命令的权限配置问题。
在这里插入图片描述

规则讲解

sudoers文件的数据,每一行分为五个部分,我们用ABCDE来表示。
一般情况下是: A B = {©} {D} E
且C与D是可以省略的,我们用大括号扩起来方便大家注意到,但真正书写命令的时候不需要打括号。

  • 第一个部分A代表授权使用sudo的用户或者组
  • 第二部分B代表允许授权用户在哪些主机上使用这些权利
  • 第三部分C代表允许被授权用户提权到什么用户什么组级别的权限,如果省略就代表允许提权到任意用户级别。
  • 第四部分D代表当被授权用户是否需要输入自身密码来使用特权,若省略这代表需要输入密码
  • 第五部分E代表允许执行的命令,如果是all就代表允许执行所有命令

第一部分A

A表示的是哪个用户或者哪个用户组拥有执行sudo的权限,当A前面带有%的时候,代表的是用户组。
例如
admin all = (all) all
这行命令表示admin用户可以登陆到任意主机,并且可以提权到任意用户,并且可以执行任意命令,但需要输入用户admin到密码。
如果在admin前面加上%就会使得admin组的所有用户拥有这些权限,使用的时候需要输入对应用户的密码。而这一行命令典型的就是省略了第四个属性,也就是D,D代表的是密码。

第二部分B

B代表用户可以在哪些电脑上使用这些特权,这一个字段一般是主机名。
例如:jack mycomputer=/usr/sbin/reboot,/usr/sbin/shutdown
上面这行表示jack可以在mycomputer上提权到root用户,并且允许以root权限使用reboot与shutdown命令,但是需要输入jack的密码才可以。

第三部分C

代表的是允许提权到的目标用户与组,例如(root:root)的意思就是提权到root用户root组,也就是当前用户使用sudo命令的时候会获得与root用户root组相同的权限。
当C参数隐藏的时候,默认提权权限就是root。如果是all的话就是指的可以提权到任意用户任意权限。

第四部分D

这个参数是用来定义当目标用户使用sudo的时候,是否需要输入用户密码。如果为NOPASSWD:则表示不需要,否则为需要,注意字母后面带了冒号。

第五部分E

表示允许执行的命令。

举例

参数 含义
%admin ALL=(ALL) ALL 允许admin用户组的所有用户在任意主机上,在输入当前用户密码的情况下使用sudo命令提权到任意用户,并且允许提权使用所有命令
lucy test=(ALL) NOPASSWD: /bin/useradd 允许lucy在test主机上提权到任意用户,并且在步输入密码的情况下可以提权使用useradd命令
papi ALL=(root) NOPASSWD: /bin/chown,/usr/sbin/useradd 允许papi登陆到任意主机,允许提权到root权限,允许在不输入密码到情况下使用chown命令,但是useradd命令只允许在输入papi密码到情况下使用
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/151346.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Murmur下载_md5是常用的hash算法

    Murmur下载_md5是常用的hash算法NativeJSmurmurhashimplementationMurmurHash.jsAnoptimizedJavaScriptimplementationoftheMurmurHashalgorithms.ThesealgorithmstakeaJavaScriptstring(andaseed),andquicklycreateanon-cr…

    2025年7月30日
    5
  • Qt多线程通信

    Qt多线程通信简述:1>Qt线程间共享数据主要有两种方式:1)使用共享内存。即使用一个两个线程都能够共享的变量(如全局变量),这样两个线程都能够访问和修改该变量,从而达到共享数据的目的。2)使用singal/slot机制,把数据从一个线程传递到另外一个线程。第一种方法在各个编程语言都普遍使用,而第二种方法是QT的特有的,本文主要介绍第二种。2>

    2022年6月19日
    210
  • softmax函数导数「建议收藏」

    大家好,又见面了,我是你们的朋友全栈君。

    2022年4月14日
    46
  • SpringBoot与SpringCloud的关系与区别

    SpringBoot与SpringCloud的关系与区别一、SpringBoot和SpringCloud简介1、SpringBoot:是一个快速开发框架,通过用MAVEN依赖的继承方式,帮助我们快速整合第三方常用框架,完全采用注解化(使用注解方式启动SpringMVC),简化XML配置,内置HTTP服务器(Tomcat,Jetty),最终以Java应用程序进行执行。2、SpringCloud: 是一套目前完整的微服务框架,它是是一系列框架的有序…

    2022年6月12日
    34
  • Java:JavaSocket编程开发多人聊天室「建议收藏」

    Java:JavaSocket编程开发多人聊天室「建议收藏」Java|JavaSocket编程开发多人聊天室实现内容运行结果部分代码完整代码实现内容用Java图形用户界面编写聊天室服务器端和客户端,支持多个客户端连接到一个服务器。每个客户端能够输入账号。可以实现群聊(聊天记录显示在所有客户端界面)。完成好友列表在各个客户端上显示。可以实现私人聊天,用户可以选择某个其他用户,单独发送信息。服务器能够群发系统消息,能够强行让某些用户下线。客户端的上线下线要求能够在其他客户端上面实时刷新。运行结果部分代码importjava.awt

    2022年6月17日
    40
  • java与python-如何对比Python和Java,只需三分钟告诉你!

    java与python-如何对比Python和Java,只需三分钟告诉你!原标题:如何对比Python和Java,只需三分钟告诉你!Java和Python两门语言都是目前非常热门的语言,可谓北乔峰南慕容,二者不分上下,棋逢对手。但是对于初学者来说,非常困惑,因为时间和精力有限,上手必须要先学一门,到底选那个好呢,今天3分钟带你透彻了解。1.运行速度java是静态语言静态编译的,速度上要比Python快的很多,而Python动态类型语言,一边执行一边编译,速度要上慢一些…

    2022年7月7日
    30

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号