没有读取权限执行脚本

2023-12-06

我想允许用户执行包含敏感数据的 bash 脚本。因此,我不希望他们拥有阅读权限。 “直接”解决方案似乎不可能,但我可能已经找到了解决方法期待手册页:

像往常一样创建 Expect 脚本(包含秘密数据)。 使其权限为 750 (-rwxr-x---) 并由受信任的组拥有, 即允许阅读它的组。如果需要,创建一个新的 为此目的而成立的团体。接下来,创建一个具有权限的/bin/sh脚本 2751 (-rwxr-s--x) 属于以前的同一组。

我尝试按如下方式复制此内容: 在一个文件夹中,我有两个脚本:

脚本.sh:

#!/bin/sh
echo "targetscript echo"

运行脚本.sh:

#!/bin/sh
echo "runscript echo"
groups
./script.sh

我按照手册页中的建议授予了他们权利:

groupadd scriptrunner
chown {myusername}:scriptrunner runscript.sh
chmod 2751 runscript.sh
chown root:scriptrunner script.sh
chmod 750 script.sh

的输出ls -l看起来没问题:

-rwxr-s--x. 1 {myusername} scriptrunner 51 Aug 25 13:04 runscript.sh
-rwxr-x---. 1 root         scriptrunner 35 Aug 25 13:01 script.sh

然而,当我跑步时./runscript.sh没有root,我收到以下错误:

runscript echo
{myusername} wheel
./runscript.sh: line 4: ./script.sh: Permission denied

我不知道出了什么问题。谁能帮我?


我将回到根本问题,因为我认为如果没有expect hack,解决起来会更容易。

因此,您需要的是对脚本具有执行权限,但不需要读取权限。这仅适用于二进制文件(即未解释的脚本) - 请参阅此处的详细信息https://unix.stackexchange.com/questions/34202/can-a-script-be-executable-but-not-可读

所以也许你首先将 bash 脚本编译成二进制文件会更好(使用 shc - 请参阅此处https://unix.stackexchange.com/questions/64762/how-to-convert-a-shell-script-into-a-binary-executable),然后设置二进制文件的仅执行权限。之后,您的用户应该能够执行(但不能读取)二进制文件。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

没有读取权限执行脚本 的相关文章

  • Bash 脚本监听按键以继续

    因此 我想编写一个由一系列步骤组成的 bash 脚本 并将其标识为 task 然而 每个步骤都只能完成并且可以根据用户的需要运行 Do task1 if keypressed stop task1 and move on this is t
  • 如何使用 echo 写入非 ASCII 字符?

    如何写非ASCII http en wikipedia org wiki ASCII使用 echo 的字符 是否有转义序列 例如 012或类似的东西 我想使用以下方法将 ASCII 字符附加到文件中 echo gt gt file 如果您关
  • 这种 bash 文件名提取技术有何用途?

    我有一部分 bash 脚本正在获取不带扩展名的文件名 但我试图了解这里到底发生了什么 是做什么用的 有人可以详细说明 bash 在幕后做了什么吗 如何在一般基础上使用该技术 bin bash for src in tif do txt sr
  • 如何从 mysqldump 中删除表

    如何删除 mysqldump 中包含大量表的一个大表的输出 我有一个 6 GB 大的数据库转储 但其中 90 只是一个日志记录表 cache entries 我的备份中不再需要它 如何轻松删除转储中描述大型日志记录表的部分 我找到了这个 h
  • 配置confixtx.yaml文件?

    我正在尝试使用以下内容构建 Hyperledger Fabric 网络 Smartforce 订购者组织 Falcon io ORG1 弗罗斯特 io ORG2 我已经使用 cryptogen 工具生成了所有加密材料 不希望使用 confi
  • 在 BASH 脚本中使用字符串作为变量名

    我有以下内容 bin sh n fred bob f n echo f 我需要在替换后执行底线 echo n 有办法做到这一点吗 我刚刚得到 test sh line 8 f bad substitution 在我这边 您可以像这样使用数组
  • 如何将查找结果传递给 CP,以便带空格的文件名起作用 [重复]

    这个问题在这里已经有答案了 我正在尝试将带有特定附件的文件复制到不同的目录 并保留其相对路径 从我调用的原始顶部路径 cp parents find name pdf print new path 我相信这有效 但仅当找到的文件名称中没有空
  • 为什么是 ”& ;”无效的语法?

    我正在尝试在终端上运行 for 循环 我希望将每次迭代发送到后台进程 以便所有迭代同时运行 以下是命令一一运行 for i in sra do fastq dump split files i done only 我突出显示了分号 要同时运
  • 如何在 Linux 中重新添加 unicode 字节顺序标记?

    我有一个相当大的 SQL 文件 它以 FFFE 的字节顺序标记开头 我使用 unicode 感知的 linux 分割工具将此文件分割成 100 000 行块 但是当将这些传递回窗口时 它确实not与第一个部分以外的任何部分一样 只是它具有
  • 将 mysql 查询输出存储到 shell 变量中

    我需要一个变量来保存从数据库检索的结果 到目前为止 这基本上是我正在尝试但没有成功的事情 myvariable mysql database u user p password SELECT A B C FROM table a 正如你所看
  • 用于读取文件的 Bash 脚本

    不知道为什么最后一行没有从脚本中删除 bin bash FILENAME 1 while read line do cut d f2 echo line done lt FILENAME cat file 1 test 2 test 3 t
  • Python bash 管道

    我想将 python 脚本的输出通过管道传输到 bash 脚本 到目前为止我所做的是尝试使用os popen sys subprocess 并试图给出一个管道的例子 os popen echo P 1 1 591336 4927369 1
  • Bash 字符串之间的比较 - 相等但不相等

    我只想在 Bash 中的两个字符串之间进行非常简单的比较 stat curl Is url head n 1 echo stat if stat HTTP 1 1 200 OK then echo symbol is OK echo sta
  • Bash 脚本跳过提取受密码保护的档案

    我有一个脚本 它使用命令对某些文件夹中的特定 zip 和 或 tar gz 存档进行批量提取 unzip o zip path d destination folder 不幸的是 当存档受密码保护时 脚本会停止并等待密码输入 有没有办法省略
  • 打印本周星期一的日期(在 bash 中)

    我想获取本周星期一的 YYYYMMdd 格式的日期 例如 今天是 20110627 从明天到周日 我仍然想打印周一 今天 的日期 然后下周重复这个过程 monday date dmonday Y m d last monday date d
  • Python 子进程:无法转义引号

    我知道以前曾问过类似的问题 但它们似乎都是通过重新设计参数的传递方式 即使用列表等 来解决的 但是 我这里有一个问题 因为我没有这个选项 有一个特定的命令行程序 我使用的是 Bash shell 我必须向其传递带引号的字符串 它不能不被引用
  • Bash 目录上的 For 循环

    快速背景 ls src file1 file2 dir1 dir2 dir3 Script bin bash for i in src do if d i then echo i fi done Output src dir1 src di
  • 打印 STDOUT/STDERR 并将它们写入 Bash 中的文件?

    有没有办法让 Bash 将 STDOUT STDERR 重定向到文件 但仍然将它们打印到终端 这会将 STDOUT 和 STDERR 重定向到同一个文件 some command 2 gt 1 tee file log Example to
  • 如果文件修改日期早于 N 天

    此问题涉及在文件的修改日期早于这么多天时采取行动 我确信创建日期或访问日期会类似 但对于修改日期 如果我有 file path name to some file N 100 for example N is number of days
  • rsync --include 选项不排除其他文件

    尝试rsync某些扩展名 sh 的文件 但下面的bash脚本仍然传输所有文件 为什么 from home xxx rsync zvr include sh from root host home tmp 您需要添加 exclude all

随机推荐

  • 三星启用禁用“驾驶模式”

    我想启用 禁用驾驶模式在某些三星设备 Galaxy S2 S3 上可用 我知道我必须在系统设置中添加一些内容 但我不知道是什么 因此 请建议我应该使用哪些值或者在哪里可以找到此信息 Settings System putInt contex
  • 如何制作方形图像的 LazyVGrid?

    如何制作类似于照片库的方形图像 我正在尝试以下操作 let columns GridItem GridItem flexible GridItem flexible LazyVGrid columns columns alignment c
  • 使用有效的 access_token 时缺少令牌端点 URI

    突然 可能是 gem 更新 调用 Google api 停止工作了 我已经能够检索 Gmail 线程 但现在不能了 到目前为止我所拥有的 我能够检索刷新令牌以进行离线访问 所以我存储了刷新和访问令牌 伟大的 现在我想检索个人资料信息 这就是
  • C#:是否有必要处理自定义控件内的图形元素?

    我创建了一个自定义控件 覆盖了它的绘制事件 当我尝试处理我创建的图形时 它们就会从屏幕上消失 我不需要在自定义控件中使用 dispose 吗 编辑 我已经包含了一个代码片段 为什么我无法处理从 PaintEventArgs 创建的 dc 图
  • 是否有类似正则表达式的工具能够解析匹配符号?

    这个正则表达式 不会匹配匹配的括号 而是匹配字符串中的最后一个括号 是否有正则表达式扩展或类似的东西 具有允许这样做的正确语法 例如 there are many things on the box except carrots and a
  • R 中线与点的颜色不同

    我有一个笛卡尔坐标数据集 我想制作一个基本的散点图 其中每个点都根据预设的颜色向量进行着色 通过以下示例很容易实现这一点 A hypothetical dataset XCoords lt c 1 3 5 6 8 YCoords lt c
  • 如何解析Json.NET多态对象?

    我编写了一个 Web 服务 用于发送和返回使用 Json NET 创建的 json 我已经包含了类型名称 它允许多态性 与一个一点黑客行为 我已经在 silverlight 客户端上使用了它 但我不知道如何让它在 javascript 客户
  • Ruby on Rails - £ 符号麻烦

    I have 以一种形式 当表单呈现时 符号显示为 我使用的是utf 8编码 为什么会发生这种情况 根据我的经验提出的建议 验证您的文件 erb 是否以 utf 8 保存 我推荐你使用数字对货币 method
  • 无法收听向上插入符号上的点击

    我有一个活动 MainActivity 它扩展了actionbaractivity并实现了NavigationDrawer 我已经在活动本身中设置了抽屉切换 我正在从另一个片段创建的片段创建新片段 而另一个片段又由 MainActivity
  • 如何获取 MongoDB collection.find() 的回调

    当我跑步时collection find 在 MongoDB Node Express 中 我想在完成时得到回调 正确的语法是什么 function id callback var o id new BSON ObjectID id db
  • 为什么 INotifyPropertyChanged 不更新 XAML 中的变量?

    我想模拟模型中的数据更改并使该数据反映在 XAML 中 据我了解 我需要实现 INotifyPropertyChanged 但是 在下面的代码示例中 XAML 仅显示一次来自客户的数据 但日期和时间永远不会更改 在以下示例中 我必须更改哪些
  • Kodos 和“无法引用开放组”

    我只想匹配 1010 或 0101 但不想匹配 1111 或 0000 我使用以下正则表达式 b 1 0 2 它在 Kodos 中运行良好 但我也希望通过 group 获得匹配的序列 我试过了 b 1 0 2 但 Kodos 中显示 无法引
  • 如何使用 Bootstrap 4 将导航栏放置在粘性导航栏下方?

    我正在使用 bootstrap 4 来制作一个应用程序 其中我有两个导航栏 并且都需要固定在顶部 其中第二个导航栏需要在滚动时隐藏 Html 导航栏 1
  • 使包含 AJAX ActionLink 的 DIV 可点击

    我有一个看起来像这样的标签栏 现在我正在使用 Ajax ActionLink 加载要显示在选项卡栏下方的部分视图 仅 服务器 和 配置文件 一词可以单击 我希望整个选项卡可单击 而不仅仅是选项卡中的文字 也不仅仅是选项卡中的图像 但我希望整
  • Jersey 客户端无法反序列化 json 服务 - 异常(无法反序列化实例)

    JSON 响应 categories id 1 category category1 id 2 category category2 JSON 泽西岛服务 GET Produces application json public List
  • 如何找出年轻/老一代在内存中的确切位置?

    最近我能够使用 sun misc Unsafe 类获取对象的地址 现在我试图以编程方式找到我的对象所在的实际生成 为此我想知道每一代的起点和终点 Java Oracle JVM 是 否提供了任何工具来解决这个问题 我相信不会 因为即使不同的
  • 如何通过IOHIDEvent模拟触摸事件?

    我想在 iOS 6 上模拟触摸事件 我从中学到了一些有用的东西IOHIDEvent 它是人机界面设备的低级函数包 From https github com kennytm iphone private frameworks tree ma
  • 黑莓 - 从本机地址簿拨打电话

    如何从 BB 本机书中附加的菜单项拨打电话 从 ABC 呼叫 选项 以编程方式发起调用 适用于 RIM OS 4 7 及更低版本Invoke PhoneArguments phoneArgs new PhoneArguments Phone
  • 无法对单个元素使用 querySelectorAll 吗? [复制]

    这个问题在这里已经有答案了 据我所知 在正常情况下 您会使用 querySelector 来选择单个元素 并使用 querySelectorAll 来选择多个元素 然而 我惊讶地发现 querySelectorAll 不适用于单个元素 我希
  • 没有读取权限执行脚本

    我想允许用户执行包含敏感数据的 bash 脚本 因此 我不希望他们拥有阅读权限 直接 解决方案似乎不可能 但我可能已经找到了解决方法期待手册页 像往常一样创建 Expect 脚本 包含秘密数据 使其权限为 750 rwxr x 并由受信任的