我最近了解到(至少在 Fedora 和 Red Hat Enterprise Linux 上),编译为位置独立可执行文件 (PIE) 的可执行程序会获得更强的地址空间随机化 (ASLR) 保护。
那么:如何在 Linux 上测试特定的可执行文件是否被编译为位置无关的可执行文件?
当我运行类似的命令时ls */*/*/*/*.jpg
,出现错误
-bash: /bin/ls: Argument list too long
Run Code Online (Sandbox Code Playgroud)
我知道为什么会发生这种情况:这是因为内核对命令参数的空间量有限制。标准建议是更改我使用的命令,以避免需要太多的参数空间(例如,使用find
和xargs
)。
如果我不想更改命令怎么办?如果我想继续使用相同的命令怎么办?我怎样才能让事情“正常工作”,而不会出现这个错误?有哪些解决方案?
我在 Fedora 上使用 MATE。在某些时候,许多应用程序上滚动条的行为发生了变化。当我在滚动条下方单击时,现在滚动条会跳转到我单击的位置。以前,它用于向下翻页(如果我单击滚动条当前位置下方的任何位置)。
我更喜欢旧的行为。当在一个很长的页面上时,新的行为往往会使滚动条几乎无法使用:我无法控制我点击的位置足够精确以控制页面跳转到的位置。
有没有办法恢复以前的行为?换句话说,有没有办法点击滚动条当前位置下方的滚动条,使窗口向下移动一页,而不是跳转到我点击的位置?
这种差异在 Firefox 中最为明显,但不仅限于 Firefox;它也会影响其他应用程序。
我是 X11 的新手,想了解它是否真的像他们在互联网上所说的那样危险。
我将解释我如何理解这一点。从当前用户下启动的任何应用程序都可以访问键盘、鼠标、显示器(例如截屏),这并不好。但是,如果我们从官方存储库(例如,用于 Debian)安装程序,这些程序不太可能包含键盘记录器等,那么危险似乎被夸大了。我错了吗?
是的,您可以在单独的服务器(例如 Xephyr)上打开应用程序,但这很不方便,因为没有共享剪贴板。基于 tmp 文件创建剪贴板也很不方便。
如何在 PulseAudio 中设置每次启动后使用的默认配置文件?
当我启动时,声音不起作用。如果我打开 PulseAudio 音量控制应用程序,然后转到“配置”窗格并从“配置文件”下拉菜单中选择“模拟环绕 4.0 输出”,则声音再次起作用。但是,这只持续到下一次重新启动。
如何配置系统以在将来重新启动后使用该配置文件?
当我启动时,PulseAudio 默认将输出发送到耳机。我希望它默认将输出发送到 Line Out。我怎么做?
我可以手动更改输出的当前发送位置,如下所示:启动 Pulseaudio 音量控制应用程序,转到输出设备选项卡,然后在端口旁边,选择线路输出选项而不是耳机。但是,每次启动机器后我都必须这样做 - 重新启动后,Pulseaudio 将自身重置回耳机。这有点烦人。如何使我的选择坚持并在重新启动后保持不变?
以下是音量控制应用程序在重新启动后外观的屏幕截图,其中选择了耳机:
如果我单击端口旁边的选择器,我会得到以下两个选项:
选择线路输出使声音工作。(请注意,耳机和线路输出都被标记为“未插入”,但实际上我确实在线路输出端口中插入了一些东西。)
评论:我不是在寻找更改默认输出设备的方法。我只有一张声卡。 pacmd list-sinks
只显示一个水槽。因此,pacmd set-default-sink
没有帮助。(这也无济于事。)这里我需要设置的是“端口”,而不是输出设备。如果相关,我正在使用 Fedora 20 和 pulseaudio-5.0-25.fc21.x86_64。
我正在我的机器上安装 NFS 文件系统。如何确定服务器使用的 NFS 协议版本?我无权访问 NFS 服务器机器,但我的客户端机器上有 root 用户。
有什么我可以在我的客户端机器上运行的东西来识别服务器正在使用什么版本的 NFS 协议,或者它支持什么版本?
我无法在/var/log/messages
内核调试输出 ( dmesg
) 中找到任何有用的信息。
我试过 running nfsstat
,但我不确定它是否给了我任何有用的信息。但是,当我运行nfsstat -s
请求有关服务器的信息时,我看不到任何有用的信息:
# nfsstat -s
Server rpc stats:
calls badcalls badfmt badauth badclnt
0 0 0 0 0
Run Code Online (Sandbox Code Playgroud)
当我运行nfsstat -c
请求有关客户端的信息时,我确实看到了一些有关 的信息Client nfs v3
,但我不确定如何解释它。这是否告诉我有关客户端计算机和 NFS 服务器之间使用的协议的任何信息?这是否意味着我目前使用的是 NFS 协议的 v3?它是否告诉我有关服务器支持的 NFS 协议版本(例如 NFS v4)的任何信息?
我已经读到我不应该将 /var/tmp 挂载为临时文件系统(例如,作为 tmpfs),因为 /var/tmp 中的文件不能在重新启动时删除。那是对的吗?
假设我确实将 /var/tmp 挂载为 tmpfs,因此每次重新启动时都会删除其内容。那会不会很糟糕?如果是,会出现什么问题?会有多糟糕?
我读到您不应该将 /tmp 存储在 SSD 上,因为频繁写入会缩短 SSD 的使用寿命。但是 /var/tmp 呢?
将 /var/tmp 存储在 SSD 上是否合理?或者我们应该避免将 /var/tmp 存储在 SSD 上,以避免过早杀死 SSD?
该shuf
命令有一个--output
标志,您可以使用它来指定将其输出写入何处(而不是写入 stdout)。
我想就地随机播放文件。shuf file --output file
使用相同的文件名作为输出文件名和要读取的文件是否安全?
或者这会导致文件损坏吗?它是特定于平台的吗?当我在一个小文件上进行测试时,它似乎工作正常,但是手册页没有说明这一点,我不确定是否要担心。
查看我的系统日志,我看到以下消息/var/log/messages
:
Sep 2 15:29:15 <myhostname> systemd[1]: Requested transaction contradicts existing jobs: File exists
Run Code Online (Sandbox Code Playgroud)
所以,我的问题是:如何解决此错误?我应该采取什么步骤来理解这意味着什么,是什么导致了它,是否需要担心,如果是,如何纠正它?
而且,“请求的交易与现有的工作相矛盾”消息是什么意思?我怀疑一定有我缺少的概念背景。在任何情况下,此错误消息是否建议一些候选的后续步骤来诊断此错误消息的原因并了解导致它的原因?
我已经阅读了 systemd 文档,但我没有发现它们对此有帮助。最好有一个关于寻找什么的一般指南:我怀疑这可能对那些也经历过“......与现有工作相矛盾”消息的其他人有所帮助。
是否支持以较新的 OpenSSH 文件格式gnome-keyring
保存的 SSH 私钥?Gnome Keyring 会自动导入这些私钥吗?
更详细地说:生成 SSH 私钥时,ssh-keygen
可以将私钥保存为较新的 OpenSSH 格式(而不是“更兼容的 PEM 格式”)。在这种格式下,私钥文件以“ -----BEGIN OPENSSH PRIVATE KEY-----
”开头。
我刚刚为 SSH 生成了一个新的 RSA 私钥,并将其保存为较新的格式,使用ssh-keygen -t rsa -b 3072 -o -a 16
. 现在 Gnome Keyring 似乎无法加载该私钥。相比之下,使用时一切似乎都工作正常ssh-agent
。
当将 Gnome Keyring 与此新私钥一起使用时,我在以下位置看到以下错误消息/var/log/messages
:
gnome-keyring-daemon[10904]: invalid or unrecognized private SSH key: [key id]
gnome-keyring-daemon[10904]: signing of the data failed: The operation failed
Run Code Online (Sandbox Code Playgroud)
当我尝试运行时ssh
,我在终端中看到以下错误消息:
sign_and_send_pubkey: signing failed: agent refused operation
Run Code Online (Sandbox Code Playgroud)
如果相关的话,我正在使用 Fedora 25 …
我正在使用 Debian jessie 稳定版。我注意到wpa_supplicant
根据CVE-2015-8041 的版本 容易受到 DoS 攻击:
2.5 之前的 hostapd 中的 NDEF 记录解析器和 2.5 之前的 wpa_supplicant 中的多个整数溢出允许远程攻击者通过 (1) WPS 或 (2) P2P 中的大有效载荷长度字段值导致拒绝服务(进程崩溃或无限循环) NFC NDEF 记录,触发越界读取。
在稳定版本上,可用版本是wpa_supplicant 2.3
,通常sources.list
不可能将当前版本升级到 wpa_supplicant 2.5
,为什么 Debian 稳定版保留一些过时(易受攻击)的软件包?