创建用户后,切换用户不起作用

创建用户后,切换用户不起作用

我对整个服务器设置和服务器强化工作还很陌生,但今天必须开始。我主要有使用 ubuntu 桌面的经验。

无论如何,我刚刚创建了一个新用户,我打算用它来访问整个网站,如下所示:

以 root 身份:

useradd -d /var/www/example.com example
passwd example
... (typing in the pw)

好的。现在,如果我尝试切换到此用户,

su example

我甚至没有收到密码提示,只看到

$

奇怪的是,我显然没有像往常一样获得正常的命令行,但很多东西都不起作用:比如语法突出显示、使用“TAB”自动完成等 - 在我的 ubuntu 桌面上,我得到的是正常的行example@...:~#。我做错了什么?

答案1

到目前为止一切正常。您的新用户拥有不同的 shell。您可以使用以下命令进行验证:

echo $SHELL

可以使用以下命令更改当前用户的默认 shell:

chsh -s /bin/bash

或者使用 root 可以更改用户的 shell:

chsh -s /bin/bash example

答案2

你没有做错任何事。

su 本质上是在当前 shell 中创建一个 shell 的操作,而不是在当前 shell 中切换。并且根据现在新加载的 shell 的选择,它的行为会有所不同。这就是为什么当您退出 su 时,您会返回到上一个用户;您只是退出了内 shell。

此外,如果您以 root 身份执行 su 操作,则不会要求您输入密码,因为您是 root 身份。

答案3

关于 SU 命令的一些信息。如果您以用户身份登录,您始终可以成为另一个用户,而无需知道密码。成为例子并停留在当前目录

[root@host ~]#su example

成为一个例子并进入用户的主目录

[root@host ~]#su - example

现在,如果您以非特权用户身份尝试这些命令,将会要求输入密码。

$ 是什么?这是 shell

默认情况下,您的操作系统使用 SH(shell 包装器)。如果您想使用 bash shell,那么在用户时,请指定它:

[root@host ~]# useradd -s /bin/bash exmaple

相关内容