我已经安装了mysql-server。 当我运行用户pipe理工具时,它只显示我的用户名(myname)和root。 当我想添加mysql用户它说,用户mysql已经存在,但它不显示在用户pipe理工具用户列表为什么? 我检查了用户列表
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用户的主目录。 为什么这样呢?
首先,你可能会发现你的用户pipe理工具没有显示系统帐户(通常Ubuntu上的用户ID小于1000),这就是为什么你只看到你自己和根目录,为什么你不能添加一个mysql用户,但你可以在/ etc / passwd中看到它。
其次,你可能会发现mysql用户的shell有一些类似/ bin / false的东西,所以你要改成他们的账户,运行/ bin / false,这将立即退出,因此再次登出。 这会让你成为你的账户,这将解释你为什么看到你的主目录。
或者,这可能是因为你使用了sudo -s而不是sudo -i来获得一个shell。 如果你想要一个shell,你不应该使用sudo -s,因为-s不会replace所有的环境。 某些variables仍然会引用前一个用户。 我相信$ HOME是这些variables之一。