小编jip*_*pie的帖子

什么 env x='() { :;}; 命令' bash 做,为什么不安全?

bash 中明显存在漏洞(CVE-2014-6271):Bash 特制环境变量代码注入攻击

我试图弄清楚发生了什么,但我不完全确定我理解它。如何echo在单引号中执行?

$ env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
vulnerable
this is a test
Run Code Online (Sandbox Code Playgroud)

编辑 1:打补丁的系统如下所示:

$ env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
bash: warning: x: ignoring function definition attempt
bash: error importing function definition for `x'
this is a test
Run Code Online (Sandbox Code Playgroud)

编辑 2:有一个相关的漏洞/补丁:CVE-2014-7169,它使用了一个稍微不同的测试:

$ env 'x=() { :;}; echo vulnerable' 'BASH_FUNC_x()=() { :;}; echo vulnerable' bash -c …
Run Code Online (Sandbox Code Playgroud)

bash vulnerability shellshock

246
推荐指数
5
解决办法
11万
查看次数

查看 Linux 库/可执行版本信息

在 Windows 中,EXE 和 DLL 具有版本信息,至少包括以下字段:

  1. 文件版本
  2. 产品版本
  3. 内部名称
  4. 产品名称
  5. 版权

在 Linux 库/可执行文件中:

  • 存在哪些字段?
  • 如何查看此类信息?
  • What tools/libraries to read?

version libraries executable

56
推荐指数
4
解决办法
19万
查看次数

组密码的典型用例

我检查了半个多世纪的 Unix 经验,我的同事和我自己都没有在组(sggpasswd)上设置密码。组密码的典型用例是什么,还是由于历史原因它几乎只存在?

password group

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

什么是 gvfs,我为什么要在我的系统上使用它?

gvfs 在我的 Kubuntu 机器上为我做什么,为什么 /usr/lib/gvfs/gvfs-gdu-volume-monitor 占用了这么多 CPU 时间?

顺便说一句:我阅读了https://en.wikipedia.org/wiki/GVFS,但仍然不知道它对我有什么好处,尤其是在 KDE/Kubuntu 上。

lsof向我展示了thunderbirdfirefoxpidgin打开了 gvfs 库,但有什么功能?

kubuntu gvfs

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

为什么非特权用户可以执行`sync`命令?

目前在 Ubuntu Linux 上,但我在其他操作系统上也注意到了这一点。显然任何用户都可以执行该sync命令——但这是为什么呢?我只能看到缺点:由于不必要的磁盘写入,系统速度变慢。

为什么每个用户都可以执行sync

hard-disk synchronization authorization privileges

12
推荐指数
2
解决办法
6969
查看次数

环境与 cron 相同的交互式 shell

我知道 crontabs 的魔法世界中有很多陷阱,但有时当你有一些聪明的方法来输入一个交互式 (bash) shell 时,它会帮助解决很多问题,当 shell 脚本从定时任务。

现在我想到了/bin/openvt -c8 -- /bin/bash --noprofile -l,但它需要root权限,设置太多变量和一个简单的su myusername设置很多额外的环境。

任何人都知道一种启动交互式 bash shell 的方法,它具有与 cron 相同的环境并且不需要在 Kubuntu 上具有 root 权限?

在 ssh 会话、GUI 以及以下一个或多个操作系统中工作时的奖励:HP-UX、Solaris 和 AIX

cron environment-variables

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

在 /usr/share/perl5/IO/Socket/SSL.pm 第 332 行指定的 SSL_version 无效

由于我将我的 PC 从 (k)ubuntu 12.04 升级到 12.10,我在尝试使用sendemail.

安装旧版本的 IO::Socket::SSL 不是一种选择。我的印象是一切正常,消息只是一个警告。

我怎样才能摆脱这个消息?


SSL.pm

我认为以下与问题有关(/usr/share/perl5/IO/Socket/SSL.pm)。

34  use constant DEFAULT_VERSION     => 'SSLv23:!SSLv2';
Run Code Online (Sandbox Code Playgroud)

...

251         my %default_args = (
252                 Proto => 'tcp',
253                 SSL_server => $is_server,
254                 SSL_use_cert => $is_server,
255                 SSL_check_crl => 0,
256                 SSL_version     => DEFAULT_VERSION,
257                 SSL_verify_mode => SSL_VERIFY_NONE,
258                 SSL_verify_callback => undef,
259                 SSL_verifycn_scheme => undef,  # don't verify cn
260                 SSL_verifycn_name => undef,    # use from PeerAddr/PeerHost
261                 SSL_npn_protocols => undef,    # meaning depends whether on …
Run Code Online (Sandbox Code Playgroud)

ubuntu perl ssl

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

限制网络爬虫

我的网站被谷歌网络蜘蛛 DoS 攻击。欢迎 Google 为我的网站编制索引,但有时它在我的网站上查询标签云的速度比我的网络服务器产生结果的速度要快,从而使我的网络服务器资源耗尽。

如何以不影响普通访问者的方式限制对我的网络服务器的访问?

robots.txt 不是选项,因为它会阻止整个站点被索引。

iptables -m recent 很棘手,因为有些页面有很多图像或其他数据文件,并且“最近”也触发了这些文件(通常是我的 RSS 聚合器,加载图像和提要)。

iptables -m limit 有同样的缺点,最重要的是,我无法对每个 IP 源地址进行选择性。

如何限制导致服务器负载过高的访问者?

我在 VirtualBox VM 的 Ubuntu 服务器上运行 apache2。

performance limit load apache-httpd

8
推荐指数
1
解决办法
4515
查看次数

127.0.0.0/8 的 IPv6 等效项是什么

我正在尝试在 Linux 上设置 IP6tables 防火墙,我基本上想开始复制我的 IPv4 配置。

我的规则之一只是接受到本地主机子网的所有流量:

iptables -A INPUT -s 127.0.0.0/8 -j ACCEPT
Run Code Online (Sandbox Code Playgroud)

尽管 IPv6 的等价物是什么,但我有点困惑。是不是就这么简单:

ip6tables -A INPUT -s ::/128 -m comment --comment localhost -j ACCEPT
Run Code Online (Sandbox Code Playgroud)

互联网上的许多来源解释了 127.0.0.1,但我专门寻找 127.0.0.0/8 等效项,但我还没有找到确认。

顺便说一句ip6tables -vnL,当我发出以下命令时,我希望计数器增加:

telnet -6 localhost 22
Run Code Online (Sandbox Code Playgroud)

但这不会发生。

linux iptables ipv6 ip6tables

8
推荐指数
1
解决办法
4378
查看次数

有什么命令可以查看目录下的文件系统内部碎片大小吗?

如果一个文件系统的块大小是4KB,那么对于一个1KB的文件,就浪费了3KB的空间(也就是内部碎片)。那么,在一个目录下,有没有什么命令可以总结一下由于内部碎片导致浪费了多少磁盘空间?

linux filesystems disk-usage ext3

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

从文件系统备份中找出 Ubuntu 上已安装的软件包

我的 Ubuntu 机器有一个完整的文件系统备份,我的操作系统磁盘崩溃了。

有没有办法dpkg -l从备份中列出所有已安装的软件包(就像但是)?

日志文件不是一个选项,因为它们不完整,它们列出了安装、部分安装和卸载等。

ubuntu backup debian package-management

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

xterm 中的 TERM=(linux|xterm) vi 或 AAABBBBBBCCDDD 问题

通常当我想vim在桌面konsole会话中运行时,我确保将 TERM 变量设置linux为箭头键在插入模式下不起作用TERM=xterm。它们显示大写 A..D 而不是移动光标。

现在我认为这是错误的做事方式,konsole或者xterm实际上是类型xterm

有没有更好的方法让箭头键在vi/下工作vim

操作系统:Kubuntu 13.04(干净安装)

vim xterm console key-mapping

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

在 64 位 Linux 安装中缺少 32 位库

我想弄清楚为什么 Eclipse 抱怨找不到库。我已经设法将 java 问题重现/减少到:

$ ldd /home/jhendrix/.swt/lib/linux/x86/libswt-pi-gtk-3833.so
        linux-gate.so.1 =>  (0xf76fa000)
        libgtk-x11-2.0.so.0 => not found
        libgthread-2.0.so.0 => /usr/lib/i386-linux-gnu/libgthread-2.0.so.0 (0xf7674000)
        libXtst.so.6 => not found
        libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xf74c9000)
        libglib-2.0.so.0 => /lib/i386-linux-gnu/libglib-2.0.so.0 (0xf73cd000)
        /lib/ld-linux.so.2 (0xf76fb000)
        libpcre.so.3 => /lib/i386-linux-gnu/libpcre.so.3 (0xf738d000)
        libpthread.so.0 => /lib/i386-linux-gnu/libpthread.so.0 (0xf7372000)
        librt.so.1 => /lib/i386-linux-gnu/librt.so.1 (0xf7368000)
Run Code Online (Sandbox Code Playgroud)

事实上,java 正在抱怨无法定位libgtk-x11-2.0.so.0. 但是当我检查时ldconfig,图书馆就在那里:

$ sudo ldconfig -v 2>&1 | grep -E '(libgtk-x11-2.0.so.0|libXtst.so.6)'
        libXtst.so.6 -> libXtst.so.6.1.0
        libgtk-x11-2.0.so.0 -> libgtk-x11-2.0.so.0.2400.13
Run Code Online (Sandbox Code Playgroud)

我怀疑它与运行 64 位系统、运行 32 位自定义 Eclipse 构建(Texas Instruments Code Composer 5)有关:

$ locate …
Run Code Online (Sandbox Code Playgroud)

64bit ubuntu libraries java

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