小编Fak*_*ame的帖子

如何静默丢弃一些传出数据包?

我正在对我正在处理的应用程序进行一些测试,我需要能够在短时间内以静默方式丢弃传出的 UDP 数据包以复制可能的故障模式。

有没有办法做到这一点?

注意:iptables DROP 对于传出的消息不是沉默的!当一个send()或类似的电话被 掉线时iptables,它会EPERM由于某种奇怪的原因返回(请参阅此处。不幸的是,我无法使用该答案,因为我的目的地只有一跳之遥)。

xtables-addons 曾经有一个STEAL动词,但几年前它无缘无故被删除了。


我现在尝试在路由表中使用虚假路由,不幸的是,这似乎破坏通信流量的两个方向。
对于我需要做的测试,我必须允许入站UDP 流量,一旦我安装了虚假路由,流传入的数据包立即停止,尽管源仍在发送它们。

networking iptables

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

为非本地用户启用系统管理权限 - `polkit` 到底是如何工作的?

我正在使用 X over SSH 远程管理 CentOS 6.2 服务器(实际上是 NX,但这只是一个代理)。

Everything 工作正常,除非我尝试执行通常需要管理权限的任务(例如 中的内容palimpsest或任何其他 GUI 工具)。

当我尝试执行会触发身份验证对话框的操作(通过polkit-gnome)时,权限对话框无声无息地失败,并且软件以我的用户帐户而不是 root 身份运行。

澄清一下,如果我在本地控制台使用包管理器更改包设置,我会收到一个弹出窗口 - “(添加/删除)包需要身份验证”。

如果我远程执行此操作,身份验证将失败,并且会出现“授权失败”对话框。

它似乎归结为 policykit 配置,但我遵循了 polkit 手册页,并编辑了我的配置,它没有改变任何东西。


我可以从命令行管理包/做超级用户的事情,没有任何问题。但是,我非常注重视觉,并且在可能的情况下更喜欢 GUI。


好的,看来我需要向 policykit 添加新规则。

离开手册页,我创建了一个文件(名为20-remote-admin-allow.pkla),并将其放入/etc/polkit-1/localauthority/50-local.d/. 由于似乎有多个 polkit 配置目录,我将同一个文件复制到/var/lib/polkit-1/localauthority/50-local.d/.

它似乎没有改变任何东西。

这是我的配置文件,如上所述:

[root@cloaica zul]# cat /var/lib/polkit-1/localauthority/50-local.d/10-remote-admin-allow.pkla 
[Let remote users do admin stuff]
Identity=unix-user:zul
Action=*
ResultAny=auth_admin
ResultInactive=auth_admin
ResultActive=auth_self_keep

[root@cloaica zul]# cat /etc/polkit-1/localauthority/50-local.d/20-remote-admin-allow.pkla 
[Allow Remote Administraton]
Identity=unix-user:zul
Action=*
ResultAny=auth_admin
ResultInactive=auth_admin
ResultActive=auth_admin
[root@cloaica zul]# 
Run Code Online (Sandbox Code Playgroud)

pkaction --verbose …

ssh centos ssh-tunneling

7
推荐指数
1
解决办法
5328
查看次数

在旧的、奇怪的硬件上获取终端访问权限

我有一个旧的、深奥的专用硬件(它是一个 HP 逻辑分析仪系统)。它正在运行 HP-UX(因为旧)。

现在,它直接启动到运行特殊逻辑分析器软件的 X 会话。

我想进入终端提示,以便我可以浏览内部结构(出于好奇)。

鉴于这基本上是一台带有一些特殊硬件的 PC,您可以通过哪些方式摆脱轻度锁定的 X 会话?我确实可以访问这台机器的硬件,但我想避免为这件事拉磁盘或制作启动软盘(我没有任何其他带有软盘驱动器的设备!)。

hp-ux

6
推荐指数
1
解决办法
123
查看次数

不小心删除了我的启动盘上的分区。系统仍在运行。我怎样才能恢复?

我只是不小心从错误的磁盘上清除了所有分区。

/dev/sda是启动盘,/dev/sdb是我试图设置为 RAID 镜像的新磁盘。

我不小心把它弄胖了,最后删除了 上的分区表/dev/sda,而不是/dev/sdb

系统仍在运行,因此它正在某处运行缓存分区表。

我可以恢复分区表,或者至少查看它,以便我可以准确地重新创建分区吗?

fdisk /dev/sda -l 不产生分区。

是的,我觉得自己很聪明

linux partition data-recovery

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

什么魔鬼在 SSH 登录时覆盖了我的路径?

我有一台运行Gogs实例的服务器(一个自托管的 github 克隆)。

我最近进行了手动升级,并移动了很多东西,包括更改远程用户登录的用户名。

不知何故,现在,我无法通过 ssh 进入 git 用户(名为gogs):

Durr@DURRCOMP ~
$ ssh --noprofile gogs@192.168.1.8
PTY allocation request failed on channel 0
bash: /home/git/go/src/github.com/gogits/gogs/gogs: No such file or directory
Connection to 192.168.1.8 closed.
Run Code Online (Sandbox Code Playgroud)

某处某处正在执行(或尝试执行)二进制文件/home/git/go/src/github.com/gogits/gogs/gogs,该文件在更改之前确实存在。

但是,我不知道是什么将其插入到登录过程中

gogs用户的外壳:

root@vcsbox:/etc/gogs/conf# cat /etc/passwd | grep gogs
gogs:x:109:119::/home/gogs:/bin/bash
root@vcsbox:/etc/gogs/conf#
Run Code Online (Sandbox Code Playgroud)

gogs用户没有.bashrc.profile

gogs@vcsbox:~$ pwd
/home/gogs
gogs@vcsbox:~$ ls -a
.  ..  .bash_history  .cache  .gitconfig  gogs-repositories  .nano_history  .ssh
gogs@vcsbox:~$
Run Code Online (Sandbox Code Playgroud)

/etc/profile 出现正常:

gogs@vcsbox:~$ cat /etc/profile …
Run Code Online (Sandbox Code Playgroud)

bash ssh

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

`$RANDOM` 在 `find` 的 `-exec` 中不是随机的

我正在尝试在 linux 机器上查找和移动一大堆文件夹。

所有文件夹的名称都相同,所以我使用echo $RANDOM提供一个随机数来用作文件夹名称。

echo $RANDOM
每次运行时确实会输出一个随机数。然而,
find . -type d -name .AppleDouble -exec mv \'{}\' \'/raid/data/Storage/AppleDouble/`echo $RANDOM` \;
对每个文件夹使用相同的“随机”数,因此,只移动一个文件夹。

我认为问题是$RANDOMfind开始运行时会立即进行评估。我如何转义它,以便在选项开始运行$RANDOM之前不评估的值-exec(或者有什么更好的方法来做到这一点)?

注意:我在busybox上,所以我不能真正安装任何东西。

bash find

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

`watch` 中的链接命令

好吧,这让我有点发疯。

我正在尝试查看一组子目录中的文件数。

find . | wc -l 正确返回子文件夹和文件的数量。

但是,在手表屏幕中watch 'find . | wc -l'返回 watch: find . | wc -l: No such file or directory
它返回与双引号或反引号 (`) 相同的内容。


这是在bash的古老版本上:
GNU bash, version 3.00.16(2)-release (i486-slackware-linux-gnu)
Copyright (C) 2004 Free Software Foundation, Inc.

这也是一个嵌入式设备,因此它运行的是 busybox ( BusyBox v1.1.0 (2010.06.14-02:47+0000) multi-call binary) 而不是普通的 gnu 实用程序,因此大多数常用工具的大多数开关和功能也不存在。

所以必须考虑到这一点。然而,linux 安装被烘焙到一个磁盘模块上,所以没有简单的方法来更新它。

相同的命令 ( watch 'find . | wc -l') 在更新的 linux 安装上正常工作,所以这个问题更多地是关于处理过时的 bash 那么这个确切的片段有什么问题(因为它在其他地方似乎是正确的!)。

shell watch busybox

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

在哪里可以找到 bash 的历史文档?

是否有某些 GNU 软件旧版本的文档来源,特别是在这种情况下bash

我有一个运行 bash 3.00.16 的嵌入式系统,我正在尝试执行一些 shell 脚本,但事情没有按预期工作(显然没有进程替换)。

此外,由于这是一个嵌入式系统,我没有maninfo,因此系统上确实没有可用的帮助。

有没有什么地方可以查看旧版本的文档以及bash各个版本的文档?

bash documentation

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

查找占用大量内存且在`ps` 或类似内容中不可见的内容

我有一个存在内存问题的虚拟机。我想在其中运行的任务之一是因内存不足错误而崩溃。

然而,当它崩溃时,系统仍然保持内存不足。我不确定这是否只是我遗漏的一个进程,还是一个实际的错误(这是在 hyper-v 中,具有允许 linux 主机内存膨胀的新内核扩展,因此它很可能是一个真正的内核错误)。

durr@sqlbox:~$ free -h
             total       used       free     shared    buffers     cached
Mem:          3.1G       2.6G       541M        88K       7.4M        39M
-/+ buffers/cache:       2.5G       588M
Swap:         1.0G       6.2M       1.0G
Run Code Online (Sandbox Code Playgroud)

Free 告诉我,它不只是缓存,实际上有一些东西似乎正在占用 2.6G 内存。

但是,查看按虚拟大小排序的 PS 输出并不具有启发性:

durr@sqlbox:~$ ps -e ax -o pid,vsz,comm | sort --numeric-sort --key=2
[ ... snip ... ]
  PID    VSZ COMMAND
   96      0 rcuob/23
   97      0 rcuob/24
   98      0 rcuob/25
   99      0 rcuob/26
 1124   4368 acpid
59863  10016 ps
 1031  15668 upstart-file-br
 1047  15820 getty
 1050 …
Run Code Online (Sandbox Code Playgroud)

memory out-of-memory

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