问题陈述:测试Cygwin mintty
bash
会话是否为“以管理员身份运行” 的最优雅,最可靠的方法是什么?
为什么呢?mintty
使用Windows时,我通常会打开几个终端(mintty
没有选项卡)。最尴尬的是,当我需要找到一个通过右键单击“以管理员身份运行”而启动的终端窗口时,例如,当我想运行ping
或执行其他一次性过程时。我想直观地指出终端会话的“以管理员身份运行”(通过更改启动文件中的bash
shell提示变量)。PS1
~/.bashrc
一些快速的潜在解决方案:
- 我可以比较一些环境变量的值。通过快速查看
env
输出,可以发现很多差异。但是,就移植到另一台Windows机器(也许运行不同版本的Windows)而言,很难确定哪个最可靠。 id
,更具体地说,id -Gn
如果以管理员身份运行,则显示不同的组。在我的Windows 7计算机中,我Administrators
和root
组已添加到列表中。同样,我不确定这是否可移植。- 我可以尝试将文件写入到普通用户失败的位置。但是我不想将任何文件写到陌生的地方-在某些想像的情况下这可能会造成破坏性的破坏(例如存储介质故障),这似乎完全不符合我的口味。
- 运行一些Windows程序,如果该命令是以“管理员身份”运行的,则将通过返回状态或输出来指示。最好的用途与UNIX
id(1)
命令的用途类似(但本机存在于Windows-或Cygwin中,但没有将Windows系统概念转换为POSIX仿真概念)。
还有更好或更优雅的建议吗?也许cygwin提供了专用于此目的的命令实用程序?
更新: 97%重复/programming/4051883/batch-script-how-to-check-for-admin-rights/-区别只是在这里使用bash
而不是(恕我直言,怪异而古怪的)Windows cmd.exe
。请在此处检查答案和评论。
mintty
:1.以管理员身份运行,2.使用具有不同颜色的不同配置文件设置3.使用替代图标。如果您向公众描述如何创建它,我将给您投票(除非您在回答中说不能在脚本中完成它:-)。
Foo
用户组提供ALL权限。
sudo
即使您以root用户身份运行,也可以认为这是必需的。