linux su命令免密,使用PAM模块实现普通用户之间su免密切换

这里将告诉您使用PAM模块实现普通用户之间su免密切换,教程操作步骤:参考自:Allow user1 to “su - user2” without password

/d/file/shujuku/adcwslioblr

需求:

在user1用户下执行: su - user2 免密登录。

我的实验系统版本:

CentOS Linux release 7

方法:

# vim /etc/pam.d/su

#在pam_rootok.so那一行之后添加如下两行。

auth [success=ignore default=1] pam_succeed_if.so user = user2

auth sufficient pam_succeed_if.so use_uid user = user1

可以理解为:对于名为user2的账号,如果使用su程序的用户名为user1,即可以免密登录

PAM模块文档:

# less /usr/share/doc/pam-1.1.8/txts/README.pam_succeed_if

首先是 use_uid部分

Evaluate conditions using the account of the user whose UID the application

is running under instead of the user being authenticated.

然后看fields格式

Available fields are user, uid, gid, shell, home, ruser, rhost, tty and service

field > number

Field has a value numerically greater than number.

field in item:item:...

Field is contained in the list of items separated by colons.

据此,还可以实现从user1免密su到uid 为某个范围的多个系统用户

实验:

[root@MyVm] 17:56:55 ~ # id user1

uid=1004(user1) gid=1004(user1) groups=1004(user1)

[root@MyVm] 17:56:59 ~ # id user2

uid=1005(user2) gid=1005(user2) groups=1005(user2)

[root@MyVm] 17:57:00 ~ # id user3

uid=1006(user3) gid=1006(user3) groups=1006(user3)

修改/etc/pam.d/su:

auth [success=ignore default=1] pam_succeed_if.so uid >= 1005

auth sufficient pam_succeed_if.so use_uid user = user1

可以理解为:对于UID>=1005的账号,如果使用su程序的用户名为user1,即可以免密登录

[root@MyVm] 17:57:49 ~ # su - user1

Last login: Thu Sep 3 17:55:47 CST 2020 on pts/1

[user1@MyVm] 17:57:50 ~ $ su - user2

[user2@MyVm] 17:57:52 ~ $ logout

[user1@MyVm] 17:57:53 ~ $ su - user3

Last login: Thu Sep 3 17:55:54 CST 2020 on pts/1

[user3@MyVm] 17:57:55 ~ $ logout

反之,允许多个账号su免密到某个(些)账号,可以配置为:

auth [success=ignore default=1] pam_succeed_if.so uid = 1001

auth sufficient pam_succeed_if.so use_uid uid > 1001

PAM模块资料:

/d/file/shujuku/i1obtfewvd3.html

找到这个方法之前,发现一种用利用把ssh免密加入到user1的 .bashrc 来实现自动跳转user2的方法,勉强满足需求,但是有点绕远,而且user1差不多是废了。使用PAM模块实现普通用户之间su免密切换就为您介绍到这里,感谢您关注懒咪学编程c.lanmit.com.

本文地址:https://c.lanmit.com/czxt/Linux/119071.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: su命令Linux系统中的一个重要命令,用于切用户身份。如果su命令出现故障,可能会导致用户无法切身份,影响系统的正常运行。为了鉴定su命令的故障,可以采取以下步骤: 1. 检查su命令是否存在:在终端中输入su命令,如果提示“command not found”,说明su命令不存在,需要安装或修复。 2. 检查su命令的权限:su命令需要root权限才能执行,如果当前用户没有足够的权限,su命令将无法执行。可以使用sudo命令或者切root用户来执行su命令。 3. 检查su命令的配置文件:su命令的配置文件位于/etc/pam.d/su,如果该文件被修改或损坏,su命令可能会出现故障。可以使用diff命令比较原始的配置文件和当前的配置文件,或者使用备份文件替当前的配置文件。 4. 检查系统日志:su命令的执行日志会被记录在系统日志中,可以使用命令“tail -f /var/log/messages”查看最新的系统日志,查找与su命令相关的错误信息。 通过以上步骤,可以鉴定su命令的故障,并采取相应的措施进行修复。 ### 回答2: Linuxsu命令是用来切到另一个用户的身份,通常是切到超级用户账户(root)以执行系统级别的操作。如果su命令出现故障,可能会导致用户无法正确地切到另一个账户,影响到系统的正常运行。 以下是su命令可能出现故障的一些情况和解决方法: 1. su命令无法开启超级用户权限 当用户使用su命令到超级用户时,可能会发现无法正确地开启超级用户权限,而只能以普通用户身份工作。这可能是因为系统管理员没有为普通用户授权超级用户权限,需要手动修改sudoers文件并添加相应的授权规则。 解决方法: 1)编辑sudoers文件:sudo visudo 2)在文件末尾添加以下内容: username ALL=(ALL) ALL 3)保存并退出文件 4)重新启动终端并尝试使用su命令 2. su命令无法识别账户密码用户使用su命令到另一个账户时,可能会发现无法识别该账户的密码,导致切失败。这可能是由于密码错误或者密码已过期等原因导致。 解决方法: 1)确认账户密码是否正确,可以通过尝试使用该账户登录进行验证 2)如果密码已过期,可以使用passwd命令来修改密码 3. su命令无法识别系统变量 有时候,su命令可能无法识别系统变量,导致环境变量设置失效或者命令无法执行。 解决方法: 1)使用su -命令代替su命令,这样可以保持当前环境变量不变 2)手动设置环境变量,使用export命令 总之,su命令出现故障可能是多种原因导致的,需要根据具体情况进行排查,解决方法也可能不同,可以根据上述常见问题来寻找解决方法。在使用su命令时,用户应该谨慎操作,以避因误操作导致系统故障。 ### 回答3: su命令Linux操作系统中的一条命令,用于切用户身份。通过su命令用户可以在不退出当前用户的情况下,以另一个用户的身份进行操作。 但是,在使用su命令的过程中,可能会出现一些故障,影响使用效果。如果遇到su命令无法正常运行的情况,可以采取以下步骤进行鉴定故障和解决问题: 1. 检查权限设置 首先,需要检查当前用户是否具有切到其他用户的权限。在Linux中,只有具有root权限的用户才能切到其他用户。如果当前用户没有root权限,则无法使用su命令。 此外,还需要确保目标用户的帐户是否存在且已启用。如果目标用户的帐户被禁用或不存在,则无法使用su命令到该用户。 2. 检查环境变量设置 在使用su命令时,可能会出现由于环境变量设置错误导致命令无法正常执行的情况。为了解决这个问题,可以尝试在命令前加上“- ”参数,这会将当前环境变量与目标用户的环境变量合并,从而确保环境变量设置的正确性。 例如:su - target_user 3. 检查系统文件设置 如果su命令在系统中无法找到,则无法运行该命令。在这种情况下,可以尝试检查系统文件路径是否正确,并确保命令可执行文件(su)是否存在于该路径中。 例如:/bin/su 扫描磁盘,如果系统中的su命令文件已经损坏或被删除,则需要重新安装该命令。 4. 检查日志文件 最后,如果以上步骤都无法解决问题,则需要检查系统的日志文件,以查看是否存在其他的错误信息。在Linux中,常见的日志文件包括/var/log/syslog、/var/log/messages和/var/log/auth.log等。 总之,在使用su命令过程中,遇到无法正常执行的情况,应该先检查权限设置、环境变量设置、系统文件设置和日志文件等方面,逐一进行排查,找出导致问题的原因,然后采取相应的解决措施。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值