sudo命令详解

sudo命令详解简单的说 sudo 是一种权限管理机制 管理员可以授权于一些普通用户去执行一些 root 执行的操作 而不需要知道 root 的密码 严谨些说 sudo 允许一个已授权用户以超级用户或者其它用户的角色运行一个命令 当然 能做什么不能做什么都是通过安全策略来指定的 sudo 支持插件架构的安全策略 并能把输入输出写入日志 第三方可以开发并发布自己的安全策略和输入输出日志插件 并让它们无缝的和 s

简单的说,sudo 是一种权限管理机制,管理员可以授权于一些普通用户去执行一些 root 执行的操作,而不需要知道 root 的密码。

严谨些说,sudo 允许一个已授权用户以超级用户或者其它用户的角色运行一个命令。当然,能做什么不能做什么都是通过安全策略来指定的。sudo 支持插件架构的安全策略,并能把输入输出写入日志。第三方可以开发并发布自己的安全策略和输入输出日志插件,并让它们无缝的和 sudo 一起工作。默认的安全策略记录在 /etc/sudoers 文件中。而安全策略可能需要用户通过密码来验证他们自己。也就是在用户执行 sudo 命令时要求用户输入自己账号的密码。如果验证失败,sudo 命令将会退出。

1、sudo命令语法

sudo [-bhHpV][-s ][-u
<用户>
][指令]


sudo [-klv]
参数
  -b  在后台执行指令。
  -h  显示帮助。
  -H  将HOME环境变量设为新身份的HOME环境变量。
  -k  结束密码的有效期限,也就是下次再执行sudo时便需要输入密码。
  -l  列出目前用户可执行与无法执行的指令。
  -p  改变询问密码的提示符号。
  -s  执行指定的shell。
  -u 
<用户>
  以指定的用户作为新的身份。若不加上此参数,则预设以root作为新的身份。

  -v  延长密码有效期限5分钟。
  -V  显示版本信息。
  -S  从标准输入流替代终端来获取密码















2、sudo程序相关文件

3、基本配置

先创建用户并设置密码后,然后在sudo组中加入该用户,多个用户用逗号隔开。

sudo命令详解

添加内容如下:

sudo命令详解

我们把用户 testuser 添加到了 sudo 组中,所以当用户 testuser 登录后就可以通过 sudo 命令以 root 权限执行命令了!

但是,用testuser执行root权限的命令时会报错:

sudo命令详解

解决办法:

1)、切换到root用户下

普通用户切换到root用户下:sudo -i

root用户切换到普通用户下:su testuser

找到这行 root ALL=(ALL) ALL,在他下面添加xxx ALL=(ALL) ALL (这里的xxx是你的用户名)

sudo命令详解

这样普通用户就可以使用sudo了。

4、sudo命令的日志

在 ubuntu 中,sudo 的日志默认被记录在 /var/log/auth.log 文件中。当我们执行 sudo 命令时,相关日志都是会被记录下来的。比如下图中显示的就是一次执行 sudo 命令的日志。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

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

(0)
上一篇 2026年3月19日 上午10:13
下一篇 2026年3月19日 上午10:14


相关推荐

  • GateWay 网关跨域问题「建议收藏」

    GateWay 网关跨域问题「建议收藏」yml文件中配置即可:spring:cloud:gateway:globalcors:#全局的跨域处理add-to-simple-url-handler-mapping:true#解决options请求被拦截问题corsConfigurations:'[/**]’:allowedOrigins:#允许哪些网站的跨域请求allowedOrigins:“*”允许所有网站…

    2022年10月9日
    4
  • 类 InputStreamReader[通俗易懂]

    类 InputStreamReader[通俗易懂]InputStreamReader 是字节流通向字符流的桥梁:它使用指定的 charset 读取字节并将其解码为字符。它使用的字符集可以由名称指定或显式给定,或者可以接受平台默认的字符集。每次调用 InputStreamReader 中的一个 read() 方法都会导致从底层输入流读取一个或多个字节。要启用从字节到字符的有效转换,可以提前从底层流读取更多的字节,使其超过满足当前读取操作所需的字节。

    2026年4月13日
    4
  • python爬虫实时转发文章新闻;微信机器人使用;「建议收藏」

    python爬虫实时转发文章新闻;微信机器人使用;「建议收藏」前言:当前时间2022-4-24已经有五个月没水文章了!personally技术不增反退,咸扯蛋!今天搞个好玩的,用“鬼手”搞的免费版的微信pc端机器人+爬虫用来实时转发文章或新闻啥的!感谢“鬼手”免费分享的源码!(鄙人就单纯喜欢打感叹号!没其他意思!不是强调!)一、介绍“鬼手”的pc端微信使用先甩github链接:https://github.com/cixingguangming55555/wechat-bot里面有使用教程,但为了方便和本着就是讲细的原则还是说说吧。1、下

    2022年6月22日
    60
  • docker 创建容器,端口映射(docker exec 进入容器)

    今天用docker的swarm搭建了一个集群,在启动主节点的swarm的时候出错了,报的错误是:/usr/bin/docker-current:Errorresponsefromdaemon:driverfailedprogrammingexternalconnectivityonendpointgoofy_bose(317173685c23c029fd5f28b88

    2022年4月16日
    79
  • 如何Ping特定端口号

    如何Ping特定端口号ping端口是最有效的故障排除技术之一,以便查看服务是否正常运行。系统管理员每天都使用ping命令,它依靠ICMP协议来检索有关远程主机的操作信息。但是,仅对主机进行ping操作并不总是足够的:您可能需要对服务器上的特定端口执行ping操作。此特定端口可能与数据库,ApacheWeb服务器甚至网络上的代理服务器相关。在本教程中,我们将看到如何使用各种不同的命令来ping特定端口。使用telnetping特定端口ping特定端口的最简单方法是使用telnet命令,后跟要pin.

    2026年1月16日
    5
  • JavaScript原型和原型链详解

    JavaScript原型和原型链详解一 原型 所有引用类型都有一个 proto 隐式原型 属性 属性值是一个普通的对象 所有函数都有一个 prototype 原型 属性 属性值是一个普通的对象 所有引用类型的 proto 属性指向它的构造函数的 prototypevar 1 2 3 a proto Array prototype gt true 二 原型链当访问一个对象的某个属性时 会先在这个对象本身属性上查找 如果没有找到 则会去它的 pro

    2026年3月17日
    2

发表回复

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

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