![理解 /var/log/auth.log - 对“pam_unix”和“polkit”的混淆](https://linux22.com/image/1018365/%E7%90%86%E8%A7%A3%20%2Fvar%2Flog%2Fauth.log%20-%20%E5%AF%B9%E2%80%9Cpam_unix%E2%80%9D%E5%92%8C%E2%80%9Cpolkit%E2%80%9D%E7%9A%84%E6%B7%B7%E6%B7%86.png)
我很难理解 Ubuntu 中的 auth.log 文件中的某些行。你能帮我分解一下这些行吗?
pkexec: pam_unix(polkit-1:session): session opened for user root by (uid=1001)
pkexec 是启动 pam_unix 的可执行文件(?)pam_unix 是用于验证用户的系统调用(?)我不明白 polkit-1 会话是什么
会话已打开是什么意思?有人尝试登录或有人登录成功?
有什么方法可以调查此身份验证请求来自何处?更多日志行如下:
此外,任何了解有关此问题的更多信息的资源都会有所帮助,我已经查看了很多网站,所以也许您可以推荐一本可以解释这一点的系统管理书籍?
Jun 4 06:30:36 laptop pkexec: pam_unix(polkit-1:session): session opened for user root by (uid=1001)
Jun 4 06:30:36 laptop pkexec: pam_systemd(polkit-1:session): Cannot create session: Already running in a session
Jun 4 06:30:36 laptop pkexec[26293]: giulia: Executing command [USER=root] [TTY=unknown] [CWD=/home/giulia] [COMMAND=/usr/lib/update-notifier/package-system-locked]
Jun 4 07:03:36 laptop pkexec: pam_unix(polkit-1:session): session opened for user root by (uid=1001)
Jun 4 07:03:36 laptop pkexec: pam_systemd(polkit-1:session): Cannot create session: Already running in a session
Jun 4 07:03:36 laptop pkexec[26507]: giulia: Executing command [USER=root] [TTY=unknown] [CWD=/home/giulia] [COMMAND=/usr/lib/update-notifier/package-system-locked]
Jun 4 07:56:50 laptop unix_chkpwd[27106]: password check failed for user (giulia)
Jun 4 07:56:50 laptop compiz: pam_unix(unity:auth): authentication failure; logname= uid=1001 euid=1001 tty= ruser= rhost= user=giulia
Jun 4 08:24:36 laptop pkexec: pam_unix(polkit-1:session): session opened for user root by (uid=1001)
Jun 4 08:24:36 laptop pkexec: pam_systemd(polkit-1:session): Cannot create session: Already running in a session
Jun 4 08:24:36 laptop pkexec[27821]: giulia: Executing command [USER=root] [TTY=unknown] [CWD=/home/giulia] [COMMAND=/usr/lib/update-notifier/package-system-locked]
答案1
Polkit 是一种特权提升系统,与 PAM 类似,但两者的具体机制有所不同。pkexec
是一个命令,它公开了sudo
以其他用户(通常是 root)身份运行命令的样式命令。 Polkit 有点复杂,不太合理,有点难以理解,但据我所知,它pkexec
会调用 PAM 来验证用户凭据,然后再将该信息以及要执行的操作传递给 polkit 守护程序(我从来没说过这是合理的)。
pam_unix
是 PAM 的一个模块,它是对用户进行身份验证(不一定是授权)的事实标准。PAM 是一个库,应用程序(例如 sudo、sshd、polkit 守护程序、桌面环境的登录屏幕(显示管理器)等)使用它来检查用户是否存在以及给定的凭据是否有效。pam_unix 是多个模块中的一个,它根据/etc/password
和/etc/shadow
文件检查给定的凭据。