我在尝试着在我的 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
可以解决这个问题,并将执行whoami
为mysql
.也就是说,sbin/nologin
不会运行,因为不被视为登录 shell。
当您运行时,您会立即su - mysql
重新登录,因为正在被调用,因此正在被运行。bodo
/sbin/nologin
whoami
bodo
当我运行 时,我确实收到了我认为您会看到的su
错误。This account is currently not available.