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

严谨些说,sudo 允许一个已授权用户以超级用户或者其它用户的角色运行一个命令。当然,能做什么不能做什么都是通过安全策略来指定的。sudo 支持插件架构的安全策略,并能把输入输出写入日志。第三方可以开发并发布自己的安全策略和输入输出日志插件,并让它们无缝的和 sudo 一起工作。默认的安全策略记录在 /etc/sudoers 文件中。而安全策略可能需要用户通过密码来验证他们自己。也就是在用户执行 sudo 命令时要求用户输入自己账号的密码。如果验证失败,sudo 命令将会退出。(注意,本文介绍的 sudo 命令运行在 ubuntu 14.04中。)
sudo 命令语法
sudo [-bhHpV][-s ][-u <用户>][指令]
或
sudo [-klv]
参数
-b 在后台执行指令。
-h 显示帮助。
-H 将HOME环境变量设为新身份的HOME环境变量。
-k 结束密码的有效期限,也就是下次再执行sudo时便需要输入密码。
-l 列出目前用户可执行与无法执行的指令。
-p 改变询问密码的提示符号。
-s 执行指定的shell。
-u <用户> 以指定的用户作为新的身份。若不加上此参数,则预设以root作为新的身份。
-v 延长密码有效期限5分钟。
-V 显示版本信息。
-S 从标准输入流替代终端来获取密码
sudo 程序相关文件
/etc/sudoers /etc/init.d/sudo /etc/pam.d/sudo /var/lib/sudo /usr/share/doc/sudo /usr/share/lintian/overrides/sudo /usr/share/bash-completion/completions/sudo /usr/bin/sudo /usr/lib/sudo
基本配置
系统默认创建了一个名为 sudo 的组。只要把用户加入这个组,用户就具有了 sudo 的权限。
至于如何把用户加入 sudo 组,您可以直接编辑 /etc/group 文件,当然您得使用一个有 sudo 权限的用户来干这件事:
$ sudo vim /etc/group
在 sudo 组中加入新的用户,要使用逗号分隔多个用户。
或者您可以使用 usermod 命令把用户添加到一个组中:
$ sudo usermod -a -G sudo jack
上面的设置中我们把用户 jack 添加到了 sudo 组中,所以当用户 jack 登录后就可以通过 sudo 命令以 root 权限执行命令了!
详细配置
在前面的配置中我们只是把用户 jack 加入了 sudo 组,他就具有了通过 root 权限执行命令的能力。
现在我们想问一下,这是怎么发生的?是时候介绍如何配置 sudo 命令了!
sudo 命令的配置文件为 /etc/sudoers。(注意,/etc/sudoers 的配置内容十分丰富,我们仅做简单的介绍。要了解更多信息,请参考 man sudoers。)
编辑这个文件是有单独的命令的 visudo(这个文件我们最好不要使用 vim 命令来打开),是因为一旦你的语法写错会造成严重的后果,这个工具会替你检查你写的语法,这个文件的语法遵循以下格式:
who where whom command
说白了就是哪个用户在哪个主机以谁的身份执行那些命令,那么这个 where, 是指允许在那台主机 ssh 连接进来才能执行后面的命令,文件里面默认给 root 用户定义了一条规则:
root ALL=(ALL:ALL) ALL
root 表示 root 用户。
ALL 表示从任何的主机上都可以执行,也可以这样 192.168.100.0/24。
(ALL:ALL) 是以谁的身份来执行,ALL:ALL 就代表 root 可以任何人的身份来执行命令。
ALL 表示任何命令。
那么整条规则就是 root 用户可以在任何主机以任何人的身份来执行所有的命令。
现在我们可以回答 jack 为什么具有通过 root 权限执行命令的能力了。打开 /etc/sudoers 文件:
sudo 组中的所有用户都具有通过 root 权限执行命令的能力!
再看个例子:
nick 192.168.10.0/24=(root) /usr/sbin/useradd
上面的配置只允许 nick 在 192.168.10.0/24 网段上连接主机并且以 root 权限执行 useradd 命令。
设置 sudo 时不需要输入密码
执行 sudo 命令时总是需要输入密码事件很不爽的事情(抛开安全性)。有些应用场景也需要在执行 sudo 时避开输入密码的交互过程。
那么需要如何设置呢?其实很简单,只需要在配置行中添加 NOPASSWD: 就可以了:
****** ALL=(ALL) NOPASSWD: ALL
再试试看,是不是已经不需要输入密码了?
sudo 的日志
在 ubuntu 中,sudo 的日志默认被记录在 /var/log/auth.log 文件中。当我们执行 sudo 命令时,相关日志都是会被记录下来的。比如下图中显示的就是一次执行 sudo 命令的日志:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# linux
# sudo
# sudo命令使用
# linux的sudo命令
# Linux曝出Sudo提权漏洞 任意用户亦可运行root命令
# Linux下普通用户用sudo su给自己加root权限的方法
# Linux 添加普通用户到 sudo 列表的方法
# 详解Linux下的sudo及其配置文件/etc/sudoers的详细配置
# Linux用户配置sudo权限(visudo)的方法
# linux系统sudo命令详解
# Linux sudo 漏洞可能导致未经授权的特权访问
# 输入密码
# 安全策略
# 组中
# 都是
# 不需要
# 您可以
# 要在
# 谁的
# 就可以
# 自己的
# 这是
# 是在
# 是一种
# 是因为
# 是有
# 也就
# 多个
# 将会
# 的说
# 他就
相关文章:
ppt在线制作免费网站推荐,有什么下载免费的ppt模板网站?
网站制作难吗安全吗,做一个网站需要多久时间?
建站中国官网:模板定制+SEO优化+建站流程一站式指南
如何在云主机上快速搭建网站?
建站之星IIS配置教程:代码生成技巧与站点搭建指南
h5在线制作网站电脑版下载,h5网页制作软件?
如何选择高效可靠的多用户建站源码资源?
武汉网站如何制作,黄黄高铁武穴北站途经哪些村庄?
制作网站的过程怎么写,用凡科建站如何制作自己的网站?
建站上市公司网站建设方案与SEO优化服务定制指南
香港服务器网站测试全流程:性能评估、SEO加载与移动适配优化
高防服务器如何保障网站安全无虞?
如何用PHP快速搭建CMS系统?
猪八戒网站制作视频,开发一个猪八戒网站,大约需要多少?或者自己请程序员,需要什么程序员,多少程序员能完成?
北京企业网站设计制作公司,北京铁路集团官方网站?
专业型网站制作公司有哪些,我设计专业的,谁给推荐几个设计师兼职类的网站?
微网站制作教程,不会写代码,不会编程,怎么样建自己的网站?
新网站制作渠道有哪些,跪求一个无线渠道比较强的小说网站,我要发表小说?
如何通过商城自助建站源码实现零基础高效建站?
如何在Golang中使用replace替换模块_指定本地或远程路径
简单实现Android验证码
如何通过wdcp面板快速创建网站?
Android自定义listview布局实现上拉加载下拉刷新功能
css网站制作参考文献有哪些,易聊怎么注册?
如何在阿里云高效完成企业建站全流程?
制作证书网站有哪些,全国城建培训中心证书查询官网?
宝塔建站助手安装配置与建站模板使用全流程解析
南平网站制作公司,2025年南平市事业单位报名时间?
如何获取上海专业网站定制建站电话?
如何使用Golang table-driven基准测试_多组数据测量函数效率
高端建站三要素:定制模板、企业官网与响应式设计优化
岳西云建站教程与模板下载_一站式快速建站系统操作指南
如何在宝塔面板创建新站点?
如何用VPS主机快速搭建个人网站?
建站主机解析:虚拟主机配置与服务器选择指南
网站制作公司哪里好做,成都网站制作公司哪家做得比较好,更正规?
桂林网站制作公司有哪些,桂林马拉松怎么报名?
想学网站制作怎么学,建立一个网站要花费多少?
制作营销网站公司,淘特是干什么用的?
建站之星价格显示格式升级,你的预算足够吗?
广德云建站网站建设方案与建站流程优化指南
清单制作人网站有哪些,近日“兴风作浪的姑奶奶”引起很多人的关注这是什么事情?
小说建站VPS选用指南:性能对比、配置优化与建站方案解析
建站之星安装提示数据库无法连接如何解决?
深圳网站制作平台,深圳市做网站好的公司有哪些?
小建面朝正北,A点实际方位是否存在偏差?
公司网站的制作公司,企业网站制作基本流程有哪些?
制作网站的网址是什么,请问后缀为.com和.com.cn还有.cn的这三种网站是分别是什么类型的网站?
实例解析angularjs的filter过滤器
详解一款开源免费的.NET文档操作组件DocX(.NET组件介绍之一)
*请认真填写需求信息,我们会在24小时内与您取得联系。