当我将 OpenSSH 公钥导入 AWS EC2 的密钥环时,AWS 显示的指纹与我看到的不匹配:
ssh-keygen -l -f my_key
Run Code Online (Sandbox Code Playgroud)
它的长度不同,字节数也不同。
为什么?我确定我上传了正确的密钥。
PostgreSQL 用户默认在 unix 套接字上进行对等身份验证,其中 unix 用户必须与 PostgreSQL 用户相同。所以人们经常使用su或sudo成为postgres超级用户。
我经常看到人们使用以下结构:
sudo su - postgres
Run Code Online (Sandbox Code Playgroud)
而不是
sudo -u postgres -i
Run Code Online (Sandbox Code Playgroud)
我想知道为什么。同样,我见过:
sudo su - postgres -c psql
Run Code Online (Sandbox Code Playgroud)
代替
sudo -u postgres psql
Run Code Online (Sandbox Code Playgroud)
如果没有领导sudo的su版本可能会做出一些感觉,如果你是一个老平台没有sudo。但是为什么要在比史前时代更短的 UNIX 或 Linux 上使用sudo su?
(与回调或钩子以及可重用系列任务相关,在 Ansible 角色中):
有没有比 (ab) 使用 jina2 模板表达式更好的方法来附加到列表或向 Ansible 中的字典添加键?
我知道你可以这样做:
- name: this is a hack
shell: echo "{% originalvar.append('x') %}New value of originalvar is {{originalvar}}"
Run Code Online (Sandbox Code Playgroud)
但是真的没有元任务或助手来做到这一点吗?
它感觉很脆弱,似乎没有记录,并且依赖于许多关于变量在 Ansible 中如何工作的假设。
我的用例是多个角色(数据库服务器扩展),每个角色都需要为基本角色(数据库服务器)提供一些配置。它不像在 db 服务器配置文件中添加一行那么简单;每个更改都适用于同一行,例如扩展名,bdr并且pg_stat_statements必须同时出现在目标行上:
shared_preload_libaries = 'bdr, pg_stat_statements'
Run Code Online (Sandbox Code Playgroud)
这样做的 Ansible 方法是否只是使用正则表达式多次处理配置文件(每个扩展名一次),提取当前值,解析它,然后重写它?如果是这样,您如何使多次运行具有幂等性?
如果配置比这更难解析并且它不像附加另一个逗号分隔值那么简单怎么办?想想 XML 配置文件。
我在 AWS EC2 上创建了一个新的 Windows 实例,使用我通过从本地机器上传我的公钥创建的密钥对。
实例启动正常,但不会解密密码。它报告:

我确定我上传了正确的密钥。我已经验证指纹与 AWS 使用的奇怪指纹格式匹配。但它只是不会解密。
我试过上传密钥文件,并将其粘贴到表单中。
我最终发现它没有剥离尾随的换行符,并删除了键中的空行。但是,当我单击“解密密码”时,这只会让我遇到一个新错误:

我正在寻找一种对 Linux 上正在运行的进程进行非侵入式核心转储的方法。
我熟悉 gdb 的gcore,但它只能在gdb附加到进程时运行并且它停止调试。对于一个大的核心转储,这可能意味着多秒甚至几分钟的中断执行。
有没有非阻塞的替代方案?
Linux 支持写时复制内存,它依赖于在fork()没有exec(). 所以我在考虑一些内核级别的事情,其中内核获取正在转储的进程的进程页表的写时复制快照,然后在原始进程继续运行的同时写出核心。
我很确定我可以使用gdb强制fork()然后转储孩子,而父母愉快地继续,然后wait()在父母终止后收割孩子。但是,它很混乱,并且仍然需要两次中断父进程,尽管很短。
以前肯定有人需要这个吗?
我在bashDebian 6.0.6 机器上编写 gpg 脚本时遇到了一些问题。我有一个执行批量操作的脚本,并希望在尝试继续之前确保 gpg-agent 可用。
由于 gpg-agent 在已经运行时启动,将不采取任何行动并返回成功,因此确保代理存在非常简单:
eval $(gpg-agent --daemon)
Run Code Online (Sandbox Code Playgroud)
gpg-agent 开始,或将报告:
gpg-agent[21927]: a gpg-agent is already running - not starting a new one
Run Code Online (Sandbox Code Playgroud)
如果已经运行,则返回 0(成功)。
当代理已经在另一个会话中运行时,就会出现问题。gpg-agent说它已经在运行......但gpg它自己然后声称它不可用。
$ gpg-agent --version
gpg-agent (GnuPG) 2.0.19
libgcrypt 1.5.0
$ gpg --version
gpg (GnuPG) 1.4.13
$ eval $(gpg-agent --daemon)
gpg-agent[21927]: a gpg-agent is already running - not starting a new one
$ gpg -d demo-file.asc
gpg: gpg-agent is not available in this session
Run Code Online (Sandbox Code Playgroud)
这让我感到沮丧和困惑。似乎gpg-agent …
我一直在尝试创建一个清单,用于在 Centos 5 服务器上使用 puppet 安装 postgres 9.1。我一直在尝试调整http://wiki.postgresql.org/wiki/YUM_Installation上的说明以实现这一点,当我通过手动过程时,我已经能够做到。
因此在我看来,木偶清单包含
package { 'postgresql91-server':
ensure => installed,
source => 'http://yum.postgresql.org/9.1/redhat/rhel-5-x86_64/pgdg-centos91-9.1-4.noarch.rpm'
}
Run Code Online (Sandbox Code Playgroud)
但是在尝试应用此清单时,我得到了
err: /Stage[main]//Package[postgresql91-server]/ensure: change from absent to present failed: Could not find package postgresql91-server
Run Code Online (Sandbox Code Playgroud)
有没有专业的木偶师可以帮助我?
看到GNOME 现在在 systemd 范围内启动应用程序后,我一直在寻找一种方法让 systemd 将一些 cgroup 资源和内存限制应用到我的浏览器。
\n我想将 aMemoryMax和应用于每个CPUShare的所有app-gnome-firefox-*.scope实例systemd.resource-control。
但 GNOME 不会使用实例化的单元格式启动 Firefox app-gnome-firefox-@.scope,因此我不知道如何创建一个自动应用于所有app-gnome-firefox-*.scope实例的 systemd 单元文件。
我可以在单元启动后手动将资源限制应用于实例systemctl set-property --user app-gnome-firefox-92450.scope(例如),但这很痛苦。
有没有办法通过名称模式匹配来注入瞬态作用域的属性?
\n这并不gnome-shell具体;它也适用于调用命令的用户终端会话systemd-run --user --scope。
Firefox 肯定是在 systemd 范围内启动的,并且它有自己的 cgroup:
\n$ systemctl --user status app-gnome-firefox-92450.scope\n\xe2\x97\x8f app-gnome-firefox-92450.scope - Application launched by gnome-shell\n Loaded: loaded (/run/user/1000/systemd/transient/app-gnome-firefox-92450.scope; transient)\n Transient: yes\n Active: active (running) since Wed …Run Code Online (Sandbox Code Playgroud) 我在为 RHEL/CentOS 5 主机进行 RPM 签名时遇到了严重的问题。
TL;DR:RPM 签名不起作用,并且它以各种疯狂和不稳定的方式工作,具体取决于确切的 GPG 密钥大小和格式,甚至生成位置,当密钥显示rpm -qa gpg-*为当前时会产生 NOKEY 错误;BAD刚刚使用相同密钥在同一台机器上签名的 RPM 上的签名错误;密钥上的无效密码错误,其中 gpg 直接接受密码而没有问题;等等。
我已经使用 4096、2048 和 1024 位 RSA 密钥以及 2048 位 DSA 密钥进行了测试,在同一个 CentOS 5.10 虚拟机上进行签名和验证。行为因密钥类型和大小而异,但我还没有发现任何真正有效的东西。
姓名、电子邮件和 RPM 文件名被 XXX 屏蔽但没有其他编辑,例如,DSA 2048 密钥:
$ rpm --version
RPM version 4.4.2.3
$ gpg --list-secret 92fb1e62
sec 2048D/92FB1E62 2014-08-29 [expires: 2015-08-29]
uid XXX <XXX@XXX.com>
ssb 2048g/2E0F0A24 2014-08-29 [expires: 2015-08-29]
$ gpg -a --export 92fb1e62 > /tmp/packagers
$ sudo rpm --import /tmp/packagers
$ rpm …Run Code Online (Sandbox Code Playgroud) 我的研究表明,现代文件系统(ext4、xfs)的标准块大小和最大(内核限制)块大小均为 4KB。但是,AWS 允许最大 256KB 的 IO 操作并说
对于 32 KB 或更小的 I/O 操作,您应该会看到已配置的 IOPS 量,前提是您驱动的 I/O 足够使驱动器保持忙碌。对于较小的 I/O 操作,您甚至可能会看到 IOPS 值高于您提供的值(在客户端测量时),这是因为客户端可能将多个较小的 I/O 操作合并为一个较小的数字大块。
Linux 在哪里公开和/或允许配置“设备块大小”?在说,postgres 中的全表扫描(8KB 块大小)时,您可以在哪里查看和/或配置操作系统问题的“IO 操作”的大小?