在我的本地主机上,alpha我有一个foo通过 sshfs 映射到主机的目录,bravo如下所示:
$ sshfs charlie@bravo:/home/charlie ~/foo
Run Code Online (Sandbox Code Playgroud)
但是,在主机上bravo还有另一个用户 delta,我想sudo /bin/su成为它,以便我可以在bravo:/home/delta. delta可能无法通过 ssh 登录;由于我无法改变的原因,一旦你在机器上,你只能 sudo 到 delta。
通常我会 ssh 进入bravo,然后 sudo 到 delta,但我想知道当我通过 ssh 安装了查理的主目录时,是否有任何方法可以做到这一点。
我已经编写了各种连接到 LDAP 服务器并运行查询的代码,但对我来说一直都是巫术。我不太明白的一件事是绑定 DN 的概念。下面是一个使用ldapsearchopenldap 提供的命令行工具的示例。(忽略缺少身份验证。)
ldapsearch -h 1.2.3.4 -D dc=example,dc=com [query]
Run Code Online (Sandbox Code Playgroud)
这部分的目的和功能是-D dc=example,dc=com什么?为什么我们需要绑定到目录层次结构中的特定位置?是否要确定我的查询应应用于目录的哪一部分?例如,如果目录的根节点是dc=com,并且它有两个子节点(dc=foo和dc=bar),也许我希望我的查询针对dc=foo,dc=com子树而不是dc=bar,dc=com子树?
查看维基百科上的以太网条目,我无法弄清楚它是如何指示以太网帧的长度的。EtherType/Length 头字段显然可以指示帧类型或显式长度,我猜测在帧类型的情况下,它必须执行一些其他逻辑来确定数据包的长度。例如,如果 EtherType 字段为 0x0800,则表示 IPv4 有效负载,因此接收 NIC 必须检查有效负载的前 32 位以找到 IP 数据包的长度,从而计算出 IP 数据包的总长度以太网帧,并知道何时查找帧尾校验和和帧间间隙。
这听起来正确吗?我还查看了以太网的IEEE 802.3 规范(无论如何是第 1 部分),这似乎证实了这一点,但它非常不透明。
在route -nLinux 上的输出中,您会得到如下信息:
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.0.0.1 0.0.0.0 UG 0 0 0 eth0
10.0.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
169.254.169.254 0.0.0.0 255.255.255.255 UH 0 0 0 eth0
Run Code Online (Sandbox Code Playgroud)
我知道这Genmask是指路由的网络掩码部分,但为什么它被称为“Genmask”而不是“网络掩码”,就像其他地方一样?这实际上是我见过“Genmask”的唯一地方。
我用
ssh -D 1080 myhost.org
Run Code Online (Sandbox Code Playgroud)
...打开从我的工作机器到我的家用机器的 SSH 隧道,以绕过公司防火墙上的愚蠢内容过滤器。但是,这也会创建一个交互式 SSH 会话,该会话在我使用隧道的整个过程中都存在。有什么方法可以告诉 SSH 只是创建隧道而不打扰交互式会话?
/home/myname/bin/script:
#!/bin/bash
ifconfig > /home/myname/foo
Run Code Online (Sandbox Code Playgroud)
定时盘:
* * * * * /home/myname/bin/script
Run Code Online (Sandbox Code Playgroud)
……等一分钟……
@@ 11:35:51 [myname@comp - ~]$ ls foo
-rw-r--r-- 1 myname myname 0 Jul 7 11:35 foo
@@ 11:35:55 [myname@comp - ~]$
Run Code Online (Sandbox Code Playgroud)
我不明白为什么 foo 最终会是空的。在命令行上运行 ifconfig 命令完全符合您的预期,将其输出转储到文件中,就像正常一样。作为参考,我正在运行 Ubuntu 8.04。
在我的主机上运行 kubuntu 10.04,我们称之为alpha. 我有 postfix 作为我的系统 MTA。我有 crons 正在运行alpha,需要向远程主机发送电子邮件,我们称之为mailhost。我无法更改mailhost.
通常我使用 Thunderbird 通过mailhost使用 IMAP over TLS发送/接收电子邮件。Thunderbird 中的 SMTP 设置被配置为使用 STARTTLS。
我希望 cron 作业继续运行alpha以将邮件发送到mailhost,但由于它alpha是住宅 NAT 后面的动态 IP 主机mailhost,alpha由于通常的反垃圾邮件/RBL 启发式方法,很难接受来自NAT的邮件。但是,如果我可以让 postfix 在mailhost将邮件发送到某个地址时使用 TLS 进行连接(dirtside@mailhost例如),那么邮件应该可以正常通过。
我想弄清楚的是如何将 postfix 配置为仅在连接到mailhost.
替代解决方案(例如使用 postfix 以外的其他解决方案)是可以接受的,但最终的任务仍然是允许运行的 cronalpha将电子邮件发送到dirtside@mailhost.com.