问题标签 [limited-user]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
nsis - 以其他用户身份运行时在 NSIS 安装程序中获取登录用户名 [admin]
我创建了一个需要提升的 NSIS 安装程序,并且还在用户AppData
目录中安装了一些文件。只要当前用户是管理员,它就可以正常工作。如果用户是受限用户,那么他们必须以管理员身份运行安装程序,将管理员凭据传递给安装程序。AppData
除了在这种情况下 NSIS 将文件安装到管理员用户目录之外,这一切都很好。这是因为我一直在使用该$PROFILE
变量来确定文件的安装位置,但$PROFILE
将路径返回给运行安装程序的用户,而不是登录到系统的用户。
所以要明确一点,如果User A
是受限帐户并且User B
是管理员帐户,当我使用登录计算机User A
并运行安装程序并传递凭据时User B
,我只能User B
从 NSIS 获取用户名,因此无法安装必要的文件为User A
.
我目前正在使用 NSIS v2.49,我已经有 2 年多没有更新了,所以我认为它已经过时了。在撰写本文时,sourceforge 上的 NSIS 站点已经关闭了几天,因此很难找到该软件的当前副本。如果有人能指出这将如何帮助解决这个问题,我愿意升级到 NSIS v3.x。
这是一些非常简单的代码来演示我的问题。如果您构建此安装程序并在受限用户桌面上运行它,它将演示 3 次不同的尝试来获取当前登录的用户名,但所有 3 次都将带回正在运行安装程序的用户的名称:
当以另一个用户身份运行安装程序时,NSIS 安装程序是否无法确定登录用户的用户名?
shell - 检查系统上是否信任某个根 CA
我的目标是测试某个根证书颁发机构是否受到活动用户的信任。我目前有一个可行的解决方案,我设法使用其他几个答案1、2拼凑起来,但这对我来说似乎很复杂,所以我要求那些(不像我)的人提供替代(或至少简化)建议知道他们在做什么。
我假设这将由非特权用户(即无法安装新软件包的用户)执行,所以我想使用可能与大多数 unix/linux 发行版捆绑在一起的实用程序(不像 eg certutil
)。出于这个原因,当前的解决方案使用awk
,grep
和openssl
,这似乎很普遍。
我应该注意的另一件事是,我不关心以我的方式测试证书可能产生的安全隐患。
这是我当前的代码:
它awk
与 结合使用openssl
来遍历所有现有证书,输出它们Issuer
,然后通过管道将其 grep
用于测试所需的行是否存在。
在肯定匹配的情况下,我得到的输出是我正在寻找的字符串,即使我只需要一个二进制答案(true
/ false
,yes
/ no
,1
/ 0
,...)。
关于如何以更简单和/或更通用的方式实现我的目标的任何建议?