首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Linux系统如何在不知道账号密码的情况下切换用户?

Linux系统如何在不知道账号密码的情况下切换用户?

原创
作者头像
网络技术联盟站
修改2021-11-08 11:27:56
修改2021-11-08 11:27:56
2.4K0
举报

本文,我们将展示如何在不需要密码的情况下切换到另一个或特定的用户帐户。

例如,我们有一个名为postgres的用户帐户(默认的PostgreSQL超级用户系统帐户),我们希望名为postgres的组中的每个用户(通常是我们的PostgreSQL数据库和系统管理员)使用命令切换到postgres帐户,而无需输入密码su

默认情况下,只有 root 用户可以在不输入密码的情况下切换到另一个用户帐户,任何其他用户将被提示输入他们要切换到的用户帐户的密码(或者如果他们使用sudo 命令,他们将被提示输入他们的密码),如果他们没有提供正确的密码,他们会得到“身份验证失败”错误,如下面的屏幕截图所示。

用户认证失败错误
用户认证失败错误

您可以使用下面提供的两种解决方案中的任何一种来解决上述问题。

1. 使用 PAM 认证模块

PAM(可插拔身份验证模块)是现代 Linux 操作系统上用户身份验证的核心。

想要允许特定组中的用户无需密码即可切换到另一个用户帐户,可以在/etc/pam.d/su文件中修改su 命令的默认 PAM 设置。

代码语言:txt
复制
# vim /etc/pam.d/su

或者

代码语言:txt
复制
$ sudo vim /etc/pam.d/su

在“auth enough pam_rootok.so ”之后添加以下配置,如下所示。

代码语言:txt
复制
auth       [success=ignore default=1] pam_succeed_if.so user = postgres
auth       sufficient   pam_succeed_if.so use_uid user ingroup postgres

在上面的配置中,第一行检查目标用户是否是postgres,如果是,服务检查当前用户,否则default=1跳过该行并执行正常的认证步骤。

代码语言:txt
复制
auth [success=ignore default=1] pam_succeed_if.so user = postgres

接下来的行检查当前用户是否在组postgres 中,如果yes,则认为身份验证过程成功并返回足够的结果。否则,将执行正常的身份验证步骤。

代码语言:txt
复制
auth       sufficient   pam_succeed_if.so use_uid user ingroup postgres
配置 PAM 以允许在没有密码的情况下运行 Su 命令
配置 PAM 以允许在没有密码的情况下运行 Su 命令

保存文件并关闭它。

接着,添加用户(例如quanquan)到su该帐户的Postgres不使用密码组的Postgres使用usermod命令。

代码语言:txt
复制
$sudo usermod -aG postgres quanquan

现在尝试su的Postgres的帐户作为用户quanquan,你不应该被提示输入如下所示的密码:

代码语言:txt
复制
$ su - postgres

2. 使用 Sudoers 文件

您还可以通过在 sudoers 文件中进行一些更改而无需密码即可访问其他用户。

在这种情况下,将切换到另一个用户帐户(例如postgres)的用户(例如quanquan)应该在 sudoers 文件或 sudo 组中才能调用sudo 命令。

代码语言:txt
复制
$ sudo visudo

然后在该行下方添加以下配置“%sudo ALL=(ALL:ALL) ALL”,如下面的屏幕截图所示。

代码语言:txt
复制
quanquan ALL=NOPASSWD: /bin/su – postgres
将用户添加到 Sudoers 文件
将用户添加到 Sudoers 文件

保存并关闭文件。

现在尝试以quanquan用户身份登录postgressu帐户,shell 不应提示您输入密码:

代码语言:txt
复制
$ sudo su - postgres
无密码切换到其他用户
无密码切换到其他用户

好了,本文就到这边!有关更多信息,请参阅 PAM 手册条目页面 ( man pam.conf ) 以及sudo 命令( man sudo )。

代码语言:txt
复制
$ man pam.conf
$ man sudo

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 使用 PAM 认证模块
  • 2. 使用 Sudoers 文件
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档