最新要闻
- AI偷偷写70多篇新闻:数月后才被人发现
- 今日报丨与网易延长半年合作失败 内幕曝光:分手一事错怪暴雪了?
- 贾跃亭下周回国?FF发春节“回家”海报:或暗示将落地中国
- 【新要闻】不到3年狂揽1.41万亿元?抖音怎么做到的?
- 【天天热闻】特效太炸!《王者荣耀》李信新皮肤公布 碾压一念神魔
- 14年合作结束!暴雪网易彻底谈崩 玩家不满:暴雪甩锅被识破
- 紧跟特斯拉、问界!小鹏汽车宣布降价:14.89万元起
- 3000次超长寿命国产闪存 致态512GB SSD到手229元
- 资讯:印度男子得子后去尼泊尔还愿:不幸遭遇空难
- 马斯克曾大赞中国工人能工作到凌晨3点 特斯拉德国工人不干了
- 世界快讯:温州一奔驰越线撞击比亚迪 比亚迪调转180度 车头都快没了
- 环球速读:魔兽国服1月24日关服!暴雪称已提议延期半年 网易拒绝
- 每日速读!“抠书式”还原的剧版《三体》获赞!动画版已扑街:豆瓣跌至4.6分
- 领券还送牙刷!三金西瓜霜牙膏狂促:6支到手23.7元
- 129元 小米米家保温壶上架:1.8L大容量、6小时保温75℃
- 国产良心!《光明记忆:无限》推出第三人称模式:女主新皮肤来了
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
个人使用 sudo 方法
sudo
作用:允许 系统管理员授予某些用户或用户组以 其他用户身份运行某些或所有命令的权限
- su 用于变更为其他使用者的身份的命令,一般需要键入该使用者的密码
- sudo 则是对 su 使用的简化,不需要 su 琐碎的操作步骤,更佳的便捷且对权限的操纵更细腻
- Sudo 是免费软件,遵守 ISC 式许可证,相关详情
基本安装
虽然 sudo 在大多数 Linux 系统上会自带,但这不是绝对的事情
如果是使用 Debian 系统或其分支系统使用如下命令,想了解 Debian 包管理可以查看 此处
【资料图】
apt install sudo
如果是使用 Ret Hat 相关的系统及其分支可以使用如下命令
yum install sudo
如果需要想有更多自定义可以进行源码手动编译安装,官方安装说明
配置 sudo
sudo 支持用于安全策略、审计和输入或输出日志记录的插件架构
- 默认安全策略是
sudoers
,sudoers 策略插件作用是 控制用户使用 sudo 时权限的范围 - 第三方可以开发和分发他们自己的插件以与 sudo 前端无缝协作,一般并情况并不会运用到,如果想要了解可查看 此处
sudoers
sudoers 安全策略要求大多数用户在使用 sudo 之前进行 身份验证,如果满足下列条件则不需要密码
- 调用用户是root用户
- 目标用户与调用用户相同
- 策略已禁用用户或命令的身份验证
- 可能支持凭证缓存,以允许用户在 sudo 一段时间内再次运行而无需身份验证,默认情况下会以每个终端为基础缓存凭据 5 分钟
注意:与 su 不同之处在 sudoers 需要身份验证时,它会验证 调用用户的凭据而不是 目标用户或根用户的凭据
- 如果 sudo 是由 root 用户运行的,并且设置了
SUDO_USER
环境变量,sudoers 策略将使用该值来确定实际用户是谁 - 即使调用了根 shell,用户也可以使用该值通过 sudo 记录命令
- 允许
-e
选项在通过 sudo 运行脚本或程序调用时仍然有用
sudoers 的管理方式通过以下两种方法
- /etc/sudoers 文件,此方法适合个人使用
- 可选地在 LDAP 中驱动,此方法适用于大型分布式环境,后面不提想要了解可以点击 此处
使用 /etc/sudoers 配置文件
对于默认安全策略 sudoers,应使用 visudo 程序更改配置文件,这将确保不会引入语法错误
- visudo 使用 vi 打开 /etc/sudoers 文件,但是在保存退出时,visudo 会检查内部语法,避免用户输入错误信息
- 所以使用 visudo 建议查询一下 vi 用法,它与 vim 相比使用时会有些许出入
sudoers 文件格式
- 由两种类型的条目组成:别名(基本上是变量)和用户规范(指定谁可以运行什么)
- sudoers 文件语法将使用 EBNF 描述
别名 Aliases
分四类:User_Alias, Runas_Alias, Host_Alias, Cmnd_Alias
Alias ::= "User_Alias" User_Alias_Spec (":" User_Alias_Spec)* | "Runas_Alias" Runas_Alias_Spec (":" Runas_Alias_Spec)* | "Host_Alias" Host_Alias_Spec (":" Host_Alias_Spec)* | "Cmnd_Alias" Cmnd_Alias_Spec (":" Cmnd_Alias_Spec)* | "Cmd_Alias" Cmnd_Alias_Spec (":" Cmnd_Alias_Spec)*User_Alias ::= NAMEUser_Alias_Spec ::= User_Alias "=" User_ListUser_List ::= User | User "," User_ListUser ::= "!"* user name | "!"* #user-ID | "!"* %group | "!"* %#group-ID | "!"* +netgroup | "!"* %:nonunix_group | "!"* %:#nonunix_gid | "!"* User_AliasRunas_Alias ::= NAMERunas_Alias_Spec ::= Runas_Alias "=" Runas_List ::= Runas_Member | Runas_Member "," Runas_ListRunas_Member ::= "!"* user name | "!"* #user-ID | "!"* %group | "!"* %#group-ID | "!"* %:nonunix_group | "!"* %:#nonunix_gid | "!"* +netgroup | "!"* Runas_Alias | "!"* ALLHost_Alias ::= NAMEHost_Alias_Spec ::= Host_Alias "=" Host_ListHost_List ::= Host | Host "," Host_ListHost ::= "!"* host name | "!"* ip_addr | "!"* network(/netmask)? | "!"* +netgroup | "!"* Host_Alias | "!"* ALLCmnd_Alias ::= NAMECmnd_Alias_Spec ::= Cmnd_Alias "=" Cmnd_ListCmnd_List ::= Cmnd | Cmnd "," Cmnd_ListCmnd ::= Digest_List? "!"* command | "!"* directory | "!"* Edit_Spec | "!"* Cmnd_AliasDigest_List ::= Digest_Spec | Digest_Spec "," Digest_ListDigest_Spec ::= "sha224" ":" digest | "sha256" ":" digest | "sha384" ":" digest | "sha512" ":" digestdigest ::= [A-Fa-f0-9]+ | [A-Za-z0-9\+/=]+command ::= command name | command name args | command name regex | command name """" | ALLcommand name ::= regex | file nameEdit_Spec ::= "sudoedit" file name+ | "sudoedit" regex | "sudoedit"NAME ::= [A-Z][0-9A-Z]*
- User_Alias: 用户名别名
- User_List: 一个或多个用户名或系统组名(以
%
为前缀)、以 UID 或 GID(以#
或%#
为前缀)、网络组(以+
为前缀)、非 Unix 组组成名称和 ID(分别以%:
和%:#
为前缀)以及 User_Alias - Runas_Alias: 用户身份别名
- Runas_List: 类似 User_List 但 ALL 是任意或任何的涵义
- Host_Alias: 主机别名
- Host_list: 由一个或多个主机名、IP 地址、网络号、网络组(以
+
为前缀)和其他别名组成 - Cmnd_Alias: 命令别名
- Cmnd_list: 一个或多个命令、目录或别名的列表
- Digest_List: 一个或多个 Digest_Spec 条目的 逗号分隔列表
- 从
sudo 1.9.0
开始,如果需要可以使用 Cmd_Alias 代替 Cmnd_Alias
别名定义都是以下形式
Alias_Type NAME = item1, item2, ...
- Alias_Type: 别名类型
- NAME: 由大写字母、数字、下划线字符组成的字符串,且必须以大写字母开头
- 可以将多个相同类型的别名定义放在一行中以 冒号
:
分隔
用户规范
用户规范确定用户可以在指定主机上运行哪些命令
User_Spec ::= User_List Host_List "=" Cmnd_Spec_List \ (":" Host_List "=" Cmnd_Spec_List)*Cmnd_Spec_List ::= Cmnd_Spec | Cmnd_Spec "," Cmnd_Spec_ListCmnd_Spec ::= Runas_Spec? Option_Spec* (Tag_Spec ":")* CmndRunas_Spec ::= "(" Runas_List? (":" Runas_List)? ")"Option_Spec ::= (SELinux_Spec | Solaris_Priv_Spec | Date_Spec | Timeout_Spec | Chdir_Spec | Chroot_Spec)SELinux_Spec ::= ("ROLE=role" | "TYPE=type")Solaris_Priv_Spec ::= ("PRIVS=privset" | "LIMITPRIVS=privset")Date_Spec ::= ("NOTBEFORE=timestamp" | "NOTAFTER=timestamp")Timeout_Spec ::= "TIMEOUT=timeout"Chdir_Spec ::= "CWD=directory"Chroot_Spec ::= "CHROOT=directory"Tag_Spec ::= ("EXEC" | "NOEXEC" | "FOLLOW" | "NOFOLLOW" | "LOG_INPUT" | "NOLOG_INPUT" | "LOG_OUTPUT" | "NOLOG_OUTPUT" | "MAIL" | "NOMAIL" | "INTERCEPT" | "NOINTERCEPT" | "PASSWD" | "NOPASSWD" | "SETENV" | "NOSETENV")
- 用户规范的基本结构可以理解为
who where = (as_whom) what
描述为 who 在 where 使用 as_whom 的身份执行 what 这件事 - who: 指使用者,比如用户或用户组等
- where: 使用场景,比如主机或网络组等
- as_whom: 使用身份,比如用户或用户组等
- what: 做什么,比如命令等
- 用户规范的基本结构可以理解为
示例
# 允许用户 dgb 在主机 boulder 上可以 operator 的身份执行 /bin/ls、/bin/kill、/usr/bin/lprm 中任意命令dgb boulder = (operator) /bin/ls, /bin/kill, /usr/bin/lprm# 允许用户 dgb 在主机 boulder 上可以用 operator 用户或 operator 组的身份执行 /bin/ls,# 可以用 root 身份执行 /bin/kill、/usr/bin/lprm 中任意命令dgbboulder = (operator : operator) /bin/ls, (root) /bin/kill,\/usr/bin/lprm# 用户 alan 可以作为用户 root 或 bin 运行任何命令,可选择将组设置为 operator 或 systemalan ALL = (root, bin : operator, system) ALL
使用
$ sudo -u operator /bin/ls$ sudo -u operator -g operator /bin/ls$ sudo -g operator /bin/ls
标签 Tag_Spec
一个命令可能有零个或多个与之关联的标签,后续就会继承该标签,除非它被相反的标签覆盖
EXEC 和 NOEXEC
如果sudo编译时带有 noexec 支持并且底层操作系统支持它,则该 NOEXEC 标记可用于防止动态链接的可执行文件本身运行更多命令
# 用户 aaron 可以运行 /usr/bin/more, /usr/bin/vi,但将禁用 shell 转义。aaron shanty = NOEXEC: /usr/bin/more, /usr/bin/vi
FOLLOW 和 NOFOLLOW
从版本 1.8.15 开始,除非启用 sudoedit_follow 标志,sudoedit 否则将不会打开作为符号链接的文件,如果进行覆盖则可以打开,这对标签仅对 sudoedit 命令有效,对所有其他命令都将被忽略
LOG_INPUT 和 NOLOG_INPUT
在每个命令的基础上覆盖 log_input 标志的值
LOG_OUTPUT 和 NOLOG_OUTPUT
在每个命令的基础上覆盖 log_output 标志的值
MAIL 和 NOMAIL
这些标记通过在每个命令的基础上覆盖 mail_all_cmnds 标志的值,提供对当用户运行命令时是否发送邮件的细粒度控制
PASSWD 和 NOPASSWD
默认情况下,sudo 要求用户在运行命令之前进行身份验证,但可以通过 NOPASSWD 标签修改此行为,相反 PASSWD 标签可以用来颠倒事物
# 将允许用户 ray 在机器 rushmore 上以 root 身份运行没有密码的情况下运行 /bin/kill,对 /bin/ls, /usr/bin/lprm 则需要密码ray rushmore = NOPASSWD: /bin/kill, PASSWD: /bin/ls, /usr/bin/lprm
但是请注意,该标记对 exempt_group 设置 PASSWD 指定的组中的用户没有影响
SETENV 和 NOSETENV
这些标记在每个命令的基础上覆盖 setenv 标志的值
- 如果 SETENV 已为命令设置,则用户可以通过选项从命令行禁用env_reset标志
-E
选项,在命令行上设置的环境变量不受 env_check, env_delete, env_keep 施加的限制,因此只应允许受信任的用户以这种方式设置变量- 如果匹配的命令是 ALL,则 SETENV 该命令隐含该标记,这个默认值可以通过使用 NOSETENV 标签来覆盖
INTERCEPT 和 NOINTERCEPT
如果 sudo 已使用拦截支持进行编译并且底层操作系统支持它,则该 INTERCEPT 标记可用于使命令生成的程序针对 sudoers 进行验证并记录下来,就像 sudo 直接运行它们一样
- 这与允许 shell 转义的命令(如 shell、编辑器、分页器)结合使用很有用
- 由于策略检查可能会在运行命令(例如执行大量子命令的 shell 脚本)时增加延迟,因此会产生额外的开销
在 sudoers 文件中的主机名、路径名和命令行参数中允许使用 POSIX.1 标准的通配符,从版本 1.9.10 开始可以对路径名和命令行参数使用正则表达式,使用 POSIX 扩展正则表达式, 强烈建议不要对命令名称使用 取反类型的正则表达式,可能会存在规则绕过的问题
下列为 POSIX.1 标准的通配符,如果是 POSIX 扩展正则表达式可以自行查询
*
: 匹配任意一组零个或多个字符(包括空格)?
: 匹配任何单个字符(包括空格)[...]
: 匹配指定范围内的任意字符[!...]
: 匹配不在指定范围内的任何字符\
: 转义特殊字符,从版本 1.9.10 开始,整个路径可以用双引号括起来,在这种情况下不需要转义
sudoers 文件范围
使用 @include
和 @includedir
指令从当前正在解析的 sudoers 文件中包含其他 sudoers 文件
除了本地的每台机器文件之外,还可以使用包含文件来保留站点范围的 sudoers 文件
站点范围的sudoers文件将是 /etc/sudoers 而每台机器的文件将是 /etc/sudoers.local
# 在 /etc/sudoers 中包含 /etc/sudoers.local@include /etc/sudoers.local
@includedir
指令可用于创建一个 sudoers.d 目录,系统包管理器可以将 sudoers 文件规则放入其中作为包安装的一部分,文件按排序的词法顺序进行解析
编写注意:特殊字符和保留字
#
在 sudoers 文件中作为 注释符!
以用作列表或别名中的 逻辑非运算符\
长行换行作为 续行符ALL
一个内置别名,它总是使匹配成功,正如名称任何或所有- 保留字:CHROOT, PRIVS, LIMITPRIVS, ROLE, TYPE, TIMEOUT, CWD, NOTBEFORE, NOTAFTER
个人使用 sudo 方法
环球视讯!iOS APP上架流程(详细)
焦点观察:聚焦技术与体验极致提升,阿里云视频云连续5年领跑!
还在用 Excel 和 SQL?火山引擎 VeDI 这款产品帮你更快处理数据
AI偷偷写70多篇新闻:数月后才被人发现
今日报丨与网易延长半年合作失败 内幕曝光:分手一事错怪暴雪了?
贾跃亭下周回国?FF发春节“回家”海报:或暗示将落地中国
【新要闻】不到3年狂揽1.41万亿元?抖音怎么做到的?
【天天热闻】特效太炸!《王者荣耀》李信新皮肤公布 碾压一念神魔
JNPF流程审批加签功能讲解
14年合作结束!暴雪网易彻底谈崩 玩家不满:暴雪甩锅被识破
紧跟特斯拉、问界!小鹏汽车宣布降价:14.89万元起
3000次超长寿命国产闪存 致态512GB SSD到手229元
资讯:印度男子得子后去尼泊尔还愿:不幸遭遇空难
马斯克曾大赞中国工人能工作到凌晨3点 特斯拉德国工人不干了
世界快讯:温州一奔驰越线撞击比亚迪 比亚迪调转180度 车头都快没了
环球速读:魔兽国服1月24日关服!暴雪称已提议延期半年 网易拒绝
图书管理系统
天天最新:Educational Codeforces Round 14
每日速读!“抠书式”还原的剧版《三体》获赞!动画版已扑街:豆瓣跌至4.6分
领券还送牙刷!三金西瓜霜牙膏狂促:6支到手23.7元
129元 小米米家保温壶上架:1.8L大容量、6小时保温75℃
国产良心!《光明记忆:无限》推出第三人称模式:女主新皮肤来了
00后女生熬夜关灯玩手机后眼部囊肿:专家科普
luckysheet踩坑记录
使用管控平台管理redis集群
当前视讯!在WPF程序中,使用Freetype显示字体
追光动画十年集大成之作!电影《长安三万里》预告曝光
AI换脸小视频泛滥网络 日本人出手:用AI检测真伪
全球快资讯丨知名经济学家:特斯拉不可能成为苹果那样的赚钱机器
热点!90后女生开比亚迪环游中国:总花费2.3万元 油费+电费还不到3千
每日消息!《流浪地球2》“人类股骨”预告发布:AI技术修复李雪健老师声音
什么是整理书包?整理书包的心得体会
计算机能力是什么意思?计算机能力一般怎么填写?
大量元素是什么意思?大量元素和微量元素有哪些?
管理报表包括哪些?管理报表和财务报表的区别有哪些?
什么是地理位置图?地理位置图用什么软件?
怎么用烤箱烤饼干?用烤箱烤饼干的做法是什么?
焦点热文:冰蝎V4.0流量分析到攻防检测
剑灵武神塔怎么进?剑灵武神塔20层苏向阳怎么打?
安卓手机相册在哪个文件夹?安卓手机相册怎么加密?
appsync是什么意思?如何安装appsync?
安卓系统怎么升级?安卓系统和鸿蒙系统哪个好?
全球热议:微软智能语音大升级:方言念古诗无压力
每日热门:特斯拉、华为问界大降价!李想:他们都得对比理想L8
环球今头条!俩小孩小区内5次放火引燃SUV 专家:熊孩子闯祸家长需兜底
每日时讯!机械硬盘大溃败:去年出货量近乎腰斩
大众、长安“缝合怪”?换代天籁消费者不买账 跌出B级车前十榜
世界热消息:学习笔记——Spring底层IOC实现;Spring依赖注入数值问题;Spring依赖注入方式
速读:FlinkSQL 时间类型转化使用小结
焦点播报:国产科幻巨制!《流浪地球2》预售票房突破4000万
微速讯:动画扑街、电视剧成神 《三体》电影版最新进展公布
嫦娥五号科研成果!中国科学家精确测定月球年龄:20.3亿年
世界快报:迪士尼联名!美特斯邦威羽绒服大促 原价500多现1百多到手
画面震撼!五菱小汽车排队“坐”火车去墨西哥
天天百事通!LibreOJ L6210 「美团 CodeM 决赛」tree
读编程与类型系统笔记09_泛型数据结构
热头条丨17岁少女晒爸爸500元买的奢侈包包遭群讽 含泪反击 结局暖心
天天热资讯!2023年我国新能源汽车销量可达950万辆:全球第一没跑 电池便宜到发指
“U盘之父”朗科房东不好当:腾讯租的15层大楼突然全退了
今日最新!1%超级富豪拿走全球三分之二新财富:穷人越来越多 专家称应财富重分配
全球消息!曾被网友戏称“候机大棚” 佛山机场花2000万改造完成
【新视野】降价后 特斯拉订单数环比涨500%!马斯克赢麻了
盗版阿凡达2合法后!Intel、微软、NV等低调回俄罗斯 身体诚实
环球信息:联想小新Pro 2023魔改140W快充 搭载新一代聚能电池有多强?
滚动:要么卸载、要么盗版!视频平台赚钱只能靠“割韭菜”:你无力反抗?
2个大厂 100亿级 超大流量 红包 架构方案 (史上最全)
VUEX 的使用学习二: state
环球时讯:我的2022
每日时讯!疑似被王思聪殴打者发声:没有赔209万 具体金额闭口不提
天天热推荐:小米最强旗舰!曝小米13 Ultra提供16+512GB版本
天天新动态:小米MIX Fold 2推送MIUI 14稳定版:系统大精简、支持光子引擎
女子网购100根仙女棒 收到100根铁丝:商家一句话噎死人
AMD Zen4锐龙终于要真正便宜了!果断坐等
【天天速看料】洛谷P2294. [HNOI2005] 狡猾的商人
当前关注:轻松解决 CSS 代码都在一行的问题
Cookie 会话身份验证是如何工作的?
世界速看:以太坊签名从数学原理到安全应用
焦点滚动:女子买老陈醋买到“老陈西昔”:雷碧、康帅傅、娃啥啥等山寨货防不胜防
全球观点:国内供不应求的红魔8 Pro亮相海外:配置变了
威武!北京跻身全球百强科技集群前三 研发强度超纽约
世界快资讯:Matplotlib绘制散点图与条形图
全球实时:Hack The Box系列——【Markup】XML外部实体注入(XXE)
算法学习笔记(11): 原根
【全球快播报】ASP.NET Core+Element+SQL Server开发校园图书管理系统(一)
Blazor技术入门
种植牙的高价:被打碎了
为一季度量产做准备!宁德时代申请注册“麒麟电池”商标
MacBook Air迎15岁生日 首次亮相由乔布斯从信封取出
全球报道:市场被国产手游席卷了 日本:课税!
今日最新!男孩寒假送外卖:20天挣7700元 给妈妈2000买年货
热资讯!一加11R现身印度官网:低频版骁龙8+、120Hz高刷屏
当前资讯!法拉利超跑当婚车 雪天接亲上坡频繁打滑 网友:后驱车肯定滑
一次性塑料餐具:开始被禁了
全球热议:关于GIT使用的扫盲知识
【深度解读】卫星通信工作频段
新一代安卓机皇!三星Galaxy S23 Ultra拍照分辨率达12240x16320
环球热点评!旺旺大礼包 经典零食箱62元2.7斤 送礼囤货必备
极端寒流来袭:吉尔吉斯斯坦终年不冻“热湖”罕见被冰封
弟弟发现姐姐首饰装备库原地惊了:被骗好多年!网友求购买链接