几周前我第一次安装了 Ubuntu 13.10,它运行得很好。我对 Linux 还是很陌生,所以我没有做很多事情。过去几天我尝试安装 LAMP,然后卸载它,因为我可能永远不会用它做任何事情。然后我安装了 SSH,然后卸载了它,因为我可能永远不会远程登录它。然后我安装了 samba,这样我的妻子就可以从她的电脑上访问我电脑上的文件,并使用我的电脑作为备份。
一切都很好……直到我重新启动。我无法登录。我在密码字段中输入我的密码,然后按回车键,没有任何反应。如果我输入错误的密码,小轮子会旋转 1/2 秒然后说“密码不正确”。如果密码不正确,则不会出现任何轮子 - 密码字段消失,屏幕就在那里。我已经等了大约 10 到 15 分钟才有事情发生,但什么也没发生。
我试图用谷歌来解决这个问题,但我所看到的似乎没有什么能解决问题。我可以通过命令行 (ctrl-alt-f1) 登录就好了,只是无法通过 GUI 登录。
我查看了我的 auth.log 并发现了这个:
lightdm: pam_succeed_if (lightdm:auth): requirement "user ingroup nopasswdlogin" not met by user "andrew"
Run Code Online (Sandbox Code Playgroud)
我记得我在安装/配置 ssh 和/或为其配置密钥时看到了一些关于 pam 的东西,但我不记得具体是什么。另外,我在安装后不久删除了 ssh - 那么它是否仍然会导致问题?
我尝试了以下方法:
sudo dpkg-reconfigure lightdm
Run Code Online (Sandbox Code Playgroud)
它什么也没说,让我回到命令提示符
我试过删除 ~/.Xauthority - 这没有帮助。
我的 .dmrc 文件大约有四行。前两个是空白的,然后是【桌面】,然后是something=Ubuntu
我试过了:
pam-auth-update
Run Code Online (Sandbox Code Playgroud)
一切都被检查,没有帮助
我试过:
ppa-purge ppa:gnome3-team/gnome3
Run Code Online (Sandbox Code Playgroud)
这也无济于事。
我试过重命名我的主目录并创建一个新目录。没运气。
我不知道我还能做什么。有任何想法吗?
我正在尝试将我的默认 shell 更改为 zsh。我将条目正确放置在 /etc/shells 文件中。
我使用此命令所做的每次尝试都以相同的错误消息结束:
chsh -s $(which zsh)
Password: ### after entering the correct password
chsh: PAM: Authentication failure
sudo chsh -s $(which zsh) ## yields the same result
Run Code Online (Sandbox Code Playgroud)
我已将 sudo 用于其他命令,以确保它不是密码失败,并且所有其他命令都有效,但对“chsh”不起作用。
完全被难住了。
附加信息:
我已经按照 Oli 的建议代码在 /etc/shells 文件中附加了一行。
echo $SHELL
/bin/bash
sudo chsh -s /usr/local/bin/zsh
Password:
chsh: PAM: Authentication failure
chsh -s /usr/local/bin/zsh
You may not change the shell for 'username'
Run Code Online (Sandbox Code Playgroud)
还是不能换壳。
我添加了行
auth required pam_tally2.so deny=3 unlock_time=180
Run Code Online (Sandbox Code Playgroud)
到我的/etc/pam.d/login文件,在 3 次尝试testuser被暂停后,这在 tty 中很好。
但是,同样的行/etc/pam.d/sshd没有产生任何效果。
xieerqi:$ ssh testuser@localhost
Password:
Password:
Password:
Permission denied (publickey,keyboard-interactive).
xieerqi:$ ssh testuser@localhost
Password:
Password:
Password:
Permission denied (publickey,keyboard-interactive).
Run Code Online (Sandbox Code Playgroud)
正如您在 3 次尝试失败后所看到的,用户仍然可以尝试输入密码。
ssh3次罢工后如何禁止用户?
我希望能够使用 gdb 附加到一个进程。进程有我的uid,但可执行文件是set-gid。所以,显然,我正在学习 PAM。我的理解是,任何附加到 set-gid 进程的进程都需要 CAP_SYS_PTRACE(或成为超级用户)。
以防万一有任何问题:
$ cat /proc/sys/kernel/yama/ptrace_scope
0
Run Code Online (Sandbox Code Playgroud)
按照pam_cap (8) 中的建议,我寻找/etc/security/capabilities.conf. 在不存在的 LTS 16 上,但目录存在,所以我创建了文件:
CAP_SYS_PTRACE jklowden
Run Code Online (Sandbox Code Playgroud)
我还将其附加到/etc/pam.d/common-auth:
# Cf. advice in pam_cap(8)
auth optional pam_cap.so
Run Code Online (Sandbox Code Playgroud)
然而,新登录不能附加到 set-gid 进程。
咆哮:sudo -g $gid -p $pid没有帮助。正如精美的手册所说,出于显而易见的原因,非特权进程无法跟踪无法向其发送信号的进程或运行 set-user-ID/set-group-ID 程序的进程 。 为什么我不能从同一组中的进程跟踪我拥有的进程实际上并不明显,仅仅因为该文件被标记为 set-group-ID。该策略鼓励以超级用户身份进行调试,这无疑不太安全。【结束吐槽】
非常感谢。
Yubico 官方指南仅涵盖为 GDM 登录启用它,我如何为所有登录启用它,包括 TTY、ssh、sudo 等?
我正在尝试在新的 Ubuntu 16.04 机器上设置邮件服务器,但无法正常工作。
我正在使用带有 MySQL 的 Postfix/Courier 设置进行身份验证。
使用任何电子邮件客户端(使用 POP3 和 IMAP)接收电子邮件并阅读它们按预期工作,但是当我尝试发送某些内容时,我得到的只是身份验证错误,并且这些错误出现在日志中:
saslauthd[29975]: PAM unable to dlopen(pam_mysql.so): /lib/security/pam_mysql.so: undefined symbol: make_scrambled_password
saslauthd[29975]: PAM adding faulty module: pam_mysql.so
saslauthd[29975]: DEBUG: auth_pam: pam_authenticate failed: Module is unknown
saslauthd[29975]: do_auth : auth failure: [user=office@testubuntu1604.com] [service=smtp] [realm=testubuntu1604.com] [mech=pam] [reason=PAM auth error]
Run Code Online (Sandbox Code Playgroud)
这曾经在 Ubuntu 14.04 中完美运行。
我应该了解 Ubuntu 16.04 中有关 PAM 身份验证的任何更改吗?
在我的一台运行 ubuntu 16.04 (LTS) 的测试服务器上启用 Google 身份验证器(两步身份验证)后,我注意到我无法再使用服务器上没有 google 身份验证器配置文件的用户登录。我必须创建一个 google 身份验证器配置文件(密钥)才能让该用户登录。
我现在的问题是:是否可以让某些用户使用 google 身份验证器,而其他用户只使用 SSH 登录而不使用 google 身份验证器。
细节:
user1 有一个带有谷歌身份验证器的个人资料。
user2 没有带有 google 身份验证器的个人资料。
user1 通过 SSH 登录,填写他的密码和谷歌身份验证器应用程序提供的代码,他就可以登录了。
user2 通过 SSH 登录,填写他的密码就可以登录了(他不需要输入密码。
最好有 2 个用户组,一个需要 google 身份验证器代码,另一个不需要它。
我正在为我的工作安装GitLab,我在Ubuntu Server 16.04.1 上进行安装,并且一切运行良好。
我现在唯一需要做的就是配置通过电子邮件回复功能,因为我们对这个概念感兴趣,所以我们想启用它。
的好消息是,在上GitLab网站上,有一个详细的操作方法,告诉你如何把这个到位。基本上,此功能使用 Postfix 并基于 Courier Mail Server(至少据我所知)。在坏消息是,这个如何做,一切顺利,但真正最后一部分,有关测试的最终IMAP设置(即测试最后的安装部分),失败每次。
所以,当我尝试使用以下命令检索IMAP文件夹的内容,如要求如何做:
telnet <my.server.here> 143
Run Code Online (Sandbox Code Playgroud)
我得到这个结果:
<my_name>@<my_host>:~$ telnet <ip> 143
Trying <ip>...
Connected to <ip>.
Escape character is '^]'.
* OK [CAPABILITY IMAP4rev1 UIDPLUS CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT THREAD=REFERENCES SORT QUOTA IDLE ACL ACL2=UNION] Courier-IMAP ready. Copyright 1998-2011 Double Precision, Inc. See COPYING for distribution information.
a login incoming <my_cool_pwd>
* BYE …Run Code Online (Sandbox Code Playgroud) 我只希望连接到使用SSH我的EC2实例,但我sshd_config有UsePAM yes。这是什么,如果我将它设置为 no,我会被锁定在我的实例之外吗?
我还设置了一个cronjob来检查我的 ZNC 保镖是否已启动并且我的/var/log/auth.log是否充满了这些:
CRON[5216]: pam_unix(cron:session): 用户 znc-admin 的会话已关闭
正如你所看到的,有一pam_unix件事与我的第一个问题有关。
我需要帮助来确定auth.log我的 Ubuntu 服务器上文件中的一些错误。几周前,我发现 SSH 端口 (22) 的登录尝试过多auth.log,因此我更改了 SSH 端口。它干净了一个星期,然后我发现另一堆通过不同端口的登录尝试。
我得到了很多重复的红色线条(在图像中)。重复的行如下:
saslauthd[1140]: pam_unix(smtp:auth): check pass; user unknown
saslauthd[1140]: pam_unix(smtp:auth): authentication failure; logname= uid=0 euid=0 tty= ruser= rhost=
saslauthd[1140]: DEBUG: auth_pam: pam_authenticate failed: Authentication failure
saslauthd[1140]: do_auth : auth failure: [user=roselia] [service=smtp] [realm=mail.mydomain.com] [mech=pam] [reason=PAM auth error]
Run Code Online (Sandbox Code Playgroud)
我可以看出他们正在尝试登录我的邮件服务器(因为领域是mail.mydomain.com),但我无法确切地说出他们正在尝试做什么,因为我不知道 PAM 是什么。什么是 PAM?我应该怎么做才能阻止我的邮件服务器(端口 25)上的这些身份验证尝试?
我也偶尔会收到一些auth.log与 PAM 相关的CRON 日志,如果有人也能告诉我这些是什么意思,那就太好了:
CRON[32236]: pam_unix(cron:session): session opened for user root by (uid=0)
CRON[32235]: pam_unix(cron:session): session opened for user root by (uid=0) …Run Code Online (Sandbox Code Playgroud)