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

VSole2021-12-17 06:57:42
如何在不需要密码的情况下切换到另一个或特定的用户帐户。例如,我们有一个名为postgres的用户帐户(PostgreSQL默认超级用户系统帐户),我们希望名为postgres的组中的每个用户(通常是我们的PostgreSQL数据库和系统管理员)使用su命令切换到postgres帐户,而不需要输入密码。
默认情况下,只有root用户可以在不输入密码的情况下切换到另一个用户帐户。任何其他用户将被提示输入他们要切换到的用户帐户的密码(或者如果他们使用sudo 命令,他们将被提示输入他们的密码),如果没有提供正确的密码,会得到一个 authentication failed错误
有两种解决方案

1. 使用PAM认证模块

PAM (Pluggable authentication modules) 是现代 Linux 操作系统上用户身份验证的核心。为了允许特定组中的用户无需密码即可切换到另一个用户帐户,我们可以修改该组的默认 PAM 设置su command 在里面 /etc/pam.d/su 文件。
# vim /etc/pam.d/su
OR
$ sudo vim /etc/pam.d/su
之后添加以下配置 auth sufficient pam_rootok.so
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跳过该行并执行正常的认证步骤。
auth       [success=ignore default=1] pam_succeed_if.so user = postgres
接下来的行检查当前用户是否在组中 postgres, 如果yes,则认为身份验证过程成功并返回足够的结果。否则,将执行正常的身份验证步骤。
auth       sufficient   pam_succeed_if.so use_uid user ingroup postgres
保存文件并关闭它。
接下来,添加用户(例如 rumenz) 你想要su的账户postgres 没有组的密码 postgres使用usermod 命令。
$sudo usermod -aG postgres rumenz
现在尝试supostgres 作为用户的帐户 rumenz,你不应被提示输入密码,如下面的屏幕截图所示:
$ su - postgres

2. 使用Sudoers文件

你还su可以通过在sudoers文件中进行一些更改而无需密码即可访问其他用户。在这种情况下,用户(例如rumenz) 谁将切换到另一个用户帐户(例如 postgres) 应该在sudoers文件或 sudo 组中才能调用 sudo command.
$ sudo visudo
然后在该行下方添加以下配置
%sudo ALL=(ALL:ALL) ALL
rumenz ALL=NOPASSWD: /bin/su – postgres
保存并关闭文件。
现在尝试到su帐户postgres 作为用户 rumenz,shell 不应提示你输入密码:
$ sudo su - postgres
还有其它的配置选项参考帮助手册。
$ man pam.conf
$ man sudo
linux切换用户用户帐户
本作品采用《CC 协议》,转载必须注明作者和本文链接
当企业发生网络安全事件时,急需第一时间进行处理,使企业的网络信息系统在最短时间内恢复正常工作,同时还需进一步查找入侵来源,还原入侵事故过程,给出解决方案与防范措施,为企业挽回或减少经济损失。 常见的网络安全事件:
之前一直对 su 和 sudo 这两个命令犯迷糊,最近专门搜了这方面的资料,总算是把两者的关系以及用法搞清楚
环境变量里,如果直接输入?不管用的话,就用绝对路径名的方式:/usr/sbin/useradd?。
linux中su与sudo的区别
2021-09-09 09:23:44
首先需要解释下 su 代表什么意思。 之前一直以为 su 是 super user,查阅资料之后才知道原来表示 switch user。 知道 su 是由什么缩写来的之后,那么它提供的功能就显而易见了,就是切换用户
WEB安全梳理-操作系统
2022-08-10 07:16:03
WEB安全梳理-操作系统
用户名:加密密码:密码最后一次修改日期:两次密码的修改时间间隔:密码有效期:密码修改到期到的警告天数:密码过期之后的宽限天数:号失效时间:保留。查看下pid所对应的进程文件路径,
1、查询3389端口方式 (1) REG查询3389状态(0:ON、1:OFF) REG query "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections (2) REG查询3389端口(16进制->10进制)
远程桌面对了解内网渗透的人来说可能再熟悉不过了。在渗透测试中,拿下一台主机后有时候会选择开 3389 进远程桌面查看一下对方主机内有无一些有价值的东西可以利用。但是远程桌面的利用不仅如此,本节我们便来初步汇总一下远程桌面在内网渗透中的各种利用姿势。
VSole
网络安全专家