使用 sudo 运行时在 shell 脚本中获取 $USER?

2023-12-31

如果我使用 sudo 运行 shell 脚本,如何获得正确的 $USER ?

我将它们作为 Mac 安装包中的安装后脚本运行,其中它们会自动进行 sudo 编辑,但我需要使用用户名执行操作。

不过,$HOME 是正确的。不优雅的方法是从主路径中提取名称,但我想知道是否有一种自然的方法可以做到这一点。

我无法影响脚本的调用方式,因为它是安装程序内部的自动调用。


在我的系统上变量$SUDO_USER设置为呼叫者的用户名。

您不应该从${HOME}直接变量。它正在配置而不是计算。要提取用户名,您可以查看/etc/passwd文件,但这非常依赖于系统,例如有时您必须查看 LDAP 目录或条目通过 NIS 传播...

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

使用 sudo 运行时在 shell 脚本中获取 $USER? 的相关文章

  • 如何通过 UNIX mailx 命令发送电子邮件?

    如何通过 UNIX 发送电子邮件mailx命令 一个例子 echo something mailx s subject email protected cdn cgi l email protection 发送附件 uuencode fil
  • 如何执行“sudo nvm”?

    在我的 Mac 上 我想将一些需要 su 权限的包迁移到另一个节点版本 我使用 homebrew 安装 nvm 现在我需要执行 sudo nvm 或 reinstall packages将失败 me MacBook sudo nvm sud
  • Linux 中的动态环境变量?

    Linux 中是否可以通过某种方式拥有动态环境变量 我有一个网络服务器 网站遵循以下布局 site qa production 我想要一个环境变量 例如 APPLICATION ENV 当我在 qa 目录中时设置为 qa 当我在生产目录中时
  • 如何在数组中存储包含双引号的命令参数?

    我有一个 Bash 脚本 它生成 存储和修改数组中的值 这些值稍后用作命令的参数 对于 MCVE 我想到了任意命令bash c echo 0 0 echo 1 1 这解释了我的问题 我将用两个参数调用我的命令 option1 without
  • 如何在 Linux shell 中将十六进制转换为 ASCII 字符?

    假设我有一个字符串5a 这是 ASCII 字母的十六进制表示Z 我需要找到一个 Linux shell 命令 它将接受一个十六进制字符串并输出该十六进制字符串代表的 ASCII 字符 所以如果我这样做 echo 5a command im
  • 使用 sh 运行 bash 脚本

    我有 bash 脚本 它需要 bash 另一个人尝试运行它 sh script name sh 它失败了 因为 sh 是他的发行版中 dash 的符号链接 ls la bin sh lrwxrwxrwx 1 root root 4 Aug
  • 如何查看正在运行的 tcsh 版本?

    如何查看我的 UNIX 终端中运行的 tcsh 的当前版本 看着那 这version多变的 echo version tcsh 6 14 00 Astron 2005 03 25 i386 intel linux options wide
  • ssh远程变量赋值?

    以下内容对我不起作用 ssh email protected cdn cgi l email protection k 5 echo k 它只是返回一个空行 如何在远程会话 ssh 上分配变量 Note 我的问题是not关于如何将本地变量传
  • 如何以管理员身份在 rake 任务中运行 shell 命令?

    我有一个简短的 cmd 文件 我想将其作为部署过程的一部分运行 不幸的是 cmd 文件需要管理员权限 是否可以从 rake 中获得管理员权限 或者我是否需要以管理员身份启动 shell 您可以尝试runas http ss64 com nt
  • 使用 awk 读取文件并搜索另一个文件

    我正在读取一个文件 每行都有数字 我需要搜索另一个满足这些数字和其他条件的文件 我正在尝试使用 awk 来做到这一点 但遇到了问题 File a txt 1476 1477 1497 现在我需要打印第 12 列包含这些数字的行以及第 3 列
  • 使用 su 和 Expect 脚本登录用户时遇到问题

    我正在为一个班级制作一个网站 您可以使用用户名和密码登录 然后它会将您带到一个显示您在班级中的成绩的页面 该网站正在运行bash脚本 https github com jduga002 rapache 并将托管在用户已有用户名和密码登录的计
  • 如何从我自己的脚本向 Fish shell 提供制表符补全?

    我运行的是 Ubuntu 13 10 和 Fish 2 1 0 我想自己编写一个 Python 脚本来从命令行执行一些任务 该脚本将需要命令行参数 我怎样才能编写我的脚本 以便 Fish 可以请求并获取给定参数的可能值 潜在值列表是动态的
  • 在初始化脚本中切换用户?

    这是我的 Ubuntu 工作站上的初始化脚本 我需要以除 root 之外的其他用户身份运行命令 但我就是不知道应该如何完成它 两者都不sudo u or su newuser似乎有效 剧本 respawn console none star
  • 错误:执行 gem 时... (Gem::FilePermissionError)

    我检查了所有其他类似的答案 没有一个与我的完全一样 这些解决方案也不适合我 gem environment and sudo gem environment给出相同的结果 RubyGems Environment RUBYGEMS VERS
  • php exec 返回的结果比直接进入命令行要少

    我有一个 exec 命令 它的行为与通过 Penguinet 给 linux 的相同命令不同 res exec cd mnt mydirectory zcat log file gz echo res 当将命令直接放入命令行时 我在日志文件
  • 使用“默认”环境变量启动新的子进程

    我正在编写一个构建脚本来解析依赖的共享库 及其共享库等 这些共享库在正常情况下是不存在的PATH环境变量 为了使构建过程正常工作 让编译器找到这些库 PATH已更改为包含这些库的目录 构建过程是这样的 加载器脚本 更改 PATH gt 基于
  • 如何在unix中移动或复制“find”命令列出的文件?

    我有使用下面的命令看到的某些文件的列表 但是如何将列出的这些文件复制到另一个文件夹 例如 test 中 find mtime 1 exec du hc 添加到 Eric Jablow 的答案中 这是一个可能的解决方案 它对我有用 linux
  • 在 unix 中编译 dhrystone 时出错

    我是使用基准测试和 makefile 的新手 我已经从下面的链接下载了 Dhrystone 基准测试 我正在尝试编译它 但我遇到了奇怪的错误 我尝试解决它 但没有成功 有人可以帮助我运行 dhrystone 基准测试吗 以下是我尝试编译的两
  • bash循环跳过注释行

    我正在循环文件中的行 我只需要跳过以 开头的行 我怎么做 bin sh while read line do if line doesn t start with then echo line fi done lt tmp myfile 谢
  • 更改“/usr/bin/”的所有权:不允许操作

    我刚刚改变了我的所有者 犯了一个巨大的错误 usr bin from root对一个普通人user 每当我尝试执行时 sudo chown root usr bin这给了我 chown changing ownership of usr b

随机推荐

  • 单行水平滚动/可滑动 GridView

    我想要一个可以通过鼠标和触摸滑动水平滚动的单行 GridView GridView是通过绑定来呈现图像 以便从图像数组中选择单个图像 除了水平滚动不起作用之外 一切都工作正常 装订 图像选择等 XAML 代码如下所示 我缺少什么
  • Springfox swagger-ui 3.0.0 不显示 swagger-ui.html 页面

    我将 springfox swagger ui 与 Springboot 结合使用 但未启用分段上传的 fileUpload 按钮 我尝试升级到 springfox swagger ui 3 0 0 但这甚至没有打开 swagger ui
  • 从基于 Linux 的 C 程序打开并读取 Excel?

    我正在尝试找到一组源代码 这些源代码允许我从 C 程序中打开并读取 Linux 上的 Excel 文件的内容 如果我能找到只做这两件事的东西 我真的不想将它链接到 OpenOffice SDK carl 如果以下内容适合您 那么您可以从以下
  • 连接字符串错误(错误:40)

    我已在 Windows Server 2008 计算机上安装了 SQL Server 2012 Express 机器的名称是 THEMACHINE 安装时 我将 SQL Server 2012 设置为 默认实例 现在我像这样设置连接字符串
  • Travis.yml 因内容简约而失败?

    我有当前的travis yml在我的 Github 上 see http about travis ci org docs user languages php for more hints language php list any PH
  • 使用 :after CSS 伪元素而不插入内容

    是否可以使用 afterCSS 伪元素用于偏移对齐 而不实际插入任何内容content 除非指定内容 否则它似乎不会呈现 所以只是想知道这是否可能或者是否有任何已知的解决方法 举个例子 nav primary li level0 a aft
  • 如何将PHP变量中的NULL值插入MySQL,远离SQL注入?

    我有一个歌曲上传表单 我不会直接在 MySQL 中输入 NULL 值 例如 mysql query INSERT INTOsongs album id VALUES NULL 我会将 NULL 从 PHP 变量插入到 MySQL 并且肯定不
  • 如何从 DLL 返回实例?

    我正在编写一个DLL 我必须将 TBitmap 的实例返回到主机应用程序 DLL还有另一个UNIT 它是一个Form 它有一个TImageList用于存储图像 我编写了一个函数 想要从 TImageList 返回一个图像 从 DLL 到主机
  • 为什么我可以轻松解码 jwt.io 上的 auth0 id_token?

    好的 我正在开发一个 Angular 2 应用程序 我添加了 auth0 身份验证 但对我来说 它处理会话的方式非常不安全 jwt 令牌未加密并保存在 localStorage 中 这些声明对任何人来说都是可见的 它们可以很容易地被解码和揭
  • Silverlight 中的 SHA512 不可用,是否有可用的托管库?

    SHA512ManagedSilverlight 适用于 Windows Phone 7 CTP SDK 中缺少该功能 最多只能使用 SHA256 有谁知道我可以使用的 NET 类提供独立的 C 或 VB net SHA512 实现 我需要
  • 如何在控制台中检查 Ember.js 对象?

    有没有什么方法可以获取 Ember js 对象在 JavaScript 控制台中真正包含的内容 如果你这样做console log this 您将获得几乎所有对象几乎相同的数据结构 如下所示 这并不是很有帮助 而且它让您不知道对象上实际设置
  • 奇怪的构造函数

    好吧 我在这里会很简单 我只有一段 C 代码 我不确定我是否真的理解并且需要一些帮助 好吧 为了简单起见 我有一个定义如下的类 真正的类有点复杂 但这才是重要的 class myClass public Runnable Semaphore
  • html textArea 使用 Angular 调整大小事件

    我有一个类似行的布局 在行上 嵌入的 div 中有几个文本区域 如下所示 div class row 192 div class inner p text p div div
  • 我的 Google Compute Engine 实例上偶尔出现 Google 404

    我在 GCE 实例上托管一个网站 我将domain com 的DNS 指向我在Google Cloud 上保留的静态IP 该实例在端口 80 上运行 nginx 并将请求转发到在 8080 上运行的节点应用程序 它已经顺利运行了几个月 但今
  • 使用 Google Analytics trackPageview() 跟踪外部链接不起作用

    我已将外部链接跟踪设置为 Google Analytics 中的目标 根据 这是有问题的页面 http playmoreatthey org http playmoreatthey org 页面上的外部链接的格式如下 a href http
  • SCP说文件已下载,但文件没有出现

    我正在使用 ssh 在远程服务器上工作 但是当我尝试使用 scp 以这种格式下载文件时 scp email protected cdn cgi l email protection somefile zip Desktop 它询问我的密码
  • 如何通过Selenium打开Chrome浏览器控制台?

    我想通过按键盘按键打开 Chrome 浏览器控制台Ctrl Shift j在硒网络驱动程序中 我可以使用以下方法执行此操作Robot类 但我想要这个没有Robot班级 我已经使用了使用 sendKeys 的 Actions 类和 Keys
  • 使用 Windows 范围内的 beta UTF-8 支持功能时在 Winforms 中调整 RTF 时出现的错误

    我想我在 Windows 或 NET 中发现了一个错误 并且正在寻找解决方法 要重现该问题 请首先启用 Windows 功能 Beta 使用 Unicode UTF 8 获得全球语言支持 您可能需要重新启动机器 现在只需在Winforms
  • 从 C++ 调用 Haskell

    我正在尝试从 C 调用 Haskell 我尝试使用this https github com jarrett cpphs解释 并且已经问了一个问题SO https stackoverflow com q 42976708 5324537 然
  • 使用 sudo 运行时在 shell 脚本中获取 $USER?

    如果我使用 sudo 运行 shell 脚本 如何获得正确的 USER 我将它们作为 Mac 安装包中的安装后脚本运行 其中它们会自动进行 sudo 编辑 但我需要使用用户名执行操作 不过 HOME 是正确的 不优雅的方法是从主路径中提取名