问题标签 [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.

0 投票
1 回答
1620 浏览

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 安装程序是否无法确定登录用户的用户名?

0 投票
1 回答
58 浏览

shell - 检查系统上是否信任某个根 CA

我的目标是测试某个根证书颁发机构是否受到活动用户的信任。我目前有一个可行的解决方案,我设法使用其他几个答案12拼凑起来,但这对我来说似乎很复杂,所以我要求那些(不像我)的人提供替代(或至少简化)建议知道他们在做什么。

我假设这将由非特权用户(即无法安装新软件包的用户)执行,所以我想使用可能与大多数 unix/linux 发行版捆绑在一起的实用程序(不像 eg certutil)。出于这个原因,当前的解决方案使用awk,grepopenssl,这似乎很普遍。

我应该注意的另一件事是,我不关心以我的方式测试证书可能产生的安全隐患。

这是我当前的代码:

awk与 结合使用openssl来遍历所有现有证书,输出它们Issuer,然后通过管道将其 grep用于测试所需的行是否存在。

在肯定匹配的情况下,我得到的输出是我正在寻找的字符串,即使我只需要一个二进制答案(true/ falseyes/ no1/ 0,...)。

关于如何以更简单和/或更通用的方式实现我的目标的任何建议?