centos:su默默地失败了

前端之家收集整理的这篇文章主要介绍了centos:su默默地失败了前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在我通过SSH以root身份登录的CentOS服务器上,我这样做:

su otherusername

其中’otherusername’是另一个用户用户名,该用户名存在.

它什么都不做.在那之后,我仍然是根. whoami返回root,我创建的任何文件都属于root,也就是说su就不是su.

但是,它不会给出任何错误消息.如果我尝试使用无效的用户名su,它会给出错误消息.

我错过了什么?

otherusername在/ etc / passwd中是否有有效的 shell

su做的是以另一个用户身份执行进程.默认情况下,它选择的进程是/ etc / passwd中相关用户的最后一个字段中的任何内容.这通常是一个shell,例如/ bin / sh或/ bin / bash.当该过程结束时,您将被转储回您开始使用的原始shell,由root拥有.

就su而言,它已成功切换到正确的用户,因此不需要任何错误消息.然后通过执行它将控制权交给配置的shell.如果这个shell类似于/ bin / false,那么它只会执行/ bin / false始终执行的操作,即以1(false)状态退出,退回到root用户拥有的父shell. / bin / true执行相同的操作,但状态为0(true).

其他伪壳可能表现出不同的行为.例如,/usr/sbin / nologin回声

This account is currently not available.

退出前1.

您可以使用usermod -s / bin / bash otherusername作为root用户更改已配置的shell.

如果你将它与cd一起使用,你可能会在sudo周围看到类似的令人困惑的行为.如果您是普通用户并且无法进入目录,则sudo cd目录将不会显示错误消息,不会将您更改为root并且不会更改您的目录.

原因是它以root身份启动一个新的shell,将目录更改为正确的目录,然后立即退出,让您回到原始目录中的原始shell中.

原文链接:https://www.f2er.com/centos/373432.html

猜你在找的CentOS相关文章