ユーザーコマンドを切り替えた後、同じユーザー(su - mysql --> whoami 'old_user')、なぜですか?

ユーザーコマンドを切り替えた後、同じユーザー(su - mysql --> whoami 'old_user')、なぜですか?

頑張ってるマイシェルでユーザーを切り替えるを使用します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シェルが設定されていることがわかります/sbin/nologin。実行すると、この問題は解決されてsudo実行されます。つまり、ログインシェルとは見なされず、実行されません。whoamimysqlsbin/nologin

実行するとすぐにsu - mysql再度ログインするので呼び出しになるから実行になるんです。bodo/sbin/nologinwhoamibodo

これを実行すると、suあなたが見ることになると思ったエラーが発生します。This account is currently not available.

関連情報