Articles of 环境variables

如何在非交互式SSHlogin时获得完整的Windows环境variables?

我们一直在使用OpenSSH 3.8.1 P1直到迁移到新的Windows 64位环境。 该版本的OpenSSH将完整的Windows环境返回到非交互式SSHlogin,从而使我们能够完全访问环境variables。 在新版本的OpenSSH中,从4.0开始,返回的环境只是Windows系统环境variables的一小部分。 我们search了OpenSSH邮件列表的讨论,发现它被修改的请求只返回“只需要的东西”,而且看起来是在OpenSSH 4.0中实现的。 我不确定谁来决定“需要什么”,但是这不符合我们的要求。 有没有办法让OpenSSH返回完整的Windows环境variables集,而不必在.ssh / environment文件或.bashrc或.profile文件中列出特定的环境variables集? 有时这些variables由于新的工具版本安装而改变,我们不希望修改一个额外的文件,以便能够通过SSH执行。

在哪里出口真正的全球环境variables?

我想设置一个环境variables,这个variables对Upstart启动的所有进程都是可见的。 这是在CentOS系统上,但我认为这同样适用于Ubuntu,因为它们都使用Upstart。 / etc / init /中的某处? 请注意,将其添加到/etc/profile.d只适用于loginshell。 我希望所有进程(例如cron,rc.local等)都能看到它。 显然我宁愿不编辑现有的sysconfiguration文件,如果可以避免的话。

如何使用perfmon / logman在主(Windows)虚拟机上设置日志logging,写入networking上的另一台机器?

在一般情况下,我知道如何设置日志logging以写入远程位置 – 只需在创build日志作业时使用完整的UNCpath(例如\\ HOST-PC \ directory \ logoutput.etl)指定输出文件名即可。 但是,如果从启用了日志logging的主VM创build新的虚拟机,则会出现问题:每个虚拟机都将日志写入networking中完全相同的文件。 我需要find一个方法,每个新的虚拟机将自动写入一个独特的远程文件。 我已经尝试使用logman.exe(例如\主机\目录\%计算机名%\ log.etl)设置日志在UNCpath中使用%ComputerName%环境variables,希望每个虚拟机将自动扩展此以包括其唯一的名称,但这不起作用 – 你只是得到一个名为“%ComputerName%”的文件夹,没有variables被展开。 这是尽pipe事实上,如果你使用例如%SystemRoot%,这确实得到正确扩展(虽然当然这会在这种情况下创build一个无效的path)。 我不确定是什么导致一些variables被扩大,而不是其他的。 任何更好的想法?

在多个linux服务器之间共享ENVvariables

我需要能够在多个linux服务器之间共享ENVvariables。 这些variables被我的应用程序使用。 我想保持这些variables在所有服务器之间同步。 应用程序部署目前由Capistrano处理。 不幸的是,我不能简单地将variables存储在cap recipe中,因为它们包含敏感数据,我不想将它们提交给未encryption的repos。 我的一个想法是使用git-encrypt创build一个encryption的回购站,将数据存储在那里,然后以某种方式通过Capistrano或Chef在应用程序部署过程中检出回购站,解密并在每个应用程序服务器中获取ENVvariables。 我想知道是否有其他人之前解决了这个问题。

OpenVPN – 路由传递给脚本时缺less环境variables

我深入OpenVPN的荣耀,我手动configuration路由表有点麻烦。 我在Arch Linux上。 我知道OpenVPN在连接时自动更新路由表,但我想写一个脚本来自己更新它们。 我了解了OpenVPN的“–route-noexec”参数,以防止自动更新和“路由”参数通过环境variables将相关信息传递给我select的脚本。 这是我遇到麻烦的地方。 我希望环境variables传递给脚本,这发生了,但它看起来像我缺less一些。 特别是列出我的远程IP地址,(不信任/ trusted_ip我相信),这使得难以设置iproute。 我的脚本收到的环境variables如下: dev_type=tun proto_1=udp tun_mtu=1500 script_type=route-up verb=1 local_port_1=1194 dev=tun0 remote_port_1=1194 PWD=/tmp daemon=0 SHLVL=1 script_context=init daemon_start_time=1409367799 daemon_pid=927 daemon_log_redirect=0 link_mtu=1500 _=/usr/bin/printenv 我用来启动我的VPN的命令如下: sudo openvpn –dev tun –route-noexec –script-security 2 –route-up /tmp/print.sh 最后我把它传给它的脚本如下: #!/bin/bash printenv 有谁知道为什么我错过了variables? 任何帮助,将不胜感激!

如何检索MDT任务序列variables并在Powershell中正确使用它

我试图检索Powershell脚本中的MDT任务序列variables,然后在Powershell函数中使用该variables。 我的问题在于我想要检索的variables包含Powershellvariables,将无法正确parsing。 这是如何设置的: 在MDT中,我使用“设置任务序列variables” – 命名为“TS-Destination”和值“$($ env:systemdrive)\ dep”(不带引号)。 通过“运行Powershell脚本”任务添加一个PowerShell脚本,并以参数“-Source”Z:\ someprogram'“(不带引号)的forms运行为”%scriptroot%\ Script.ps1“(不带引号)。 在Powershell脚本中,我的问题所在的部分是这样的: 脚本的开始 [CmdletBinding()] Param( [Parameter(Mandatory=$True,Position=0)] [string]$Source, [Parameter(Mandatory=$False)] [string]$Destination ) $tsenv = New-Object -ComObject Microsoft.SMS.TSEnvironment If ($Destination -eq "") { $Destination = $tsenv.Value('TS-Destination') } Copy-Item $Source -Destination $Destination -Recurse 脚本结束 首先,我想说的是,如果我在脚本中手动设置variables,那么脚本就可以工作,但是我希望它可以根据用户的喜好轻松改变和灵活(使用参数或TSvariables)。 我觉得这将工作是它会从“TS目的地”variables的值,并在$目标variables(并解决它)中使用它,但是当脚本运行它无法parsingvariables。 它得到一个错误,名称为“$($ env)”的驱动器不存在(这是从Copy-Item的错误,因为该variables没有解决)似乎停止读取冒号后面的variables值,但我无法弄清楚为什么。 当手动排除故障并设置值(通过使用$ tsenv.Value('TS-Destination')=“$($ env:systemdrive)\ dep”),然后使用该工程并正确地parsingvariables。转义字符和设置variables,但似乎没有工作。variables是否被定义为一个[string]参数的事实防止像这样的工作? 我需要这个值才能接受variables格式,因为这个脚本在任务序列的多个部分中使用,并且在部署过程中系统驱动器发生了变化。 我可以在任务序列中多次设置variables,但是这会使任务序列复杂化,而且我希望复杂的部分在脚本中:) 所以主要的问题是: 我如何正确地工作?

对于sudo su – 保留SUDO_ *环境variables?

我们有一些脚本(用于OpenStack操作)需要在我们的环境中执行特权。 对于一些脚本,我们想回顾一下启动sudo会话的用户的USERNAME或UID。 sudo已经向我们提供了SUDO_UID , SUDO_USER环境设置。 当使用sudo -s启动shell会话时,这也可以正常工作。 但是,如果我使用sudo -i或sudo su,则会从环境中清除这些设置。 有什么我可以放入/ etc / sudoers或/etc/sudo.conf (甚至可能是一个“PLUGIN”),这可以让我启动一个交互式shell通过根环境初始化,但也与这些特定的SUDO_ *设置保留吗?

php-fpm和Nginxdynamic环境variables

您可以从当前环境中检索variables的FPMconfiguration统计信息。 然而,在使用Nginx和PHP-FPM的ubuntu上,我找不到从环境中检索variables值的方法, 而无需在php-fpm.conf或nginx fcgi params中对它进行硬编码 。 有没有办法从/ etc / environment或/etc/bash.bashrc获取环境variables? 例如: clear_env = no ENV[SECRET_TOKEN] = $SECRET_TOKEN 我认为主要的问题是无法修改www-data的环境variables。 as >sudo -H -u www-data bash -c "env"不包括SECRET_TOKEN 。

是否有一个Apache环境variables可以有多长时间的限制?

是否有类似的LimitRequestFieldsize应用长度限制的环境variables? 换句话说,一个环境variables的值是可以任意设定的,否则会被限制在一定的限度? 如果没有,是否有设置太长的环境variables的实际问题? 谢谢!

在Nginx / Passenger中托pipe的Ruby / Rails应用程序的头文件中设置环境variables

我为Redmine安装了一个服务器,使用Nginx / Passenger运行。 服务器还托pipeGitlab,并且进展顺利。 我为Redmine提供了一些SSO插件(我发现并安装了这个插件),它需要一个环境variables来填充用户名:这是一个棘手的问题。 到目前为止,我可以分开 : 从X-Forwarded-User头获取用户名 自动连接到Redmine传递用户名作为一个常数值 自动连接到Redmine传递正确的用户名作为一个常数值testing当前转发的值=>这是丑陋的,需要做每个现有的用户testing 但我不能直接设置用户名与转发的值,它看起来像$ http_x_forwarded_uservariables不被评估… 有一个很好的解决scheme吗? 我目前的Nginx / Passengerconfiguration: upstream gitlab-workhorse { server unix:/var/opt/gitlab/gitlab-workhorse/socket fail_timeout=0; } server { listen 0.0.0.0:80; listen [::]:80 ipv6only=on default_server; server_name server.example.com server_tokens off; ## Don't show the nginx version number, a security best practice root /opt/gitlab/embedded/service/gitlab-rails/public; location / { proxy_read_timeout 300; proxy_connect_timeout 300; […]