小编Ali*_*Ali的帖子

反向 SSH 隧道如何工作?

据我了解,防火墙(假设默认设置)拒绝所有没有先前对应的传出流量的传入流量。

基于Reversing an ssh connectionSSH Tunneling Made Easy,反向 SSH 隧道可用于绕过烦人的防火墙限制。

我想在远程机器上执行 shell 命令。远程机器有自己的防火墙,并在附加防火墙(路由器)后面。它有一个像 192.168.1.126(或类似的东西)这样的 IP 地址。我不在防火墙后面,我知道从 Internet 上看到的远程机器的 IP 地址(不是 192.168.1.126 地址)。此外,我可以要求某人ssh (something)首先在远程机器上以 root身份执行。

谁能一步一步地向我解释反向 SSH 隧道如何绕过防火墙(本地和远程机器的防火墙以及它们之间的附加防火墙)?

开关 ( -R, -f, -L, -N)的作用是什么?

networking ssh firewall remote-management ssh-tunneling

432
推荐指数
4
解决办法
30万
查看次数

为什么我不能用 dd 复制我的 DVD?

我试过 dd, dd_rescueddrescue,都失败了。我认为这些工具绕过文件系统并进行按位复制。

dd 被愚弄了,它完成了但只是生成一个小文件并说明它已完成。

dd_rescuse 和 ddrescue 抱怨读取错误并且速度慢得令人无法忍受。这些工具只能在 10 分钟内复制几 MB。

重要提示:VLC 无法打开 DVD。

为什么会发生这种情况,为什么这些工具会失败?


AnyDVD可以在一秒钟内将光盘复制到 Win7 主机上。它说 UDF 文件系统已打补丁,奇怪的是,它还说没有坏扇区。可以在 10 分钟内复制整个光盘。


更新:至于解决方案,请参阅我在 superuser 上的类似问题

filesystems backup dvd dd data-recovery

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

Bash 路径补全如何与 sudo 配合使用?

选项卡路径完成不起作用(至少在 Ubuntu 和 AFAIK Arch 上)与

sudo mount <whatever>
Run Code Online (Sandbox Code Playgroud)

我尝试挂载的 iso 文件不在/etc/fstab. 如果我只是输入

mount <whatever>
Run Code Online (Sandbox Code Playgroud)

完成工作(但当然命令失败,因为我不是 root)。显然是sudo它打破了它。

如何使用 sudo 完成工作?

令人惊讶的是,与

sudo umount <whatever>
Run Code Online (Sandbox Code Playgroud)

完成工作。它是如何实现的?它调查/etc/fstab吗?

解决方案:我只是将一个 shell 脚本放入带有传递给它的参数的/usr/local/bin调用中sudo mount ...。调用此脚本时完成工作,因为没有sudo障碍。

bash sudo path mount autocomplete

11
推荐指数
1
解决办法
4439
查看次数

删除目录中除路径在文件中列出的文件外的所有文件

鉴于以下文件:

data/A/a.txt
data/B/b.pdf
...
date/P/whatever.log
...
data/Z/z.jpg
Run Code Online (Sandbox Code Playgroud)

我想删除data/A/, data/B/, ...,data/Z/目录中的所有文件,但位于文件中列出的目录之一下的那些文件除外data/dont_clean.txt。例如,如果我们已经data/P在 中列出,data/dont_clean.txt那么在 下不应触及任何内容data/P/,等等。

就像是:

find data/ -mindepth 2 -maxdepth 2 -type f -not -path {listed in data/dont_clean} -delete
Run Code Online (Sandbox Code Playgroud)

当然,这不是有效的命令。

我也尝试过

find data/ -mindepth 2 -maxdepth 2 -type f -exec grep data/dont_clean.txt '{}' \;
Run Code Online (Sandbox Code Playgroud)

但我只创建了一个无效的命令,或者我不知道为什么我得到了我所做的输出。

我在 Ubuntu 12.10 上使用 bash

scripting bash find shell-script files

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

如何使用命名管道在进程之间转发?

/tmp/in/tmp/out并且/tmp/err已经创建的命名管道,以及一些进程打开(分别用于阅读,写作和写作)。

我想创建一个新进程,将其 stdin 导入/tmp/in,并将 的内容写入/tmp/out其标准输出,并将 的内容/tmp/err写入其标准错误。一切都应该以行缓冲的方式工作。当创建的另一个进程/tmp/in停止读取并关闭时,该进程应该退出/tmp/in。该解决方案应该适用于 Ubuntu,最好不安装任何额外的软件包。我想在 bash 脚本中解决它。


Mikeserv指出,没有SSCCE,很难理解我想要什么。所以,下面是一个 SSCCE,但请记住,这是一个最小的例子,所以它非常愚蠢。

原来的设置

父进程启动子进程并通过子进程的 stdin 和 stdout 逐行与它通信。如果我运行它,我会得到:

$ python parent.py 
Parent writes to child:  a
Response from the child: A

Parent writes to child:  b
Response from the child: B

Parent writes to child:  c
Response from the child: C

Parent writes to child:  d
Response from the child: …
Run Code Online (Sandbox Code Playgroud)

shell pipe buffer fifo

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

“cp p2 &amp;2 &amp;”命令让Konsole消失,是bug吗?

目标是启动一个后台进程,将数据从管道 p2 复制到 STDOUT,因为 p2 是由其他进程提供数据的。

我猜命令不正确。尽管如此,Konsole 应用程序窗口不应在按下 Enter 键后立即消失。我应该收到错误消息或提交崩溃报告窗口或其他任何内容。

为什么会发生这种情况,这是一个错误吗?

如何修复命令以获得我想要的?(稍后我可能想将数据复制到 STDOUT 以外的其他地方。)

bash pipe konsole io-redirection shell-script

0
推荐指数
1
解决办法
285
查看次数