所以挂载选项很有用,因为它可以提高仅提供静态 html 文件的网络服务器的安全性。
仅用于静态 HTTPD 服务器的 az OpenBSD 5.2 的最佳挂载选项/分区方案是什么?
如果我们使用:
1) 通过 ssh 进行密码认证 2) 密钥认证 - 公钥的行已经在服务器中了 authorized_keys
Q:那么这两种方式中的任何一种,都不需要在客户端存储公钥?
ps:我尝试重命名id_rsa.pub文件,我仍然可以登录到服务器。所以 afaik 不需要在客户端存储公钥。我要求这是 100% 确定的。
我有一个 OpenBSD 5.2 盒子,它在端口 80 上运行网络服务器,在端口 2222 上运行 SSHD 服务器。
如何将 OpenBSD 的 pf 配置为仅允许从给定国家/地区连接到端口 80 和 2222?
提示(在客户端,如何加密文件/密码):
# encrypt pwd with ssh key:
openssl rsa -in ~/.ssh/id_rsa -outform pem > ~/.ssh/TEMP-id_rsa.pem 2>/dev/null
openssl rsa -in ~/.ssh/id_rsa -pubout -outform pem > ~/.ssh/TEMP-id_rsa.pub.pem 2>/dev/null
echo $PWDHERE > ~/.ssh/TEMP.pwd
openssl rsautl -encrypt -pubin -inkey ~/.ssh/TEMP-id_rsa.pub.pem -in ~/.ssh/TEMP.pwd -out ~/.ssh/TEMP.pwd.enc 2>/dev/null
rm ~/.ssh/TEMP.pwd > /dev/null 2>&1
# decrypt:
PWDHERE=`openssl rsautl -decrypt -inkey ~/.ssh/TEMP-id_rsa.pem -in ~/.ssh/TEMP.pwd.enc`
Run Code Online (Sandbox Code Playgroud)
因此,在服务器端使用 root 用户通过 SSH 在服务器上自动运行命令将是一项非常简单的任务(最后,我们需要使用 root 用户从服务器端的台式机运行脚本,但运行命令自动化就足以知道,从那里我们可以做这件事..)。
但是:问题是,如果我们必须首先在服务器上“sudo su -”并在其中输入密码,如何安全地使用 root 自动运行命令?
更新:修改 sudoers 文件不是一个选项。(也许木偶可以做到这一点??)
更新#2:
echo myPassword | sudo -S ls /tmp …Run Code Online (Sandbox Code Playgroud) [USERNAME@host ~] echo -e 'prdxxx\ndadxxx' | grep "da*xxx"
prdxxx
dadxxx
[USERNAME@host ~] echo $SHELL
/bin/bash
[USERNAME@host ~] dpkg -l | grep -iw bash
ii bash 4.1-2ubuntu3 The GNU Bourne Again SHell
ii bash-completion 1:1.1-3ubuntu2 programmable completion for the bash shell
[USERNAME@host ~]
Run Code Online (Sandbox Code Playgroud)
为什么也da*xxx找prdxxx?它不包含da......我发现了一个grep错误吗?或者这是一个功能?
HOSTNAME:~ # fsck -n /FSMOUNTPOINT
fsck 1.38 (30-Jun-2005)
e2fsck 1.38 (30-Jun-2005)
Warning! /dev/vgname/lvname is mounted.
Warning: skipping journal recovery because doing a read-only filesystem check.
/dev/vgname/lvname contains a file system with errors, check forced.
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Inode 12845121 ref count is 1, should be 2. Fix? no
Inode 12845122 ref count is 1, should be 2. Fix? no
Inode 12845123 …Run Code Online (Sandbox Code Playgroud) 输入:
nyeeeeeeeeeeeeeee.txt:sadfsadf
sadjflsajfd:jasdlfjalsfd
foo/asdfsafd.txt:laksjdlfajsfd
Run Code Online (Sandbox Code Playgroud)
输出:
<a href="nyeeeeeeeeeeeeeee.txt">nyeeeeeeeeeeeeeee.txt</a>:sadfsadf
<a href="sadjflsajfd">sadjflsajfd</a>:jasdlfjalsfd
<a href="foo/asdfsafd.txt">foo/asdfsafd.txt</a>:laksjdlfajsfd
Run Code Online (Sandbox Code Playgroud)
所以我需要将 INPUT 转换为 OUTPUT,不同的是 OUTPUT 是“可点击的”,因为这是在一个 HTML 文件中。
问:我如何使用 awk、sed 或 perl 执行此操作?
我知道我可以“逐行读取”,但是最节省资源的方法是什么?(我只需要 1 个解决方案,不适用于所有 sed/awk/等):是分隔符。
我有一个 perl oneliner:
echo -e 'sla\ndfjAAAAk\nsaljdfla\nsjdfBBBBsadf\njasdf' | perl -E 'my $_ = do { local $/; <> }; say join qq!\n!, m!\QAAAA\E\K(.*?)(?=\QBBBB\E)!gs'
k
saljdfla
sjdf
Run Code Online (Sandbox Code Playgroud)
它有效,但我需要这个输出:
dfjAAAAk
saljdfla
sjdfBBBBsadf
Run Code Online (Sandbox Code Playgroud)
所以我也需要包含“AAAA”和“BBBB”的行——而不仅仅是“from”和“to”它们。我怎样才能做到这一点?
输入
dir/foo
Run Code Online (Sandbox Code Playgroud)
输出
dir./
Run Code Online (Sandbox Code Playgroud)
所以我需要:
echo 'dir/foo' | MAGIC
Run Code Online (Sandbox Code Playgroud)
问:什么是MAGIC?(类似于cut+sed加入:D)