最新要闻
- 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/viFOLLOW 和 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斤 送礼囤货必备
极端寒流来袭:吉尔吉斯斯坦终年不冻“热湖”罕见被冰封
弟弟发现姐姐首饰装备库原地惊了:被骗好多年!网友求购买链接