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)。