使用 user add 创建了一个用户,但它未列在用户列表中

Kwr*_*t02 2 user-management

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

useradd -m multicraft
Run Code Online (Sandbox Code Playgroud)

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

users
Run Code Online (Sandbox Code Playgroud)

该列表中显示的所有内容是:

root@ns530757://home/multicraft# users 
root root
root@ns530757://home/multicraft# 
Run Code Online (Sandbox Code Playgroud)

所以当我尝试运行 multicraft 守护进程时,它说它找不到用户 multicraft。主目录已创建(即 -m 选项)。你能告诉我我做错了什么可能导致用户没有被添加到列表中吗?

Rin*_*ind 7

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

USERS(1)                         User Commands                        USERS(1)

NAME
       users  -  print the user names of users currently logged in to the cur?
       rent host
Run Code Online (Sandbox Code Playgroud)

它将列出当前登录的用户,而不是该系统中可用的用户。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 的示例行。

请参阅如何是为更高级的配置。

如何链接到本

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

mysql -uroot -p 
Run Code Online (Sandbox Code Playgroud)

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

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

GRANT ALL ON multicraft_daemon.* TO daemon1@'2.3.4.5' IDENTIFIED BY 'mysql_password_for_daemon1'; 
Run Code Online (Sandbox Code Playgroud)

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

database = mysql:host=1.2.3.4;dbname=multicraft_daemon
dbUser = daemon1
dbPassword = mysql_password_for_daemon1
Run Code Online (Sandbox Code Playgroud)

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

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

  • ...或`getent passwd multicraft` (3认同)
  • ...或`grep multicraft /etc/passwd` (2认同)