以非 root 用户身份登录终端

以非 root 用户身份登录终端

这个问题我本以为谷歌能很快给出答案。但不知何故谷歌让我失望了。假设我登录到终端会话,我想暂时以另一个非 root 用户的身份工作,我知道该用户的密码,但不离开会话。以该用户身份登录时,我希望正确设置该用户的主目录等,直到我注销。我该怎么做?

我试过

su -- username

然后输入密码,没有出现任何错误,但我没有看到命令提示符的明显变化,它仍然显示 myname@myhost。主目录也是 myname 的目录,而不是我尝试登录的新登录名。

我 - 现在显然 - 对 linux/Ubuntu 相当缺乏经验,所以欢迎任何信息。

答案1

您想更改为哪个用户?

问题在于您尝试“su”为未分配 shell 的用户。大多数由系统或安装软件时由某些软件包创建的用户(如 mysql、pulse 等)都没有分配 shell。

您可以通过查看文件来检查用户是否分配了 shell /etc/passwd,只需查看每个用户的行尾,如果它说/bin/false这意味着它没有分配 shell,如果它有类似的/bin/bash或任何其他 shell,那么您应该能够“su”进入该用户。

当我说“分配了 shell”时,它基本上意味着它具有“shell 访问权限”

如果用户没有 shell 访问权限,你仍然可以以该用户的身份执行命令

 sudo -u user command

答案2

如果你有 sudo 访问权限,那么我建议

sudo su username -

它基本上做同样的事情,但只要求您知道您的密码,而不需要其他用户知道。

但是如果你有其他用户的密码:

su username -应该可以正常工作。

注意 1 - 它位于末尾。

相关内容