从技术上讲,除非pam设置为检查您的 shell pam_shells,如果您不在shell 上,这两种方法实际上都不能阻止您的登录。在我的系统上,它们的大小甚至不同,所以我怀疑它们实际上做了一些事情。那么有什么区别呢?为什么它们都存在?为什么我要使用一个?
-rwxr-xr-x 1 root root 21K Feb 4 17:01 /bin/false
-rwxr-xr-x 1 root root 4.7K Mar 2 14:59 /sbin/nologin
Run Code Online (Sandbox Code Playgroud) 我最近有一项任务是理解二进制 Linux 程序。但是,该程序是二进制形式的。
我使用了命令file,strings和objdump对它在做什么以及它调用了什么函数有一个初步的了解。
似乎二进制文件是用调试信息编译的。我还能学到什么?
我不会使用像 AppArmor 抱怨模式这样的复杂工具,我需要简单的工具来告诉我特定程序访问了哪些文件。
强者strace让我失望。这怎么可能?
time foo显示foo需要几秒钟才能运行(“真实”),但在用户空间(“用户”)和内核(“系统”)中使用的 CPU 时间可以忽略不计。对于好奇,foo定义如下。
所以它大部分时间都在等待其他东西,而不是执行 CPU 指令。通常,我可以看到它是如何等待的strace——即长时间阻塞的系统调用。不幸的是,这种方法不起作用。
strace -ttt -T -C -w foo显示系统调用、时间戳以及在系统调用中花费的(实际)时间的摘要。但是这个特定的过程显示在系统调用中花费的整体(真实)时间可以忽略不计。
foo实际上是journalctl -b -u dev-hugepages.mount。除了我每次都必须将最后一个参数更改为不同的 systemd 单元才能重现这一点。换句话说,我正在调查的延迟发生在我第一次尝试获取任何一个 systemd 单元的日志时。 编辑:回答主要问题后,我也意识到我遇到这个问题的原因重现了 delay。
此过程所花费的时间是一个特定问题,显然并非在所有系统上都会发生。https://github.com/systemd/systemd/issues/7963
sort -V在alpine linux下怎么办?
sort: unrecognized option: V
BusyBox v1.28.4 (2018-12-06 15:13:21 UTC) multi-call binary.
Usage: sort [-nrugMcszbdfiokt] [-o FILE] [-k start[.offset][opts][,end[.offset][opts]] [-t CHAR] [FILE]...
Sort lines of text
-o FILE Output to FILE
-c Check whether input is sorted
-b Ignore leading blanks
-f Ignore case
-i Ignore unprintable characters
-d Dictionary order (blank or alphanumeric only)
-g General numerical sort
-M Sort month
-n Sort numbers
-t CHAR Field separator
-k N[,M] Sort by Nth field
-r Reverse …Run Code Online (Sandbox Code Playgroud) ls -l /bin/true显示它的大小为 27168 字节,而仅返回 0 的 ac 程序要小得多。此外,运行objdump -d /bin/true会产生一个包含许多系统调用的庞大汇编程序。为什么一个“什么也没成功做”的程序需要所有这些?
linux ×3
alpine-linux ×1
files ×1
login ×1
open-files ×1
performance ×1
process ×1
security ×1
shell ×1
size ×1
sort ×1
strace ×1
time ×1