我正在对我正在处理的应用程序进行一些测试,我需要能够在短时间内以静默方式丢弃传出的 UDP 数据包以复制可能的故障模式。
有没有办法做到这一点?
注意:iptables
DROP
对于传出的消息不是沉默的!当一个send()
或类似的电话被 掉线时iptables
,它会EPERM
由于某种奇怪的原因返回(请参阅此处。不幸的是,我无法使用该答案,因为我的目的地只有一跳之遥)。
xtables-addons
曾经有一个STEAL
动词,但几年前它无缘无故被删除了。
我现在尝试在路由表中使用虚假路由,不幸的是,这似乎破坏了通信流量的两个方向。
对于我需要做的测试,我必须允许入站UDP 流量,一旦我安装了虚假路由,流传入的数据包立即停止,尽管源仍在发送它们。
我正在使用 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 …
我有一个旧的、深奥的专用硬件(它是一个 HP 逻辑分析仪系统)。它正在运行 HP-UX(因为旧)。
现在,它直接启动到运行特殊逻辑分析器软件的 X 会话。
我想进入终端提示,以便我可以浏览内部结构(出于好奇)。
鉴于这基本上是一台带有一些特殊硬件的 PC,您可以通过哪些方式摆脱轻度锁定的 X 会话?我确实可以访问这台机器的硬件,但我想避免为这件事拉磁盘或制作启动软盘(我没有任何其他带有软盘驱动器的设备!)。
我只是不小心从错误的磁盘上清除了所有分区。
/dev/sda
是启动盘,/dev/sdb
是我试图设置为 RAID 镜像的新磁盘。
我不小心把它弄胖了,最后删除了 上的分区表/dev/sda
,而不是/dev/sdb
。
系统仍在运行,因此它正在某处运行缓存分区表。
我可以恢复分区表,或者至少查看它,以便我可以准确地重新创建分区吗?
fdisk /dev/sda -l
不产生分区。
是的,我觉得自己很聪明
我有一台运行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) 我正在尝试在 linux 机器上查找和移动一大堆文件夹。
所有文件夹的名称都相同,所以我使用echo $RANDOM
提供一个随机数来用作文件夹名称。
echo $RANDOM
每次运行时确实会输出一个随机数。然而,
find . -type d -name .AppleDouble -exec mv \'{}\' \'/raid/data/Storage/AppleDouble/`echo $RANDOM` \;
对每个文件夹使用相同的“随机”数,因此,只移动一个文件夹。
我认为问题是$RANDOM
在find
开始运行时会立即进行评估。我如何转义它,以便在选项开始运行$RANDOM
之前不评估的值-exec
(或者有什么更好的方法来做到这一点)?
注意:我在busybox上,所以我不能真正安装任何东西。
好吧,这让我有点发疯。
我正在尝试查看一组子目录中的文件数。
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 那么这个确切的片段有什么问题(因为它在其他地方似乎是正确的!)。
是否有某些 GNU 软件旧版本的文档来源,特别是在这种情况下bash
?
我有一个运行 bash 3.00.16 的嵌入式系统,我正在尝试执行一些 shell 脚本,但事情没有按预期工作(显然没有进程替换)。
此外,由于这是一个嵌入式系统,我没有man
或info
,因此系统上确实没有可用的帮助。
有没有什么地方可以查看旧版本的文档以及bash
各个版本的文档?
我有一个存在内存问题的虚拟机。我想在其中运行的任务之一是因内存不足错误而崩溃。
然而,当它崩溃时,系统仍然保持内存不足。我不确定这是否只是我遗漏的一个进程,还是一个实际的错误(这是在 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)