小编ccp*_*zza的帖子

如何强制 GPG 使用控制台模式 pinentry 来提示输入密码?

在基于控制台的环境(例如 ssh 会话)中使用 gpg 会失败,因为 GTK pinentry 对话框无法在 SSH 会话中显示。

我试过了,unset DISPLAY但没有帮助。GPG 命令行选项不包括用于强制 pinentry 进入控制台模式的开关。

较旧的 GPG 版本提供了基于文本的提示,该提示在 SSH 会话中运行良好,但升级后却失败了。

--textmode命令行开关,但显然,它还有其他作用。

为远程会话获取纯文本 pin 条目的正确和干净的方法是什么?

linux ssh terminal console gnupg

97
推荐指数
7
解决办法
9万
查看次数

在无头 systemd linux 机器上自动挂载 USB 驱动器

在 Linux 中自动挂载设备的方法不断变化,谷歌搜索返回了相当多的解决方案,对现代基于 systemd 的机器具有不同程度的适用性。

似乎存在以下方法:

  1. 修改/etc/fstab以通过 UUID/标签/设备添加每个驱动器的安装。
  2. udev 规则(显然“原始规则”可能与现有的 systemd 策略冲突)
  3. udisks2运行作为systemd服务或经由udiskie
  4. 恶魔
  5. 挂载
  6. 桌面环境提供的自动挂载,即在 XFCE 上通过thunar+thunar-volman包,或nautilus在 Gnome 中使用gnome-volume-manager包自动挂载(显然它们依赖udisks)。
  7. autofs内核自动挂载程序
  8. systemd自动挂载,使用示例:automount-usb

选择可能是压倒性的,目前尚不清楚哪种方法是推荐的。此外,似乎不同的自动挂载子系统可能会相互冲突,导致分区由一个工具挂载,然后在几秒钟内被另一个工具自动卸载。

对于具有桌面环境的系统,这很简单,因为它们中的大多数会自动处理 USB 挂载,因此除了在设置中启用自动挂载选项外,不需要额外的操作。

对于主要在文本模式下运行的无头系统,当前的方法是什么?

更新

所有我发现的选项摆弄后usbmount,以(几乎)刚刚工作后,我编辑 /lib/systemd/system/systemd-udevd.service和改变MountFlags=slave,以MountFlags=shared在描述这个问题(???? UPDATE:对于最近的systemd版本PrivateMounts=no,而应使用!)。无需手动向任何配置文件添加任何 UUID 或标签。缺点是它创建的挂载点/media/usbN并不完美,所以我已经切换到automount-usb非常容易设置(只需运行configure.sh脚本)并创建挂载文件夹,/media/<device>_<disk_label>例如像/media/sda2_mylabel(???? UPDATE :automount-usb似乎不可维护)。

相关链接:

linux fstab udev automount systemd

17
推荐指数
2
解决办法
1万
查看次数

如何将 Chrome 远程桌面连接设置为永不超时?

我希望能够通过Chrome 远程桌面连接到无人值守的远程计算机,但是一旦我在 Chrome 插件中单击共享并显示访问代码,它会在几分钟内超时。

有没有办法强制插件无条件地监听传入的连接而不会超时?

它目前的工作方式只有在两个人坐在两端时才有意义,并且当您需要连接到无人值守的计算机时使用起来很痛苦,因为在这种情况下,您需要使用其他一些图形连接协议,这会破坏整个想法的遥控器。

remote-desktop google-chrome chrome-remote-desktop

16
推荐指数
1
解决办法
10万
查看次数

如何将 CTRL+A、CTRL+E 映射为 Home、End 系统范围?

有没有办法将 CTRL+A 和 CTRL+E 映射到系统范围内作为移动到行首,并相应地移动到行尾?

即我希望这些快捷方式能够在任何应用程序中无缝工作,而不仅仅是在终端中(即在 OSX 中)。

我的主要系统是带有 Unity 桌面的 Ubuntu,但最好有一个通用的解决方案,该解决方案与桌面无关,或者至少在 Gnome、XFCE 和 LXDE 中受支持。

linux hotkeys key-binding ubuntu ubuntu-unity

10
推荐指数
1
解决办法
983
查看次数

如何在 Linux 上收听麦克风输出?

我想在 Skype 通话期间听到麦克风输出。我曾尝试摆弄 alsamixer 设置并确保麦克风已取消静音,但仍然无法在耳机或扬声器中听到麦克风的声音。

这可以用 alsa 实现吗?

audio linux alsa

6
推荐指数
2
解决办法
2万
查看次数

普通用户关闭、暂停或重新启动计算机的正确方法是什么?

我的肮脏解决方案是chmod +s /sbin/shutdown. 它有效,但这可能不是一个好的做法并且不安全。此外,在某些系统更新后,suid 位会被重置。正确的做法是什么?

linux shutdown reboot

5
推荐指数
1
解决办法
7235
查看次数

mpv:如何播放从标准输入管道传输的 URL 列表

有没有办法让 mpv 播放从另一个命令的标准输出通过管道传输的 URL 列表?

我的用例是从 HTML 页面播放所有媒体链接,例如使用以下内容:

extractlinks.py http://example.com '*.mp3' | mpv
Run Code Online (Sandbox Code Playgroud)

extractlinks.py返回一个可播放的 URL 列表,通常可以将其视为有效的 m3u 播放列表。我尝试使用mpv --playlist但它不接受来自标准输入的播放列表。

有没有办法mpv从标准输入读取 URL 列表?

pipe mpv

4
推荐指数
1
解决办法
2668
查看次数

如何设置自定义 SSH 连接响应字符串?

是否可以修改建立原始连接时 OpenSSH 服务器显示的字符串?

这不是关于建立连接显示的文本横幅,它可以通过 中的Banner参数配置sshd_config,而是关于 SSH 服务器在握手之前尝试连接时发送的原始输出。

例如,给定一个原始的 telnet 连接

$ telnet localhost 22
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
SSH-2.0-OpenSSH_7.2p2
Run Code Online (Sandbox Code Playgroud)

有没有办法将识别信息减少到最低限度?

我的理解是它SSH-2.0-必须存在,因为 SSH 协议需要它,但后面的字符串 - OpenSSH_7.2p2- 可能不是协议所要求的,但我看不到一种无需重新编译就可以更改或删除它的方法。

目的是避免提供比协议正常工作所需的更多信息。

ssh openssh sshd

3
推荐指数
1
解决办法
3558
查看次数

使用 jq 从 JSON 数组中提取元素

我有以下 JSON 文件inp.json

{
 "x": 0,
 "tx": [
  {
   "id":  "a",
   "t" : "t for a"
  },
  {
    "id": "b",
    "t": "t for b"
  }
 ]
}
Run Code Online (Sandbox Code Playgroud)

我想提取“tx”中第一次出现的键“t”的值。

我试过

jq -r .tx <inp.json | jq -r '[0].t'
Run Code Online (Sandbox Code Playgroud)

但收到错误消息

断言“cb == jq_util_input_next_input_cb”失败:文件“/usr/src/ports/jq/jq-1.6-1.x86_64/src/jq-1.6/src/util.c”,第371行,函数:jq_util_input_get_position

更新:我也尝试过这些变化

... | jq -r '.[0]t'
Run Code Online (Sandbox Code Playgroud)

... | jq -r '.[0].t'
Run Code Online (Sandbox Code Playgroud)

但前者给出了错误消息jq: error: 语法错误,意外的 IDENT,期待 $end,而后者与我最初的尝试相同的错误。

json jq

3
推荐指数
1
解决办法
4万
查看次数