please

2025-12-11 0 980

pleasesudo替代品

委派精确的最小特权访问权限。轻松地用正则表达,仅揭露所需的内容,仅此而已。或使用编辑please文件编辑。

在不给用户提供完整的根壳的情况下管理盒子,大多数管理员都以一种或另一种形式具有正则表达式的经验,因此让我们以这种方式配置访问。

我看到了正则是正则不喜欢正则。没问题,您仍然可以使用please使用, please使用Ectect _的同行,或将每个字段/属性视为纯文本,并逃脱控制字符?(){} {} []+等。

please写有记忆安全的生锈。传统的C内存不安全,可能存在逻辑问题,但是该代码库相对较小。

我如何安装

它可能已经在您正在使用的存储库中:

如果没有,这是一个简单的安装:

please
cargo test && cargo build –release \\
&& install -o 0 -g 0 -m4755 target/release/ please target/release/ please edit /usr/local/bin\”>

git clone https://*gitl*ab.*com/edneville/please.git
cd please
cargo test && cargo build --release \\
&& install -o 0 -g 0 -m4755 target/release/ please target/release/ please edit /usr/local/bin

拱:

pleaser && makepkg -isr\”>

pacman -Syu git fakeroot devtools binutils gcc rust 
git clone https://aur@aur.ar**chlin*ux.org/pleaser.git
cd please r && makepkg -isr

Debian/Ubuntu:

apt install please r

Fedora(35):

dnf install please r

Netbsd:

pkgin install please r

Suse Tumbleweed:

zypper install please r

RHEL 7(EPEL):

please/
cargo test && cargo build –release && install -oroot -groot -D -m4755 target/release/ please target/release/ please edit /usr/local/bin\”>

yum install cargo git pam-devel
git clone \'https://*gitl*ab.*com/edneville/please.git\'
cd please /
cargo test && cargo build --release && install -oroot -groot -D -m4755 target/release/ please target/release/ please edit /usr/local/bin

可选地将sudo设置为please的别名:

please\”
alias sudoedit=\” please edit\”\”>

alias sudo=\" please \"
alias sudoedit=\" please edit\"

或者,如果您愿意,请在本地链接:

please edit sudoedit\”>

cd /usr/local/bin && ln -s /usr/local/bin/ please sudo && ln -s /usr/local/bin/ please edit sudoedit

我该如何设置

如果您不使用发行版本来验证requare_pass进行身份验证,则可能需要配置PAM。基于debian的需要与/etc/pam.d/相似的东西, please和/etc/pam.d/ please编辑:

#%PAM-1.0

# Set up user limits from /etc/security/limits.conf.
session    required   pam_limits.so

@include common-auth
@include common-account
@include common-session-noninteractive

在同一文件中,基于红帽的东西需要与此类似的东西:

#%PAM-1.0
auth       include      system-auth
account    include      system-auth
password   include      system-auth
session    optional     pam_keyinit.so revoke
session    required     pam_limits.so
session    include      system-auth

接下来,配置您的 / etc / please .ini,用适当的值替换用户名。 INI分为部分选项,匹配和操作。

部分选项

部分 影响
[部分名称] 部分名称,列表模式显示
包括=文件 将文件作为另一个INI源,将在本节中跳过其他选项。
包括= dir 将.Ini文件的DIR作为其他来源,以ASCII排序订单,将在本节中跳过其他选项。不匹配的文件将被忽略以允许编辑TMP文件。

包括和包括的包括和包括强制性论点。

比赛

假设用户是吉姆:

选项如下:

部分 影响
名称=正则 强制性,将配置应用于该实体。
TARGET = REGEX 可能会成为这些用户。
规则=正则 这是本节的命令正则命令正则默认值为 ^$
notbefore = yyyymmdd 该规则有效时的日期或yyyymmddhhmmss。
notafter = yyyymmdd 该规则到期时的日期或Yyyymmddhhmmss。
dateMatch = [DAY DD MON HH:MM:SS UTC YYYY] 正则匹配日期字符串
type = [编辑/运行/列表] 设置条目类型,run =执行,编辑= please编辑,list =显示用户权限
group = [true/false] 表示该名称=是指组而不是用户。
hostName = REGEX 主机适用的位置,默认为“ Localhost”。
target_group =正则 设置时必须提供匹配的组
dir =正则 允许在执行前切换到正则定义的目录。
允许=正则 与-a结合使用时,允许匹配环境键
search_path =字符串 将search_path更改为:分离的目录列表

确切的对应物,必须完全匹配。当存在正则和确切规则时,确切的规则匹配将具有优先级。

部分 影响
extcent_name =字符串 匹配此确切名称
extrect_hostname =字符串 匹配此确切的主机名
extcent_target =字符串 匹配此确切的目标用户
extct_target_group =字符串 匹配此确切的目标组
extcent_rule =字符串 匹配此确切规则
extcent_dir =字符串 匹配此确切目录

动作

部分 影响
许可= [true/false] 默认为true
require_pass = [true/false] 默认为true
last = [true/false] 当true时,匹配时停止处理,默认为false
原因= [true/fals/tregex] 设置时,需要-r提供的原因,默认为false
超时= [数字] 在整个几秒钟内等待密码输入多长时间
syslog = [true/false] 将此活动记录到Syslog,默认值= true
token_timeout = [数字] 身份验证令牌在整个几秒钟内有效多长时间
env_assign.key = value 武力环境密钥要分配
exitcmd = [程序] ( please编辑)如果程序退出0,请继续更换文件
editmode = [八分代模式/keep] ( please编辑)将目标文件模式设置为八进制模式,或保留现有文件的模式。如果不存在文件或未声明模式,则模式降至0600。如果存在文件,则在文件重命名之前读取和使用该模式

使用贪婪*。但是,在以前的版本中没有锚点(^和$),遵循发现的方法并坚持认为,在正则是锚点。这避免了/bin/bash匹配/home/user/bin/bash。

如果符合包含指令,则将处理该部分中的其他条目。纳入包括的情况也是如此。

规则的顺序很重要。最后一场比赛将获胜。设置许可证= false如果您想排除某些内容,但这应该非常罕见,因为许可证应与正则持续力相对,而不是使用正面匹配,然后使用负面匹配。最佳实践的规则是避免打开失败,然后尝试排除大多数宇宙。

例如,使用以下两个条目:

[jim_root_du]
name = jim
target = root
permit = true
rule = ^(/usr)?/bin/du (/home/[a-z0-9-]+\\s?)+
require_pass=false
[jim_postgres]
name = jim
target = postgres
permit = true
rule = /bin/bash
require_pass = false

将允许运行DU,AS/usr/bin/du或/bin/du作为根:

$ please du /home/*

并将允许在Postgres时运行Bash Shell:

please -t postgres /bin/bash
postgres$\”>

$ please -t postgres /bin/bash
postgres$

日期范围

对于大型环境,第三方需要在短时间内进行调试,这并不罕见。为了适应这个问题,有没有时间和时间段。这些可以是Yyyymmdd或Yyyymmddhhmmss。

使用Yyyymmdd的较短日期形式时,考虑了整天。

许多企业可能希望只有在有限的时间内允许使用用户,即使该个人在角色中处于永久性角色。

日期匹配

另一种日期类型是数据匹配项,这将部分限制为对日期字符串日dd -mon HH:MM:SS UTC年份的截面匹配项。

您可以允许一些一组用户在星期一执行一些房屋:

[l2_housekeeping]
name = l2users
group = true
target = root
permit = true
rule = /usr/local/housekeeping/tidy_(logs|images|mail)
datematch = ^Mon.*

默认部分

当匹配部分名称以默认为开头时,操作将保持设置,直到另一个匹配部分覆盖为止。重要的是要注意,允许= true将被隐式设置在匹配项上,因此,除非有充分的理由,否则默认部分中的set允许= false ,并且在随后的匹配部分中cluber = true 。有关更多详细信息, please参见.ini

please编辑

please编辑启用文件作为另一个用户的编辑。使用类型=编辑启用编辑而不是执行。第一个论点将传递给编辑。

默认情况下,文件权限位将反映现有文件权限。

如下所示:

  1. 用户运行编辑, please编辑-u root /etc /fstab
  2. /etc/fstab复制到/tmp/ please编辑。$ user.r8cyph9h._etc_fstab
  3. 用户的编辑器针对 / tmp / please编辑。$ user.r8cyph9h._etc_fstab
  4. 如果编辑器退出0,并且exitCMD退出0,则 /tmp / please编辑。$ user.r8cyph9h._etc_fstab被复制到/etc/fstab.lld3wrqb。 please编辑。复制。$用户
  5. /etc/fstab.lld3wrqb。 please编辑。复制。$用户将(目标)root拥有并重命名为 /etc /fstab

出口

在TMP编辑文件移动到源位置之前,可以使用ExITCMD。这可用于测试配置文件在重命名到位之前有效。

对于类似于Apache的内容,请考虑在运行测试以适应的测试之前将配置树复制到TMP目录。

其他例子

音频组的成员可以删除使用UserDel的userName_TMP的应用程序可能无法以username_tmp的形式进行清理的临时用户:

[user_remove_tmp_user]
name = audio
group = true
permit = true
require_pass = false
rule = /usr/sbin/userdel -f -r %{USER}_tmp\\.[a-zA-Z0-9]{10}

出于客房清洁的目的,可能允许某些用户销毁看起来大致像它们的日期盖章的ZFS快照:

[user_remove_snapshots]
name = data
group = true
permit = true
require_pass = false
rule = /usr/sbin/zfs destroy storage/photos@\\d{8}T\\d{6}

列出您可能会或可能不会做的事情:

please -l
You may run the following:
file: /etc/ please .ini
ed_root_list:root: ^.*$
You may edit the following:
file: /etc/ please .ini
ed_edit_ini:root: ^/etc/ please .ini$\”>

$ please -l
You may run the following:
  file: /etc/ please .ini
    ed_root_list:root: ^.*$
You may edit the following:
  file: /etc/ please .ini
    ed_edit_ini:root: ^/etc/ please .ini$

上面的输出表明我可能会运行任何内容,并且可以编辑please .ini配置。

或者,也许任何名称启动的用户admin都可以执行UserAdd和userDel:

[admin_users]
name = admin_\\S+
permit = true
require_pass = false
rule = /usr/sbin/user(add -m|del) \\S+

文件

/ etc/ please .ini

大安装

对于大安装,请考虑以下内容:

合并

当所有成员最小特权匹配该集合时,您可以在其中使用组。最好在这里考虑人们通常会扮演相同的角色,因此请尝试以这种方式组织规则,因此请在单个名称Regex Match中使用组或列表帐户。

中央配置注意事项

为了避免服务中的单个故障点,应在单个位置生成INI配置并将其推入安装。 INI文件很快解析,而访问LDAP的情况不仅较慢,而且容易出错。

可能需要使用缓存,但是需要一种正(正确匹配)和负(不正确匹配)的形式。 10,000台具有数百个活跃用户对LDAP服务器进行查找的计算机可能会出现问题。

由于这些原因,我更喜欢Rsync分布,因为该协议高度有效,并且总体上会降低网络转移。

LDAP可能会在以后重新考虑。

贡献

如果您发现任何您觉得缺少的东西,无论最初的设计如何, please随时提出有或没有拉的请求的问题。

非常感谢找到错误和记录问题,我预先感谢您。

我欢迎用张开双臂拉的请求。

位置

该项目的源代码当前托管在GitLab上,并镜像到GitHub。板条箱上有一个板条箱。它还具有保留其他项目信息的主页。

为什么please在某个圈子里r?

该项目命名为“ please ”。在某些地方,该项目名称被其他事物用于其他事物。有些软件包将被命名please r,有些包裹会please 。唯一重要的是,如果您希望某人成为三明治,请首先说“ please ”。

下载源码

通过命令行克隆项目:

git clone https://github.com/edneville/please.git

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

申明:本文由第三方发布,内容仅代表作者观点,与本网站无关。对本文以及其中全部或者部分内容的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。本网发布或转载文章出于传递更多信息之目的,并不意味着赞同其观点或证实其描述,也不代表本网对其真实性负责。

左子网 建站资源 please https://www.zuozi.net/35113.html

onnx utils
上一篇: onnx utils
frame
下一篇: frame
常见问题
  • 1、自动:拍下后,点击(下载)链接即可下载;2、手动:拍下后,联系卖家发放即可或者联系官方找开发者发货。
查看详情
  • 1、源码默认交易周期:手动发货商品为1-3天,并且用户付款金额将会进入平台担保直到交易完成或者3-7天即可发放,如遇纠纷无限期延长收款金额直至纠纷解决或者退款!;
查看详情
  • 1、描述:源码描述(含标题)与实际源码不一致的(例:货不对板); 2、演示:有演示站时,与实际源码小于95%一致的(但描述中有”不保证完全一样、有变化的可能性”类似显著声明的除外); 3、发货:不发货可无理由退款; 4、安装:免费提供安装服务的源码但卖家不履行的; 5、收费:价格虚标,额外收取其他费用的(但描述中有显著声明或双方交易前有商定的除外); 6、其他:如质量方面的硬性常规问题BUG等。 注:经核实符合上述任一,均支持退款,但卖家予以积极解决问题则除外。
查看详情
  • 1、左子会对双方交易的过程及交易商品的快照进行永久存档,以确保交易的真实、有效、安全! 2、左子无法对如“永久包更新”、“永久技术支持”等类似交易之后的商家承诺做担保,请买家自行鉴别; 3、在源码同时有网站演示与图片演示,且站演与图演不一致时,默认按图演作为纠纷评判依据(特别声明或有商定除外); 4、在没有”无任何正当退款依据”的前提下,商品写有”一旦售出,概不支持退款”等类似的声明,视为无效声明; 5、在未拍下前,双方在QQ上所商定的交易内容,亦可成为纠纷评判依据(商定与描述冲突时,商定为准); 6、因聊天记录可作为纠纷评判依据,故双方联系时,只与对方在左子上所留的QQ、手机号沟通,以防对方不承认自我承诺。 7、虽然交易产生纠纷的几率很小,但一定要保留如聊天记录、手机短信等这样的重要信息,以防产生纠纷时便于左子介入快速处理。
查看详情

相关文章

猜你喜欢
发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务