切换用户命令后相同的用户(su - mysql --> whoami 'old_user'),为什么?

切换用户命令后相同的用户(su - mysql --> whoami 'old_user'),为什么?

我在尝试着在我的 shell 中切换用户su - [user],但用户似乎仍然是旧用户:

# this works pretty well
bodo@bodo-work:~$ sudo -u mysql whoami
[sudo] password for bodo: 
mysql

# but not this
bodo@bodo-work:~$ whoami
bodo
bodo@bodo-work:~$ su - mysql
Password:

# still having 'bodo' as user seems to be wrong here 
bodo@bodo-work:~$ whoami
bodo # what?

请注意,没有错误消息,例如找不到主目录。我在这里做错了什么?定义的用户主目录mysql属于它:

sudo ls -lah /var/lib/mysql
total 215M
drwx------  7 mysql mysql 4,0K Feb 10 14:30  .
# [...]

答案1

如果你的话grep mysql /etc/passwd,我估计你会发现shell已经被设置成了/sbin/nologin。运行sudo可以解决这个问题,并将执行whoamimysql.也就是说,sbin/nologin不会运行,因为不被视为登录 shell。

当您运行时,您会立即su - mysql重新登录,因为正在被调用,因此正在被运行。bodo/sbin/nologinwhoamibodo

当我运行 时,我确实收到了我认为您会看到的su错误。This account is currently not available.

相关内容