我做 Rails 开发。在这个应用程序中,我需要指定环境变量LD_LIBRARY_PATH = /usr/local/oracle/lib,但是当我使用 sudo 脚本/服务器运行应用程序时,它不会运行,因为该库路径不在 root 的 env 中。
我该怎么做才能让它发挥作用?我试图将路径放在根目录下./bashrc,但没有用。
是否可以只为一个 shell 命令设置一个 ENV 变量(即在命令执行后立即过期)?
例如:
export VERSIONER_PYTHON_PREFER_32_BIT=yes
winpdb
Run Code Online (Sandbox Code Playgroud)
我想将我的系统设置为仅针对此命令使用 32 位 Python,然后返回到 64 位。也许像
VERSIONER_PYTHON_PREFER_32_BIT=yes; winpdb
Run Code Online (Sandbox Code Playgroud)
谢谢!
如何使用命令提示符列出 Windwos Server 2008 R2 上的环境变量?
windows-server-2008 command-line-interface environment-variables
打开regedit.exe,导航到HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment。创建两个环境变量:
Name Type Data
----- -------------- -----------
zbar REG_SZ water
zfoo REG_EXPAND_SZ %zbar%
Run Code Online (Sandbox Code Playgroud)
打开新的cmd.exe,powershell.exe或者什么。缺少这些变量。注销,然后登录。在cmd.exe窗口类型echo %zbar%-water显示。键入echo %zfoo%和%zbar%已显示,但我希望看到扩展值 - water。
现在。打开 Windows环境变量对话框。更改或创建任何变量(例如zzz=zzz)。重新打开cmd.exe并输入echo %zfoo%- 现在您看到了water!
实际上,我正在使用 PowerShell 脚本创建这些变量。但是这个脚本所做的只是描述了注册表操作。
问题:
zfoo通过打开 Windows环境变量对话框并更改一些变量来强制变量具有正确的值而没有这种魔力?也许我应该调用一些 API,比如[Microsoft.Win32.Registry]::Refresh()?谢谢。
我需要防止用户使用 phpinfo() 意外暴露存储在环境变量中的私有数据。有没有办法配置 apache 或 php.ini 以禁止使用 phpinfo 呈现的部分?
Microsoft 有一篇知识库文章,最后一次审查是在 2007 年 6 月,其中指出:
如果您更新环境变量或添加新的环境变量,您必须在您所做的更改影响在本地系统帐户下运行的服务之前重新启动计算机。
我不清楚这是否适用于 Windows Server 2008 R2。任何人都可以建议吗?
我注意到Windows 2003有一个修补程序可以解决这个问题。因此,我想知道 2008 R2 是否已推出此修复程序。我找不到任何证据表明 Windows 2008 R2 仍然存在问题,但与相反的具体陈述相比,缺乏证据更令人欣慰。
一个相关的问题涵盖了类似的领域,但不讨论 Windows 2008。
windows-service environment-variables local-system windows-server-2008-r2
试图弄清楚为什么 haproxy.cfg 中的环境变量在 HA-Proxy 版本 1.5.2 中不起作用
在命令行上,使用 Printenv 我得到了一个环境变量列表,比如 FE_PORT_8000_TCP_ADDR=172.17.0.4
我需要在 haproxy.cfg 中使用它。根据this和文档 How can I use environment variables in haproxy.conf using $FE_PORT_8000_TCP_ADDR or ${FE_PORT_8000_TCP_ADDR} 应该可以工作。然而,这是行不通的。
在 Haporxy.cfg 硬编码确实有效,并在浏览器中访问它按预期显示:
backend FE
# balance roundrobin
server FE1 172.17.0.4:8000 maxconn 256
Run Code Online (Sandbox Code Playgroud)
但是具有相同假定值的环境变量没有,在浏览器中它给出 503 Service Unavailable。
backend FE
# balance roundrobin
server FE1 $FE_PORT_8000_TCP_ADDR:8000 maxconn 256
Run Code Online (Sandbox Code Playgroud)
关于做错了什么的任何想法?
更新:这个人有同样的问题 如何在 haproxy.conf 中使用环境变量
在 /etc/ssh/sshd_config 中,有一个名为 AcceptEnv 的选项,它允许 ssh 客户端发送环境变量。我需要能够发送大量环境变量,我该怎么做?
在 Active Directory 中,您可以将 IP 地址映射到客户端站点。
...然后您可以将组策略对象映射到站点。
这很好,但我有一个增长迅速的客户,他们希望在未来一两年内拥有数百个站点。
我们的命名标准大致基于 LOCODE,因此每个站点都是 7 个字符——例如“USHQZOF”。该前缀用于命名每台机器。
我已经厌倦了到处制定相同的基本政策。
它字面上遵循以下格式:
如果我可以制定一项政策,我可以说:
......并永远完成它。
看来您可以在组策略首选项 ( https://technet.microsoft.com/en-us/library/Cc753915.aspx ) 中使用大量环境变量,但我没有看到客户端站点名称的任何内容。
我是运气不好,还是我需要去“老派”并在登录期间调用一个 cscript/vbscript 文件来查找它并映射适当的项目?
(编辑:我知道它可以用 VBS 文件完成——我以前做过。它看起来……不干净……)
如何从 sudo 用户检查 root 环境变量?我尝试了 su 和 sudo 的各种键和组合,但没有运气。
比如普通用户$HISTFILESIZE=2000,root用户9999。
vagrant@default-debian-78-64-nocm:~$ echo $HISTFILESIZE
2000
vagrant@default-debian-78-64-nocm:~$ sudo -i
root@default-debian-78-64-nocm:~# echo $HISTFILESIZE
9999
Run Code Online (Sandbox Code Playgroud)
但是当我尝试通过 sudo 获取 root $HISTFILESIZE 时 - 它总是返回 2000:
vagrant@default-debian-78-64-nocm:~$ sudo -i echo $HISTFILESIZE
2000
vagrant@default-debian-78-64-nocm:~$ sudo -i su - -c "echo $HISTFILESIZE"
2000
vagrant@default-debian-78-64-nocm:~$ sudo -i bash -c "echo $HISTFILESIZE"
2000
vagrant@default-debian-78-64-nocm:~$ sudo -i bash -l -c "echo $HISTFILESIZE"
2000
Run Code Online (Sandbox Code Playgroud) sudo ×2
apache-2.2 ×1
bash ×1
bashrc ×1
group-policy ×1
haproxy ×1
linux ×1
local-system ×1
php ×1
php.ini ×1
python ×1
root ×1
shell ×1
ssh ×1
windows ×1