使用用户添加功能创建了一个用户,但该用户未列在用户列表中

使用用户添加功能创建了一个用户,但该用户未列在用户列表中

我使用以下命令来创建我的用户:

useradd -m multicraft

但它并没有出现在这个列表中:

users

列表中显示的内容如下:

root@ns530757://home/multicraft# users 
root root
root@ns530757://home/multicraft# 

因此,当我尝试运行 multicraft 守护程序时,它说找不到用户 multicraft。主目录已创建(即 -m 选项)。您能告诉我我做错了什么,导致用户未添加到列表中吗?

答案1

无论您想执行什么命令,users 都不是您所需要的。

USERS(1)                         User Commands                        USERS(1)

NAME
       users  -  print the user names of users currently logged in to the cur‐
       rent host

它将列出当前登录的用户而不是该系统中可用的用户。root root意味着您已登录root两次。

检查用户的地方:

  • ls /home/useradd -m 将列出使用或 创建的所有用户的名称adduser
  • more /etc/passwd | grep multicraft 将列出其中包含 multicraft 的行。

我强烈地感觉到你做错了。我假设它使用数据库后端,并且你需要该后端上的用户才能连接到它。当你到达安装的数据库设置部分时,或者当你第一次登录 multicraft 控制面板时,可能需要作为安装的一部分来完成,而不是作为系统上的本地用户?

您能否将您使用的这个 Multicraft 服务器的下载安装说明编辑到问题中?


从问题中添加的链接来看,我似乎是正确的:

使用 SQLite 如果您使用的是 SQLite 数据库(默认),则运行控制面板的用户需要有权访问它。在默认的 Debian 设置中,此用户通常为“www-data”。为了创建具有正确权限的文件,守护进程必须以 root 身份运行(一旦创建了文件并设置了权限,它将立即放弃特权)。或者,守护进程可以在控制面板的用户下运行。这意味着守护进程创建的所有内容都将归运行控制面板的用户所有(例如“www-data”)。

使用 MySQL 使用 MySQL 时,控制面板用户无需直接访问守护进程的任何文件,甚至可以安装在不同的机器上。数据库在“multicraft.conf”中配置,并且有 MySQL 的示例行。

请参见如何操作进行更高级的配置。

如何链接到此

授予守护进程 MySQL 用户访问权限 以下查询直接在 MySQL 中运行。您可以使用任何工具访问 MySQL,从命令行访问:

mysql -uroot -p 

将“root”替换为有特权的 MySQL 用户的名称。

建议为每个守护进程创建一个新的 MySQL 用户。例如,如果您的守护进程在 2.3.4.5 上运行:

GRANT ALL ON multicraft_daemon.* TO daemon1@'2.3.4.5' IDENTIFIED BY 'mysql_password_for_daemon1'; 

然后,在守护进程 1 的“multicraft.conf”中输入:

database = mysql:host=1.2.3.4;dbname=multicraft_daemon
dbUser = daemon1
dbPassword = mysql_password_for_daemon1

也可以对所有守护进程使用同一个用户。在这种情况下,您需要将上例中的“TO daemon1@'2.3.4.5'”替换为“TO daemon@'%'”。

您可以根据以下安全建议进一步限制守护进程用户的数据库访问:单独的守护进程和面板数据库

答案2

您将在文件中找到新用户/etc/passwd

grep multicraft /etc/passwd

而该命令users则会打印出当前登录到当前主机的用户的用户名。

相关内容