Bash 在脚本中退出 sudo

2024-02-07

我需要使用 sudo 执行安装脚本,但在脚本结束时,脚本需要退出 sudo 并以普通用户身份继续。

Example:

sudo ./install.sh

脚本以 root 身份运行并执行所需操作

su myscriptuser
service myscript start

基本上,服务 myscript start 需要由普通用户运行,而不是由 root 运行。


su myscriptuser以以下名称启动另一个 shellmyscriptuser并等待它退出。然后它继续运行service myscript start再次以 root 的名义。

您需要的是 sudo,而不是最后 2 个命令:

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

Bash 在脚本中退出 sudo 的相关文章

  • sed 替换为多行变量[重复]

    这个问题在这里已经有答案了 我正在尝试用跨多行的文本替换单词 我知道我可以简单地使用换行符 n 来解决这个问题 但我想保持字符串 干净 不包含任何不需要的格式 下面的例子显然是行不通的 read r d TEST lt
  • 任何退出 bash 脚本但不退出终端的方法

    当我使用exitshell 脚本中的命令 该脚本将终止终端 提示符 有什么方法可以终止脚本然后停留在终端中吗 我的剧本run sh预计通过直接获取或从另一个脚本获取来执行 编辑 更具体地说 有两个脚本run2 sh as run sh ec
  • shell脚本中的“##”是什么意思? [复制]

    这个问题在这里已经有答案了 在编写脚本时 我遇到了这个命令 f file 我很想知道 什么是 这行是什么意思 In bash 它删除了前缀模式 在这里 它基本上为您提供了最后一个路径分隔符之后的所有内容 通过贪婪地删除前缀 后面跟随任意数量
  • bash while 循环的布尔表达式中的 -lt 意味着什么?

    我猜测它代表小于基于输出 但是我在哪里可以找到有关此语法的文档 bin bash COUNTER 0 while COUNTER lt 10 do echo The counter is COUNTER let COUNTER COUNTE
  • AWS EMR 引导操作为 sudo

    我需要更新 etc hosts适用于我的 EMR 集群 EMR AMI 4 3 中的所有实例 整个脚本无非就是 bin bash echo e ip1 uri1 gt gt etc hosts echo e ip2 uri2 gt gt e
  • awk 脚本中出现“BEGIN 块必须有操作部分”错误

    这是我的代码 bin sh filename usr bin find name INSTANCE log echo filename is filename awk BEGIN print Processing file filename
  • 当我尝试在 .bashrc 中添加命令时出现命令未找到消息

    我问了一个问题如何在 bash shell 中编写漂亮优雅的 linux 命令 https stackoverflow com q 19720095 80353 当我尝试该建议时 我收到以下错误消息 Sorry command not fo
  • 在 bash 中添加(收集)退出代码

    我需要依赖于脚本中的几个单独的执行 并且不想将它们全部捆绑在一个丑陋的 if 语句中 我想使用退出代码 每次执行并添加它 最后 如果这个值超过阈值 我想执行一个命令 伪代码 ALLOWEDERROR 5 run something RESU
  • 关键字“if”如何测试一个值是真还是假?

    在 bash 脚本中 if 1 then echo Yes else echo No fi Output Yes 它表示 1 被视为真值 但在代码中 word Linux letter nuxi if echo word grep q le
  • 如何使用 docker ENTRYPOINT 与 shell 脚本文件组合参数

    我编写 shell 脚本文件并将其与 docker ENTRYPOINT 一起使用 但是当我运行 docker image 时 由于入口点代码行 它只是停止而没有任何错误日志 我的 Dockerfile FROM ubuntu 16 04
  • grep 排除文件的数组参数

    我想从我的文件中排除一些文件grep命令 为此我使用参数 exclude excluded file ext 为了更容易阅读 我想使用包含排除文件的 bash 数组 EXCLUDED FILES excluded file ext 然后将
  • 在 .gitconfig 中隐藏 GitHub 令牌

    我想将所有点文件存储在 GitHub 上 包括 gitconfig 这需要我将 GitHub 令牌隐藏在 gitconfig 中 为此 我有一个 gitconfig hidden token 文件 这是我打算编辑并放在隐藏令牌的 git 下
  • GitHub Actions:如何将 toJSON() 结果传递给 shell 命令

    因此 我正在与 Github Actions 合作进行端到端测试 我正在查看的设置是让一项作业检索要测试的 url 列表 而我的第二项作业使用该列表创建一个矩阵并测试所有这些 我的问题是 当我实际运行测试脚本时 必须从命令行完成 因为我使用
  • 在 bash 脚本中使用源时出现“源:未找到”错误

    我正在尝试编写 我认为的 一个简单的 bash 脚本 它将 运行 virtualenv 以 1 美元创建一个新环境 激活虚拟环境 做更多的事情 安装 django 将 django admin py 添加到 virtualenv 的路径等
  • 如何使用bash脚本获取分区的偏移量?

    我可以用parted找出我的图像的偏移量 sudo parted s image img unit B print Model file Disk home user image img 107374182400B Sector size
  • 添加文件时运行 shell 命令

    我的 Linux 机器上有一个名为 images 的文件夹 该文件夹连接到一个网站 该网站的管理员可以向该网站添加图片 但是 当添加图片时 我想要一个命令来运行调整目录中所有图片的大小 简而言之 我想知道当新文件添加到特定位置时如何使服务器
  • 使用脚本从网站中提取电子邮件地址

    给定一个网站 我想知道以编程方式和 或使用脚本的最佳程序是什么 以纯文本形式提取每个页面上存在的所有电子邮件地址 电子邮件受保护 cdn cgi l email protection从该链接和下面的所有站点 递归或直到某个固定深度 使用 s
  • Rails 4.1 环境变量未重新加载

    我创建了一个application yml文件在配置目录中并添加了一些键值对 即AWS REGION us east 1 我还添加了以下内容application rb读取文件并更新 ENV 哈希 if Rails env developm
  • 为什么 Git Bash 无法运行我的可执行文件?

    I am on git for windows https github com git for windows 吉特 巴什 我无法在命令行上运行可执行文件 Pedr Abc 07 MINGW64 c dev ls sqlite3 exe
  • 在 macOS 上使用 find 时出现“非法选项”错误

    我试图列出末尾仅带有字母 R 的文件 我用了find在 macOS 终端中如下所示 find type f name R 但我收到消息说illegal option t 第一个参数find是它应该开始寻找的路径 路径 表示当前目录 find

随机推荐

  • 如何在asp.net core web api(无第三方)中实现JWT刷新令牌?

    我正在使用使用 JWT 的 asp net core 实现 Web api 我没有使用第三方解决方案 例如我正在尝试学习的 IdentityServer4 我已经让 JWT 配置正常工作 但对如何在 JWT 过期时实现刷新令牌感到困惑 下面
  • 如何使用git复制rails应用程序并部署到heroku

    我是编程和 Rails 的新手 我想创建一个我正在使用的 Rails 应用程序的副本 以无害地尝试一些东西 有没有一种简单的方法可以实现这一点 是的你可以 这些命令对于像我这样的新手来说并不明显 并且可能对其他人有帮助 首先 根据您计划调用
  • xDebug 和 PHPUnit 的代码覆盖率说是 100%,实际上不是

    我有以下功能 function foo p if p null throw new Exception bla if p null throw new Exception bla 我对此函数的测试没有涵盖抛出异常的行 但 PHPUnit 告
  • 在 Android 上使用 DU

    有没有类似于 unix 命令 du 我可以在 adb shell 上使用的东西 我正在尝试找到一种方法来查看每个文件有多大 因为我有一个应用程序变得非常大并且失去控制 并且我正在尝试确定它具体是哪个文件 数据库 以便我可以解决问题 我正在
  • 如何从 Ruby on Rails 输出 JSON?

    我希望有一个通过 AJAX 创建 更新的模型 在 Ruby on Rails 中如何做到这一点 另外 更具体地说 如何在 RoR 中输出 JSON def create response success gt false source So
  • 如何在Python中很好地打印出字典?

    我刚刚开始学习 python 正在构建一个文本游戏 我想要一个库存系统 但我似乎无法打印出字典而不使其看起来很丑 这是我到目前为止所拥有的 def inventory for numberofitems in len inventory c
  • 如何销毁tinyMce?

    我使用的是最新版本3 4 b3 我将它放在一个对话框中 它的内容是动态创建的 所以这意味着tiny 应该将自身绑定到的文本区域每次都会被创建 因此 当我第一次加载对话框时 会出现微小的情况 如果我第二次加载该对话框 该对话框将不会再次显示
  • 为什么 Rails RSpec 响应显示 302 而不是 401?

    我已经被这个问题困扰好几天了 我不知道它出了什么问题 几个月前我开始使用 Ruby on Rails 目前正在学习使用 API 进行身份验证 我看过其他类似的主题here https stackoverflow com questions
  • 在 BinaryObjects 的 Ignite 缓存上执行 SQL

    我正在从 Spark 数据帧创建 BinaryObject 的缓存 然后我想在该 ignite 缓存上执行 SQL 这是我的代码在哪里bank是包含三个字段 id name 和age 的数据框 val ic new IgniteContex
  • MATLAB 的堆栈大小是多少?

    MATLAB R2018a 64 位 的默认堆栈大小是多少 堆栈大小似乎比 64 位 C 程序大 我为什么这么问 我问这个问题是因为我正在调用英特尔 MKL拉帕克 dtrtri https software intel com en us
  • 在java中修改复杂的csv文件

    我想编写一个可以打印和修改不规则csv文件的程序 格式如下 1 date 2 organization name 3 student name id number residence student name id number resid
  • 将视觉选择发送到外部程序而不影响缓冲区

    我想要实现的是将视觉选择发送到外部程序而不影响缓冲区的内容 Example 让以下代码块代表当前缓冲区 让 代表视觉选择的结束 This is not a test 1 lt This is not gt a test 2 This is
  • YouTube 播放器.destroy();即使在验证玩家时也会抛出“this.a is null”

    所以我有一个带有两个面板的小应用程序 使用 iframe API 单击一个面板将全屏展开该面板 并显示 播放视频 按钮和一些附加信息 单击左上角的按钮将使 UI 返回到标准状态 关闭视频并将面板缩小到适合 50 50 现在我们有两个视频 我
  • 如何处理带有图像和文本视图的自定义列表视图中的图像视图的点击?

    我想知道我们如何处理带有图像和文本视图的自定义列表视图上的图像视图的点击 我什至使 Imageview 可点击 这是我的代码 自定义适配器 java public class CustomAdapter extends ArrayAdapt
  • 返回第一个表中的所有数据,如果存在则仅返回第二个表中的 1 个数据

    我正在使用MySql 我有 2 个表 一个是带有主键 propertyId 的名称和数据列表 表 2 包含具有主键 propertyImageId 的图像 每个 propertyId 可能有多个图像或根本没有图像 我需要获取属于agentI
  • SQL不是单组组函数

    当我运行以下 SQL 语句时 SELECT MAX SUM TIME FROM downloads GROUP BY SSN 它返回客户下载的最大总价值 但是如果我尝试通过将其添加到 select 语句来查找该最大值所属的社会安全号码 SE
  • C++ 使用 constexpr 和 lambda 表达式

    我正在看书C 17 完整指南 https rads stackoverflow com amzn click com 396730017X以及第 6 1 节中constexprlambda作者举了两个例子 auto squared1 aut
  • 检查 Swift 中是否存在 func

    我想在调用函数之前检查它是否存在 例如 if let touch AnyObject touches anyObject let location touch locationInView self touchMoved Int locat
  • Glassfish 作为 OSGi 容器

    我正在评估 OSGi 容器 主题是使用 Glassfish 来包含我的 OSGi 应用程序组件 我的问题是 Glassfish 对此有好处吗 有人有以这种方式使用它的经验吗 背景 该应用程序不是 Java EE 应用程序 而是 Spring
  • Bash 在脚本中退出 sudo

    我需要使用 sudo 执行安装脚本 但在脚本结束时 脚本需要退出 sudo 并以普通用户身份继续 Example sudo install sh 脚本以 root 身份运行并执行所需操作 su myscriptuser service my