我已经安装了 mysql-server。当我运行用户管理工具时,它只显示我的用户名 (myname) 和 root。当我想添加 mysql 用户时,它说用户 mysql 已经存在,但它没有显示在用户管理工具用户列表中,为什么?我检查了用户列表
cat /etc/passwd
我可以看到mysql用户。之后我为mysql用户设置了一个主目录
sudo usermod -d /home/mysql mysql
然后我将用户更改为 mysql
sudo -s -u mysql
之后我想转到 mysql 用户的主目录。
cd ~
pwd
它显示 /home/myname 而不是 /home/mysql 我检查了 /etc/passwd,它显示 /home/mysql 是 mysql 用户的主目录。为什么会这样?
答案1
首先,您可能会发现您的用户管理工具没有显示系统帐户(在 Ubuntu 上,用户 ID 通常是小于 1000),这就是为什么您只能看到自己和 root,以及为什么您无法添加 mysql 用户,但您可以在 /etc/passwd 中看到它。
其次,您可能会发现 mysql 用户的 shell 类似于 /bin/false,因此您将切换到他们的帐户,运行 /bin/false,这将立即退出,因此再次将您注销。这将使您保留为您的帐户,这可以解释为什么您会看到您的主目录。
或者,可能是因为您使用 sudo -s 而不是 sudo -i 来获取 shell。如果您想要 shell,则不应使用 sudo -s,因为 -s 不会替换所有环境。某些变量仍将引用前一个用户。我相信 $HOME 就是其中之一。