我编写了一个函数,该函数使用 CRC 校验和检查损坏的存档。
为了测试它,我只是打开了存档并使用十六进制编辑器对内容进行了加扰。问题是我不相信这是生成损坏文件的正确方法。
有没有其他方法可以创建“受控损坏”,因此它不会完全随机但可以模拟真实损坏的档案会发生什么?我从来没有故意破坏某些东西,所以除了随机打乱文件中的数据之外,我真的不确定该怎么做。
我正在将文件加载到变量中,问题是该文件是在 Windows 中格式化的,我相信,所以我得到了一个^M
而不是换行符。
当值在变量中时如何修改它?我知道我可以修改 VI 中的源代码(顺便说一下,我使用的是 OS X),但是我无法修改原始文件,只能读取它,所以我必须^M
从变量中删除。
根据我的理解,\n
与 不同^M
,因此tr
命令不起作用。
编辑
这个问题似乎不清楚;所以这是澄清。
我逐行解析文件;每行有 2 个值,由制表符分隔,在每行的末尾,有一个 ^M,它看起来像这样:
value1 value2^M
value3 value4^M
value5 value6^M
value7 value8^M
Run Code Online (Sandbox Code Playgroud)
我的工作流程非常简单明了:txt 文件包含您在上面看到的内容,循环分隔字段并为每一行获取值;当我打印第二个值时,它有 ^M,我想删除它
while IFS=$'\t' read -r -a line
do
Type1="${line[0]}"
Type2="${line[1]}"
done < $TXTFILE
Run Code Online (Sandbox Code Playgroud)
这意味着当我打印 Type1 时它很好,但是 Type2 变量包含 ^M。我确实使用过tr
,但没有用,我确实用过sed
删除了变量的最后一个字符,但没有用。希望这能澄清我的问题。谢谢
我是 iptables 和网络的新手,所以我正在试验它。
我正在学习如何关闭端口;特别是我试图关闭主机上的特定端口,因此网络上的另一台机器不会收到数据包。
我想丢弃端口 22 上的传出流量,因此无法从特定机器 (192.168.100.3) SSH 到机器 (192.168.100.10)。
我在要丢弃流量的机器 (192.168.100.3) 上编写了此规则:
iptables -I OUTPUT -s 192.168.100.10 -p tcp --dport 22 -j DROP
Run Code Online (Sandbox Code Playgroud)
到目前为止,我没有遇到任何错误,但是当我尝试通过 ssh 进入这台机器时,我可以毫无问题地这样做。
我认为我的规则是“丢弃输出中的所有数据包,定向到该端口上的该 IP”;这将无法启动 ssh 连接,因为它在端口 22 上运行。
我错过了什么?如何检查规则是否确实有效?
编辑:感谢您的评论,我看到我使用了 s 而不是 d;这可能是它不起作用的原因。
我有一个运行 Linux 的远程服务器。我想远程安装操作系统映像,以防它被损坏(在我试验操作系统时这已经发生了两次)。
到目前为止,我所拥有的唯一方法是物理转到机器位置并使用 USB 磁盘安装操作系统和 BIOS 看到它,因此它可以从它启动。
有什么方法可以通过连接到机器ssh
,附加这个图像,让它像在 Windows 上的虚拟驱动器上一样(例如守护程序工具),所以它会持续重启并允许我远程安装操作系统?
我正在 Google 上查看解决方案,但我发现一些提到 PXE 启动的内容....这听起来很复杂,因为您需要一个服务器等,而且它不像安装映像并完成它那么简单。
除此之外,我没有发现任何有用的东西,所以我很缺乏选择......有谁知道如何做到这一点?
我正在为 Linux Debian 发行版创建一个新用户。
当我以 root 身份登录时,我确实使用该命令通过终端创建了一个新用户;tehn 将用户分配到 sudo 组,因此我可以在需要时以超级用户身份安装和运行命令(无需与 su 交换)。
是否有一系列命令要执行、创建用户、创建主文件夹、将其分配给 sudo 组等?
这是我执行的命令序列:
<login as root>
useradd myuser
passwd myuser
adduser myuser sudo
usermod myuser -s /bin/bash
<logout and login as myuser>
Run Code Online (Sandbox Code Playgroud)
此时,我还没有设置主文件夹;通过 sudo 创建了一个,但显然它的所有者是 Root,所以我不能在里面做任何事情。
我不得不使用 chown 来更改 home 权限,尽管这似乎不对。
我还需要做什么才能创建合适的用户?