Linux-PAM 和内核有什么关系?Linux-PAM 是内核的一部分吗?
当我使用sudo,tty时,这种身份验证是否在内核空间中完成?
PAM 完全在用户空间中。它是一组库,供需要验证凭据的程序使用。
例如,ldd /usr/bin/sudo在我的机器上显示
linux-vdso.so.1 => (0x00007fff30fff000)
libutil.so.1 => /lib/x86_64-linux-gnu/libutil.so.1 (0x00007f5923fd4000)
libpam.so.0 => /lib/x86_64-linux-gnu/libpam.so.0 (0x00007f5923dc7000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f5923bc2000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f592382d000)
/lib64/ld-linux-x86-64.so.2 (0x00007f59241fd000)
使用 PAM 库的二进制文件需要以 root 身份运行(例如,库代码可能需要访问 /etc/shadow)。