昨夜、私のサーバーで、次のことを行いました。
Sudo su - mysql
mysqlユーザーに変更して、mysqlアカウントからのみ認証されるようにセットアップされたmysqlクライアントを実行できるようにします。 mysqlクライアントを正常に実行し、データベースに変更を加えました。サーバー上で一晩変更はありません。
今日、私が試みることは何もmysqlユーザーに変更することを許可しません。ホームディレクトリがないというメッセージが表示された場合、成功したように見えますが、whoami
は引き続きユーザーIDを報告し、mysqlを実行しようとしても失敗します。
wade@snoopy:~$ Sudo su - mysql
[Sudo] password for wade:
No directory, logging in with HOME=/
wade@snoopy:~$ whoami
wade
wade@snoopy:~$ Sudo su mysql
wade@snoopy:~$ whoami
wade
wwilliam@snoopy:~$ Sudo -s
root@snoopy:/home/wade#
root@snoopy:/home/wade# su mysql
root@snoopy:/home/wade# whoami
root
mysqlの/ etc/passwd:
mysql:x:110:119:MySQL Server,,,:/nonexistent:/bin/false
誰もこのような行動を見たことがありますか?
su
は、/etc/passwd
で指定された他のユーザーのログインシェルを呼び出します。あなたの場合、それは/bin/false
なので、インタラクティブなシェルを取得しません。
つかいます
Sudo -u test /bin/bash
または
Sudo -u test /usr/bin/mysql
代わりにそのようなもの。