我写了一个很小的 bash 函数,它只运行一个命令,如果$current_user_input = yes
function if_yes_run_with {
    if [ $current_user_input = yes ]
    then
        $1
    fi
}
Run Code Online (Sandbox Code Playgroud)
我多次称其为完美,例如:
if_yes_run_with 'brew update'
Run Code Online (Sandbox Code Playgroud)
但是,我已经达到了我想向其传递包含管道的命令的地步:
if_yes_run_with '\curl -L https://get.rvm.io | bash -s stable'
Run Code Online (Sandbox Code Playgroud)
该函数似乎只评估管道之前的命令。因此,运行它的结果给出与以下相同的结果:
if_yes_run_with \curl -L https://get.rvm.io
Run Code Online (Sandbox Code Playgroud)
任何人都可以帮助将“带管道的命令”作为参数传递给 bash 函数吗?
我试图确保上传到 S3 的文件不包含恶意软件或恶意脚本,然后再将文件移动到基础设施的更安全部分(单独帐户中的另一个 S3 存储桶)。
我们通过 AWS 主干连接将文件从上传账户移动到核心账户,这意味着它不会在任何时候暴露在公共互联网上 - 除了初始上传(上传由 AWS 使用 SSL 保护)。
理想情况下,我们希望对文件运行病毒扫描,而不会将文件暴露在互联网上。如果文件未暴露,则可以接受通过互联网更新病毒定义的基于云的 AV 解决方案。我在 ClamAV 中遇到了一个开源解决方案,但我想考虑替代选项 - 甚至是专有软件。实现这一目标的最佳建议是什么,或者是我们没有想到的更安全的选择?
作为一个全新的编程人员,我试图使用自制软件安装Ruby.安装一直停留在'openssl'阶段.这似乎取决于目录的权限:
/usr/local/etc/openssl/
Run Code Online (Sandbox Code Playgroud)
在线和其他地方的研究指出试图通过Homebrew单独安装'openssl',我已经完成并以错误结束:
==> Downloading https://homebrew.bintray.com/bottles/openssl-1.0.2e.yosemite.bot
Already downloaded: /Library/Caches/Homebrew/openssl-1.0.2e.yosemite.bottle.tar.gz
==> Pouring openssl-1.0.2e.yosemite.bottle.tar.gz
Error: Permission denied - /usr/local/etc/openssl/certs
Warning: Bottle installation failed: building from source.
==> Downloading https://www.openssl.org/source/openssl-1.0.2e.tar.gz
Already downloaded: /Library/Caches/Homebrew/openssl-1.0.2e.tar.gz
==> perl ./Configure --prefix=/usr/local/Cellar/openssl/1.0.2e --openssldir=/usr
==> make depend
==> make
==> make test
==> make install MANDIR=/usr/local/Cellar/openssl/1.0.2e/share/man MANSUFFIX=ssl
Last 15 lines from /Users/Joe/Library/Logs/Homebrew/openssl/05.make:
SSL_want_read.3ssl => SSL_want.3ssl
SSL_want_write.3ssl => SSL_want.3ssl
SSL_want_x509_lookup.3ssl => SSL_want.3ssl
installing man3/SSL_write.3ssl
installing man3/d2i_SSL_SESSION.3ssl
i2d_SSL_SESSION.3ssl => d2i_SSL_SESSION.3ssl
installing man3/ssl.3ssl
Cannot create directory /usr/local/etc/openssl/certs: Permission denied
created directory `/usr/local/Cellar/openssl/1.0.2e/bin' …Run Code Online (Sandbox Code Playgroud) 我们的 GCP 帐户中有两个项目;目前,一个用于我们的开发环境,一个用于我们的测试环境。Terraform 管理我们的大部分基础设施,因此我们只需最少地点击 GUI 或 CLI 命令。
我假设我们通过在两个环境中使用 Terraform 部署来启用 Pub/Sub API,尽管我们可能需要手动执行此操作。我们注意到 Google 在我们的开发环境中为我们创建了一个默认的 Pub/Sub 服务帐户,但在我们的测试环境中却没有。此文档页面建议它应该创建此服务帐户。
此外,我们注意到多个 Pub/Sub 订阅正在运行,显然没有任何服务帐户。我们认为,仅此特定订阅需要服务帐户,因为它是对电子邮件服务器的推送。因此,它需要一个具有“服务帐户令牌创建者”角色的服务帐户。
我们尝试重新部署整个基础设施并禁用/重新启用 Pub/Sub API。两者似乎都没有促使 GCP 创建服务帐户。除此之外,我们尝试手动创建默认服务帐户。尽管如此,GCP 限制了用户自己可以为服务帐户指定的名称,因此我们无法使用 Pub/Sub 服务期望的名称创建服务帐户。
我们想知道我们是否错过了该项目的某些配置,或者是否有人以前见过这个配置?