前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >linux中没有密码的情况下切换到另一个用户帐户

linux中没有密码的情况下切换到另一个用户帐户

作者头像
入门笔记
发布2022-06-02 16:32:15
1.7K0
发布2022-06-02 16:32:15
举报
文章被收录于专栏:入门小站

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

默认情况下,只有root用户可以在不输入密码的情况下切换到另一个用户帐户。任何其他用户将被提示输入他们要切换到的用户帐户的密码(或者如果他们使用sudo 命令,他们将被提示输入他们的密码),如果没有提供正确的密码,会得到一个 authentication failed错误

有两种解决方案

1. 使用PAM认证模块

PAM (Pluggable authentication modules) 是现代 Linux 操作系统上用户身份验证的核心。为了允许特定组中的用户无需密码即可切换到另一个用户帐户,我们可以修改该组的默认 PAM 设置su command 在里面 /etc/pam.d/su 文件。

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

之后添加以下配置 auth sufficient pam_rootok.so

代码语言:javascript
复制
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跳过该行并执行正常的认证步骤。

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

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

代码语言:javascript
复制
auth       sufficient   pam_succeed_if.so use_uid user ingroup postgres

保存文件并关闭它。

接下来,添加用户(例如 rumenz) 你想要su的账户postgres 没有组的密码 postgres使用usermod 命令。

代码语言:javascript
复制
$sudo usermod -aG postgres rumenz

现在尝试supostgres 作为用户的帐户 rumenz,你不应被提示输入密码,如下面的屏幕截图所示:

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

2. 使用Sudoers文件

你还su可以通过在sudoers文件中进行一些更改而无需密码即可访问其他用户。在这种情况下,用户(例如rumenz) 谁将切换到另一个用户帐户(例如 postgres) 应该在sudoers文件或 sudo 组中才能调用 sudo command.

代码语言:javascript
复制
$ sudo visudo

然后在该行下方添加以下配置

代码语言:javascript
复制
%sudo ALL=(ALL:ALL) ALL
代码语言:javascript
复制
rumenz ALL=NOPASSWD: /bin/su – postgres

保存并关闭文件。

现在尝试到su帐户postgres 作为用户 rumenz,shell 不应提示你输入密码:

代码语言:javascript
复制
$ sudo su - postgres

还有其它的配置选项参考帮助手册。

代码语言:javascript
复制
$ man pam.conf
$ man sudo
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-11-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 入门小站 微信公众号,前往查看

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

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 使用PAM认证模块
  • 2. 使用Sudoers文件
相关产品与服务
多因子身份认证
多因子身份认证(Multi-factor Authentication Service,MFAS)的目的是建立一个多层次的防御体系,通过结合两种或三种认证因子(基于记忆的/基于持有物的/基于生物特征的认证因子)验证访问者的身份,使系统或资源更加安全。攻击者即使破解单一因子(如口令、人脸),应用的安全依然可以得到保障。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档