如何在不使用密码的情况下切换(su)到另一个用户帐户

摘要:
在本文中,我们将向您展示如何在没有密码的情况下切换到另一个或特定的用户帐户。要允许特定组中的用户在没有密码的情况下切换到另一个用户帐户,我们可以单击/etc/pam修改d/su文件中su命令的默认pam设置。在这种情况下,将切换到另一个用户帐户的用户应该在sudoers文件或sudo组中,以便可以调用sudo命令。现在,su尝试使用postgres帐户作为aaronk用户。shell不应提示您输入密码:$sudosu Postgres。以上是如何在不输入密码的情况下切换帐户。

在本文中,我们将展示如何在不需要密码的情况下切换到另一个或特定的用户账户。例如,我们有一个名为postgres的用户账户(默认的PostgreSQL超级用户系统账户),我们希望在名为postgres的组中的每个用户(通常是我们的PostgreSQL数据库和系统管理员)使用su命令切换到postgres账户,而无需输入密码。
默认情况下,只有root用户可以在不输入密码的情况下切换到另一个用户账户。任何其他用户都会被提示输入他们要切换到的用户账户的密码(如果他们使用的是sudo命令,则会被提示输入他们的密码),如果他们没有提供正确的密码,他们会得到一个"authentication failed"认证失败的错误提示。
您可以使用下面提供的两种解决方案中的任何一种来解决上述问题。
1.使用PAM身份验证模块
PAM(可插入身份验证模块)是现代Linux操作系统上用户身份验证的核心。为了允许特定组中的用户无需密码即可切换到另一个用户帐户,我们可以在/etc/pam.d/su文件中修改su命令的默认PAM设置。
#vim /etc/pam.d/su

$ 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组中,如果是,则认为认证过程成功,并返回足够的结果。否则,将执行正常的认证步骤。
auth sufficient pam_succeed_if.so use_uid user ingroup postgres

如何在不使用密码的情况下切换(su)到另一个用户帐户第1张

保存文件并关闭它。
接下来,使用usermod命令将您想要的用户(例如aaronk)添加su到postgres帐户中,而无需输入密码到group postgres中。
$sudo usermod -aG postgres aaronk
现在尝试以aaronk用户身份登录su到postgres帐户,不应该提示您输入密码,如以下屏幕截图所示:
$ su - postgres
2.使用Sudoers文件
你也可以通过在sudoers文件中做一些修改,在不需要密码的情况下su到另一个用户。在这种情况下,将切换到另一个用户帐户(例如postgres)的用户(例如aronk)应该在sudoers文件或sudo组中,以便能够调用sudo命令。
$ sudo visudo
然后在"%sudo ALL=(ALL:ALL) ALL "一行下面添加以下配置,如下所示。
aaronk ALL=NOPASSWD: /bin/su – postgres

如何在不使用密码的情况下切换(su)到另一个用户帐户第2张

保存并关闭文件。
现在,su以aaronk用户身份尝试使用postgres帐户,Shell不应提示您输入密码:
$ sudo su-Postgres
以上就是如何在不输入密码的情况下切换帐号。A5互联https://www.a5idc.net/

免责声明:文章转载自《如何在不使用密码的情况下切换(su)到另一个用户帐户》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Vi快捷操作 vim配置【shell文件格式从windows转换为linux】详谈 oracle 索引 (笔记)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

[Deepin 15] sudo source /etc/profile 提示找不到 source 命令(切换到 root 用户:sudo su)

在 Deepin/Ubuntu 系统 中,因为修改了下 配置文件,然后执行 source 命令重新加载配置文件,结果: sudo source /etc/profile 提示找不到 source 命令 改成    sudo . /etc/profile,还是找不到命令   最后的解决方案: 先切换到 root 用户,再执行 source 命令,就成功了 附...

[转]Ubuntu Linux下的 Opera 软件源

详情请访问:http://deb.opera.com/ Opera 官方源:最新的版本: deb http://deb.opera.com/opera/ unstable non-free或者选择稳定的版本:deb http://deb.opera.com/opera/ stable non-free(修改sources.list文件中源的列表,添加Ope...

超简单的图文并茂Linux上使用yum安装Mysql(Aliyun Linux release 2.1903 LTS)

首先登录进入你的Linux服务器 查看是否已安装mysql rpm -qa|grep mysql 查看自己的服务器版本 cat /etc/redhat-release 打开MySQL Yum存储库下载需要的文件包(直达链接) 我选择了第二个版本 复制下载文件的全名然后拼接一下使用wget下载:mysql80-community-release-e...

Ubuntu16.04安装rabbitmq(实战)

安装Erlang 由于RabbitMQ需要基于Erlang/OTP,所以在安装RabbitMQ之前需要先安装Erlang/OTP。同样的,在Ubuntu标准的repositories中,Erlang/OTP的版本很老,推荐不要直接安装在Ubuntu标准的repositories中Erlang/OTP,而是安装新版本。 添加地址 首先执行下面两个命令,添加E...

Ubuntu 终端命令速查表

 1、man: shell命令的说明指南   该命令代表manual,提供一个给定命令的说明指南。   用法:man <shell command>   用例:man ls   上述命令请求命令‘ls’的说明页,如下图:    2、ls: 列出目录内容   该命令列举出在当前目录下的文件和文件夹的内容。   用法:ls   上述指令的输入如下图...

Linux (三)

chmod:用来改变文件或目录的访问权限 语法格式:chmod 【参数选项】 【mode】【文件或者目录】 参数选项: -v :显示权限变更的详细信息 -R :对当前目录下的所有文件以及子目录进行相同的权限变更 ​ (以递归的当时逐个变更) mode :是权限标记。可以有符号标记和八进制数两种格式。 文件或者目录 :要设置的文件名或者目录名,必须输入...