小编jrp*_*ear的帖子

我可以跳过 strace 中动态加载器进行的系统调用吗?

当我strace检查程序时,我经常很难找到动态加载程序的系统调用在哪里结束以及程序的系统调用在哪里开始。

strace ./hello一个简单的 hello world C 程序的输出hello有 36 行。这是一个示例:

execve("./hello", ["./hello"], 0x7fffb38f4a30 /* 73 vars */) = 0
brk(NULL)                               = 0x1304000
arch_prctl(0x3001 /* ARCH_??? */, 0x7ffe6715fe60) = -1 EINVAL (Invalid argument)
access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
newfstatat(3, "", {st_mode=S_IFREG|0644, st_size=92340, ...}, AT_EMPTY_PATH) = 0
mmap(NULL, 92340, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f78d9fbd000
close(3)                                = 0
openat(AT_FDCWD, "/lib64/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\260|\2\0\0\0\0\0"..., 832) = 832 …
Run Code Online (Sandbox Code Playgroud)

linux elf strace

10
推荐指数
1
解决办法
844
查看次数

为什么 systemd 用户会话不是由“su”启动的?

当我使用 ssh 登录服务器上的 root 用户时,0会创建一个条目,/var/run/user因为pam_systemd告诉我systemd-logind要执行此操作。这是一个指示符,表明 uid 0 的用户会话已启动。

然后,当我运行时su jack,我仍然只看到;0中的条目。/var/run/user本次会议没有任何条目。

但是,journalctl显示 pam 会话已打开,并且/etc/pam.d/su包括common-session,其中添加了session optional pam_systemd.so。所以我认为应该创建一个用户会话。

如何su创建用户会话?

如果相关的话,我使用的是 Debian 11。

pam su systemd logind

6
推荐指数
1
解决办法
1760
查看次数

标签 统计

elf ×1

linux ×1

logind ×1

pam ×1

strace ×1

su ×1

systemd ×1