我添加了行
auth required pam_tally2.so deny=3 unlock_time=180
Run Code Online (Sandbox Code Playgroud)
到我的/etc/pam.d/login文件,在 3 次尝试testuser被暂停后,这在 tty 中很好。
但是,同样的行/etc/pam.d/sshd没有产生任何效果。
xieerqi:$ ssh testuser@localhost
Password:
Password:
Password:
Permission denied (publickey,keyboard-interactive).
xieerqi:$ ssh testuser@localhost
Password:
Password:
Password:
Permission denied (publickey,keyboard-interactive).
Run Code Online (Sandbox Code Playgroud)
正如您在 3 次尝试失败后所看到的,用户仍然可以尝试输入密码。
ssh3次罢工后如何禁止用户?
考虑案例 1:
$ COUNT=0 ; while [ $COUNT -ne 3 ]; do echo $COUNT; COUNT=$(expr $COUNT + 1 );done
0
1
2
$ echo $COUNT
3
Run Code Online (Sandbox Code Playgroud)
COUNT正如预期的那样,到循环结束时,变量为 3
考虑情况 2:
$ COUNT=1; find . -print0 | while IFS= read -r -d '' FILE; do echo "$FILE"; expr $COUNT + 1; COUNT=$(expr $COUNT + 1 ) ;done
.
2
./file name
3
./file
4
./a
b
5
$ echo $COUNT
1
Run Code Online (Sandbox Code Playgroud)
如您所见,在这种情况下 COUNT 保持不变。为什么 ?可以看出,它在while循环内部发生了变化,但一旦脱离循环就不会发生变化。
我到底错过了什么?
用 python 编写的 Ubuntu 指标可以使用两个 API 来完成:appindicator 和 AppIndicator3。它们之间有什么区别,使用一个比另一个有什么优势吗?
我想知道两者之间是否有区别
if [ $x -eq $y -o $x -eq 1 ]
if [ $x -eq $y ] || [ $x -eq 1 ]
Run Code Online (Sandbox Code Playgroud)
两者似乎都有效。谢谢
如何使用变量查找模式,然后在同一行中在该模式后添加文本?
我试过这个,但没有用:
sed -i "/$node_number/ i mytext" "$filepath.csv";
Run Code Online (Sandbox Code Playgroud) 我希望能够通过多选文件或目录然后右键单击来比较文件或目录(例如,如果上下文菜单中有“比较”选项)。
在带有 Nautilus 的 Ubuntu 上,我会安装包nautilus-compare。我怎样才能在Xubuntu中获得这种能力?(在 Xubuntu 的 Thunar - 我不是说安装 Nautilus)
我使用的比较程序是meld,但一般的答案将是最有用的。
我可以将两个文件拖到 Meld GUI 中。我还可以单击文件比较(请参阅
),然后选择一个文件,将其与任何文件进行比较,然后选择第二个文件。这似乎是迂回的。我想比较两个文件,最好在多选文件选择器 GUI 中进行比较。
更好的方法是右键单击 Nautilus 中的一两个文件来运行 Meld。
其中任何一个都可能吗?
我想在 grep 找到或找不到我可以写的东西时循环:
while grep 'matches' inLogFile.txt
do
echo good.
sleep 10
done
Run Code Online (Sandbox Code Playgroud)
或者
while grep -v 'notHereYet' inLogFile.txt
do
sleep 2
done
echo -e '\a'Yo! It is here now.
Run Code Online (Sandbox Code Playgroud)
我在交互式 shell 提示符下输入这些。
所以我想反复检查df卷实际安装的时间,有点像:
while df | grep -v '/toBeMounted'
do
sleep 2
done
echo -e '\a'Hey, I think you wanted to know that /toBeMounted is available finally.
Run Code Online (Sandbox Code Playgroud)
我无法弄清楚如何将管道分组到条件中。
我知道我可以这样做:
while [ -z "$(df|grep '/toBeMounted')" ]
do
sleep 2
done
echo -e '\a'Okay that is finally present now. …Run Code Online (Sandbox Code Playgroud) ps aux --sort=-%cpu | grep -v 'whoami'命令应该输出不是由有效用户启动的进程。但是,它会打印出我用户的进程以及其他用户的进程。请解释什么是错的。