我用 C++ 编写了一个小工具,对其进行编译,使其可执行,并将其移至/opt/tools/bin。后者是我创建的用于存储小型自定义程序的目录。我export把它放在$PATH我的.zprofile中,它让我tool在终端中使用,并且程序运行良好。
然而,当我尝试设置一个 cron 作业tool每天运行几次时,cron 总是抱怨"/bin/sh: ./tool: No such file or directory"。
我已经尝试过这两个 cron 命令,结果相同:
0 8,12,16,20 * * * zhrdct >> /opt/tools/var/log/zhrdct.log 2>&10 8,12,16,20 * * * ./zhrdct >> /opt/tools/var/log/zhrdct.log 2>&1这里可能有什么问题?
我知道我可能可以使用工具的绝对路径,但如果可能的话,我希望它可以与速记一起使用。
我有一个 18.04 Ubuntu 服务器,我用它通过 SSH 隧道绕过我所在国家/地区的互联网过滤/审查制度。为此,我使用该命令创建了多个用户adduser USERNAME --shell=/bin/false,并为他们提供了服务器 IP、服务器端口、用户名和密码(我将其称为帐户),以便他们可以通过我的服务器建立隧道。现在我想确保每个帐户一次只能在一台设备上使用。换句话说,我想防止多个设备使用同一帐户同时通过我的服务器建立隧道。
通过谷歌搜索,我找到了一个解决方案:我将以下内容放入文件中/root/checkConnections:
#! /bin/bash
limit=$1
c=$(pgrep -xcu $PAM_USER sshd)
if [[ $c -ge "$limit" ]]; then
echo "Max $limit ssh connections allowed, but you have $c."
exit 1
fi
Run Code Online (Sandbox Code Playgroud)
然后/etc/pam.d/sshd我添加了:
session required pam_exec.so stdout /root/checkConnections 1
Run Code Online (Sandbox Code Playgroud)
这段代码运行良好,并且完全符合我的要求,但它有一个明显的缺点:当我退出 putty 时,我无法再通过 ssh 连接到服务器!换句话说,当我尝试以 root 身份 ssh 到服务器时,它立即将我踢出并不允许我登录,这就是我必须重新安装服务器的原因。我怎么解决这个问题?
注意:我对 Linux 服务器世界非常陌生,所以请简单地解释一下你的解决方案。
是否可以强制 Windows 10 接受与自定义强调色完全匹配的颜色?
Windows 10 (21H2) 正在将我的自定义强调色转换10, 36, 106为10, 39, 116. 当我从“个性化”>“颜色”>“自定义颜色”输入自定义强调色时,我看到警告:
不支持该颜色
如果可能的话,我正在寻找规范的答案。或者一个解决方案(如果有人找到过的话)。
随着最近的Firefox 113.0版本的发布,Firefox 地址栏的历史搜索结果中出现了一个新的三点按钮菜单。如何在按下 Tab 键时阻止该按钮获得焦点,或者摆脱它?
\n它是一个带有三个点的圆形按钮,位于我的浏览历史记录中的任何搜索结果的右侧。它的工具提示显示\xe2\x80\x9cOpen menu\xe2\x80\x9d。当你点击它时,有两个条目:\xe2\x80\x9c从历史记录中删除\xe2\x80\x9d和\xe2\x80\x9c了解更多\xe2\x80\x9d,请参见以下屏幕截图:
\n\n我习惯按 Tab 键向下浏览搜索结果。新的菜单按钮使这变得更加困难,因为它需要选项卡焦点。我必须按两次 Tab 键才能转到下一个项目。第一次点击 Tab 将焦点移动到新按钮。当我第二次点击选项卡时,我才会进入下一个项目。另外,我认为菜单对我没有帮助。我已经知道如何从历史记录中删除条目(Shift+Delete),并且 \xe2\x80\x9c了解更多\xe2\x80\x9d 只是一个指向如何自定义 Firefox 建议设置 的链接。因此,我想禁用这个新按钮或至少阻止它获取选项卡焦点。有什么办法可以做到这一点吗?
\n我对Windows一无所知,并尝试了解有关权限的概念。不幸的是,仅仅谷歌搜索根本没有帮助。
Windows 说我的用户是“管理员”组的成员。但是,当我正常运行 PowerShell 等程序时,它们拒绝执行某些操作,例如安装新服务。但是,当我在开始菜单中选择“以管理员身份运行”时,他们突然能够这样做。这背后的机制是什么?
我在“以管理员身份运行”的进程 (PowerShell) 中创建了一个文件,然后在 Windows 中检查该文件的所有者。但令我惊讶的是,所有者是我自己的用户,而不是“管理员”用户。
这是怎么回事?
我想"-r --run"分成"-r"和"--run"
为了
string split " " "-r --run"
Run Code Online (Sandbox Code Playgroud)
我明白了
字符串分割:-r --run:未知选项`作为错误
它把字符串误认为是标志。我如何让它将其视为要分割的字符串?
我正在考虑 Windows 10/11。
哪些 Windows 10 应用程序使用“DNS 客户端”服务?
我猜浏览器、邮件客户端等 Windows 应用程序都有自己的 DNS 客户端(也称为“存根解析器”),因此绕过 Windows DNS 客户端。它们都使用操作系统设置的 DNS 服务器(在网络适配器的属性中)。
另外:您可以检查的 Windows DNS 缓存ipconfig /displaydns仅存储由 Windows DNS 客户端解析的 DNS 记录,我对吗?这样每个 Windows 应用程序都会使用自己的缓存吗?
非常感谢任何澄清。
我用 g++ 编译的 C++ 编写了最愚蠢的程序来测试我的操作系统:
int main()
{
while (true)
{
new int;
}
}
Run Code Online (Sandbox Code Playgroud)
出于纯粹的好奇,我想了解 Windows 将如何响应程序,无情地分配内存。我预计它会在某个时候崩溃,或者 Windows 会进行干预,并释放所有内存。令我惊讶的是,Windows 并没有让它运行,导致整个 PC 无法使用。任务管理器仍然可以显示一些更改,而我的 32 GB RAM 已完全使用,直到它冻结。那么,什么都行不通。我仍然可以使用鼠标,我可以每 20 或 30 秒左右移动一次鼠标,持续一帧。CTRL-C 不起作用,但我不知道它是否识别出我之前从任务管理器切换到命令行。当我注意到我的 SSD 被大量使用时(LED 一直亮着),我决定什么最适合我的硬盘:硬重置...这就引出了一个问题:
为什么Windows 10允许程序无限期地消耗所有资源并让它使PC完全无法使用?
人们会认为一个编写良好的操作系统 - Linux 会如何响应?- 将采取一些安全措施来防止程序消耗所有资源。我认识到可能存在完全有必要使用所有可用资源的用法,但它是否应该仅通过简单的malloc(或在本例中new)可用?或者只是我的系统有问题?
注意:我强烈建议不要执行上面的程序,因为它可能会导致严重崩溃。