我正在尝试学习如何使用 getopts 以便我可以使用解析输入的脚本(尽管我认为 getopts 可能会更好)。我正在尝试编写一个简单的脚本来返回分区使用百分比。问题是我的 bash 函数之一似乎不喜欢我$1
在函数中作为变量引用。我引用的原因$1
是因为该get_percent
函数可以将挂载点作为可选参数传递给 display 而不是所有挂载点。
#!/usr/bin/bash
set -e
set -u
set -o pipefail
get_percent(){
if [ -n "$1" ]
then
df -h $1 | tail -n +2 | awk '{ print $1,"\t",$5 }'
else
df -h | tail -n +2 | awk '{ print $1,"\t",$5 }'
fi
}
usage(){
echo "script usage: $(basename $0) [-h] [-p] [-m mount_point]" >&2
}
# If the user doesn't supply any arguments, we …
Run Code Online (Sandbox Code Playgroud) 显然,我可以将用户需要 SSH 访问的每个主机的密钥 scp。但如果有很多主机,这可能需要很长时间。特别是如果尚未设置公钥身份验证,每个 scp 都会要求我输入密码。这可能非常耗时且烦人。
使用自动挂载的主目录会解决这个问题吗?因为这样每个主机都会为每个用户使用相同的主目录,所以公钥只需要复制一次。然而,这似乎不对。有人可以给我建议吗?
是否可以恢复已从 XFS 文件系统 rm'ed 的文件?假设文件没有被覆盖,我如何恢复它们?
编辑:关于这个主题的现有问题都假设一个 ext{2,3,4} 文件系统。我正在寻找 XFS 解决方案。
假设我需要通过 SSH 连接到许多系统并在每个系统上运行一个简单的命令。问题是我不想连续输入 50 次密码来完成此操作。所以我想我会暂时使用没有密码的 RSA 密钥。我的问题是,为了运行非交互式脚本,这种标准做法是否会暂时将您的私钥文件设置为没有密码短语,此时您将通过ssh-keygen -p
命令设置一个非常安全的密码短语?有没有另一种方法来实现这一点?
在哪里可以找到系统调用列表以及每个调用的作用?我不是 C 程序员,我是管理员,所以有时我发现在正在运行的进程上运行strace
以查看发生了什么很有帮助,但有很多东西我不明白。我想我可以接受阅读源代码,但对于像我这样不花一整天编程的人来说,这是一项耗时的工作。对于理解 GNU/Linux 的这个方面有什么建议吗?
如何使用 parted 或类似工具更改分区的起始位置?看起来您只能更改分区的结束位置,但这似乎不对。
https://www.gnu.org/software/parted/manual/parted.html#index-resizepart_002c-command-description
我正在运行 ProxMox 5.3 (Debian 9stretch) 虚拟机管理程序,并且我想保护对虚拟机管理程序的 SSH 访问。我已按照此处找到的文档将 MFA 添加到 openssh,但是我做了一些细微的修改。也就是说,我想允许以下身份验证方法
然而,无论出于何种原因,当我尝试从其中一台虚拟机通过 SSH 连接到虚拟机管理程序来测试此配置时,系统从未提示我输入 google-authenticator 代码。这就是我所看到的/var/log/auth.log
[root@vm1 ~]# ssh 192.168.86.2
root@192.168.86.2's password:
Permission denied, please try again.
Run Code Online (Sandbox Code Playgroud)
root@hypervisor:~# tail -f /var/log/auth.log
...
Apr 17 08:58:53 pve1-gkh8ww1 sshd(pam_google_authenticator)[8971]: Invalid verification code
Apr 17 08:58:54 pve1-gkh8ww1 sshd[8971]: Failed password for root from 192.168.86.3 port 54948 ssh2
Run Code Online (Sandbox Code Playgroud)
我知道我输入的密码正确,因为我刚刚用它登录。因此,我尝试在客户端和服务器上运行更详细的输出。
来自客户
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey,password
debug1: Next authentication method: publickey
debug1: Offering RSA …
Run Code Online (Sandbox Code Playgroud)