小编Foo*_*ooF的帖子

如何检查 cygwin mintty/bash 是否以管理员身份运行?

问题陈述:测试 Cygwinmintty bash会话是否为“以管理员身份运行”的最优雅和健壮的方法是什么?

为什么,具体的?mintty使用 Windows 时,我通常会打开几个终端(mintty没有选项卡)。最尴尬的是当我需要找到一个终端窗口时,例如我想运行ping或其他一次性程序时,我通过右键单击“以管理员身份运行”启动了该窗口。我想以视觉方式指示终端会话的“以管理员身份运行”(通过更改我的启动文件中的bashshell 提示变量)。PS1~/.bashrc

一些快速的潜在解决方案:

  1. 我可以比较一些环境变量的值。通过快速查看env输出,有很多不同之处。然而,很难说哪个在可移植到另一台 Windows 机器(可能运行不同版本的 Windows)方面最可靠。
  2. idid -Gn如果以管理员身份运行,则更具体地显示不同的组。在我的Windows 7机器,我必须Administratorsroot添加到列表中的组。同样,我不确定这是否可移植。
  3. 我可以尝试将文件写入普通用户会失败的位置。但我不想将任何文件写入陌生的地方——这在某些想象的场景中可能具有潜在的破坏性(例如,存储介质出现故障),这似乎完全不符合我的口味。
  4. 运行一些 Windows 程序,如果命令以“管理员身份”运行,将通过返回状态或输出指示。最好是一些与 UNIXid(1)命令具有类似目的的命令(但本机存在于 Windows - 或 Cygwin 中,但没有将 Windows 系统概念转换为 POSIX 模拟概念的过分牵强)。

有更好或更优雅的建议吗?也许 cygwin 提供了专门用于此目的的命令实用程序?

更新:https : //stackoverflow.com/questions/4051883/batch-script-how-to-check-for-admin-rights/ 的 97% 重复- 区别只是在这里使用bash而不是(恕我直言奇怪和古老的)Windows cmd.exe. 请务必检查那里的答案和评论。

windows terminal cygwin bash

18
推荐指数
3
解决办法
8911
查看次数

标签 统计

bash ×1

cygwin ×1

terminal ×1

windows ×1